• User Attivo

    mysql_fetch_array non funge!

    Ho un problema in una mia pagina php (classe send_mail).mysql_fetch_array mi da errore...
    cosa ho sbagliato?ecco il codice
    [PHP]<?php
    /*
    +-----------------------------------------------------------------------+
    |##|
    |#
    #|
    |##|
    |# PHP SIMPLE NET NEWSLETTER 2.01.18 BETA 1 RELEASE 2 #|
    |#Questo script è stato ideato, creato e compilato da: #|
    |#Pezone Valerio Il Net-Surfer 2008-2009 #|
    |#E' rilasciato sotto licenza GNU ed è opensource #|
    |#Nella nuova release è stato usato prevalentemente un tipo #| |
    |#di programmazione O-O Object-Oriented, ovvero sfruttando #|
    |#la potenzialità delle classi PHP. #|
    |#Lo script è modificabile e ridistribuibile, lacsiando inalterato #|
    |#il copyright, l'autore e i commenti dello script. #|
    |#Potete aggiungere dei vostri commenti, se necessario. #|
    |#Se intendete creare una vostra versione dello script, vi #|
    |#sarei grato se me la mandaste per E-Mail,cossicchè io la #|
    |#possa pubblicare OnLine.Il mio indirizzo è [email protected] #|
    |#Grazie per aver scaricato il mio script #|
    |#
    #|
    |##|
    |#
    #|
    +-----------------------------------------------------------------------+
    /
    /

    *
    *
    Mail_class
    *
    *
    */
    class send_mail{
    private $message;
    private $header;
    function __construct($to,$type,$user,$pass) {
    global $site_name;
    global $site_url;
    global $webmaster_mail;
    global $db_prefix;
    global $home_class;
    $action_query = mysql_query("SELECT * FROM ".$db_prefix."phpnewsletter_users WHERE user = '$user'")or die("Unable to select query");
    $row_query = mysql_fetch_array($action_query)or die("Impossibile");
    $this->header = "From: $webmaster_mail\n";
    $this->header .= "MIME-Version: 1.0\n";
    $this->header .= "Content-Type: text/html; charset="iso-8859-1"\n";
    $this->header .= "Content-Transfer-Encoding: 7bit\n\n";
    switch($type){
    case 1:

    $this->message=<<<MESSAGE
    <font face="Trebuchet MS" size="3">
    <font color="#000000">Caro <b>$user</b>, grazie per esserti registrato nella newsletter di </font><font color="#3366ff" face="tahoma"><a href="$site_url">$site_name</a></font><font face="verdana" color="#000000">!</font><br>
    Manca ancora poco per partecipare alla newsletter.Ti rimane solo di cliccare il
    link in basso!</font>
    <p><font face="Trebuchet MS" size="3"><a href="http://">Cliccami per attivare la registrazione</a><br>
    </font></p>
    <p><font face="Trebuchet MS" size="3">##################################
    </font><br>
    <font face="Trebuchet MS" size="3">Riepilogo</font><br>
    <font face="Trebuchet MS" size="3">#################################
    </font></p>
    <table border="0" width="100%">
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">Username</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$user</font></td>
    </tr>
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">Password</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$pass</font></td>
    </tr>
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">E-Mail</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$to</font></td>
    </tr>
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">Token di
    registrazione</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$row_query[token]</font></td>
    </tr>
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">ID di
    registrazione</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$row_query[id]</font></td>
    </tr>
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">Data
    registrazione</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$row_query[date]</font></td>
    </tr>
    </table>
    <p> </p>
    <p>
    <font face="Trebuchet MS" size="3"><br>Per cancellarti dalla newsletter, premi il link in basso
    <br>
    <a href="$site_url/newsletter/delete_mail.php?id=$id&mail=$to&token=$token">Clicca qui per cancellarti dalla newsletter</a><br><br>
    <font face="verdana" color="#3366cc">Grazie per aver usufruito del </font>
    </font><font face="verdana" color="#3366cc" size="3">nostro </font><font face="verdana" color="#3366cc"><font face="Trebuchet MS" size="3">servizio newsletter</font></font><font face="verdana" color="#3366cc" size="3">.</font><font face="Trebuchet MS" size="3">
    <br><br><br></font></p>
    <p> </p>
    <p align="center"><font face="Times New Roman"><i><font color="#336ff" size="-1">Based on NET PHP Simple
    NewsLetter 2.0.18</font></i><br>
    <i><font face="Times New Roman" color="#3366ff" size="-1">GNU LICENSE</font></i><br>
    <i><font face="Times New Roman" color="#3366ff" size="-1">COPYRIGHT 2008/2009</font></i></font><br>
    MESSAGE;

    if(!@mail($to, "Attivazione account", $this->message, $this->header)){
    die("Impossibile inviare la E-Mail con il link di attivazione!");

    }

    break;

    case 2:
    //Poi metto le funzioni
    break;

    case 3:
    //Poi metto le funzioni
    break;

    }

    }
    }
    ?>[/PHP]

    Dalla pagina home_class.php ecco il codice che richiama la funzione:

    [PHP]<?php
    require "mail_class.php";
    require "check_class.php";

    /*
    +-----------------------------------------------------------------------+
    |##|
    |#
    #|
    |##|
    |# PHP SIMPLE NET NEWSLETTER 2.01.18 BETA 1 RELEASE 2 #|
    |#Questo script è stato ideato, creato e compilato da: #|
    |#Pezone Valerio Il Net-Surfer 2008-2009 #|
    |#E' rilasciato sotto licenza GNU ed è opensource #|
    |#Nella nuova release è stato usato prevalentemente un tipo #| |
    |#di programmazione O-O Object-Oriented, ovvero sfruttando #|
    |#la potenzialità delle classi PHP. #|
    |#Lo script è modificabile e ridistribuibile, lacsiando inalterato #|
    |#il copyright, l'autore e i commenti dello script. #|
    |#Potete aggiungere dei vostri commenti, se necessario. #|
    |#Se intendete creare una vostra versione dello script, vi #|
    |#sarei grato se me la mandaste per E-Mail,cossicchè io la #|
    |#possa pubblicare OnLine.Il mio indirizzo è [email protected] #|
    |#Grazie per aver scaricato il mio script #|
    |#
    #|
    |##|
    |#
    #|
    +-----------------------------------------------------------------------+
    /
    /

    *
    *
    Home_class
    *
    *
    */
    class home_class{
    public $mail;
    public $check;
    private $send_mail;
    private $len;
    private $id;
    private $protected_pass;
    private $date;
    private $row;
    private $time;
    function new_user($mail,$user){
    global $db_prefix;
    $this->check = new check_istance();
    $this->check->user($user,1);
    $this->check->mail($mail,1);
    ################################
    #Informazioni cryptate,time,data
    ################################
    //Password cryptata in SHA1 dopo MD5
    $this->protected_pass=sha1(md5(rand(), true));

    $this->protected_pass=substr($this->protected_pass,0,9);
    //token.Chiave unica per ogni utente realizzata in md5 random
    $this->token = md5(uniqid(rand(), true));
    //ID numerico utente utilizzato con crc32 random
    $this->id = crc32(md5(uniqid(rand(), true)));//Crea il codice ID
    $this->len = strlen($this->id)-1; //Calcola la Lunghezza dell'ID Random -1
    $this->id = substr($this->id ,1,$this->len);//conta dal secondo carattere(per evitare il negativo)
    //Dati di registrazione
    $this->date = date("d/m/Y")." ".date("H:i");//La data della registrazione
    $this->time = time();//Con la funzione time() imposto la data, per inviare la E-Mail di conferma
    /Legenda:/
    #new send_mail(E-Mail,tipo,User)
    #tipo 1: E-Mail di conferma
    #Tipo 2:E-Mail di eliminazione
    $send_mail = new send_mail($mail,1,$user,$this->protected_pass);
    $action = mysql_query("INSERT INTO ".$db_prefix."phpnewsletter_users
    (user,pass,mail,token,id,nome,cognome,gg,mm,aaaa,info,skin,stato,date,attivo,sito,time)
    VALUES
    ('$user','$this->protected_pass','$mail','$this->token','$this->id','inattivo','inattivo',NULL,NULL,NULL,'inattivo','inattivo','inattivo','$this->date','inattivo','inattivo','$this->time')");

    if($action)
    {

    echo "Ti sei aggiunto alla Net-NewsLetter con successo!";
    }
    else
    {
    die ("Ci sono stati errori del database!Per favore, contatta il <a href="mailto://$webmaster_mail">WebMaster</a> informandolo sull'errore.");
    }

    }
    function del_mail_input($mail,$user){
    global $db_prefix;
    $this->check = new check_istance();
    $this->check->user($user,2);
    $this->check->mail($mail,2);
    $this->row = mysql_fetch_array($this->check->action);

    if($this->row[mail] == $mail)
    {
    /Legenda:/
    send_mail(E-Mail,tipo,User)
    1: E-Mail di conferma
    #Tipo 2:E-Mail di eliminazione
    $send_mail = new send_mail($mail,1,$user,$row[pass]);
    $action = mysql_query("DELETE FROM ".$db_prefix."phpnewsletter_users WHERE user = '$user'");
    if($action)
    {
    echo "Ti sei cancellato dalla Net-NewsLetter con successo!";
    }
    else
    {
    echo "Ci sono stati errori del database!Per favore, contatta il <a href=mailto://"$webmaster_mail">WebMaster</a> informandolo sull'errore.";
    }
    }
    else
    {
    echo "La mail </i><b>".$mail."</b></i> risulta inesistente nel nostro database...controlla meglio!";
    }

        }
    

    }
    ?>[/PHP]

    Per favore, rispondete!!!


  • Bannato User Attivo

    dove da l'errore?


  • User Attivo

    $row_query = mysql_fetch_array($action_query)or die("Impossibile");
    Mi da "Impossibile"
    nel file class_mail.php
    Mi da un errore da me definito e non so perchè


  • Consiglio Direttivo

    Prova un po a togliere quell' > or die ("Impossibile")


  • User Attivo

    Ho fatto le modifice, ma lo steso non funziona...
    ho provato cosi:
    [PHP] class send_mail{
    private $message;
    private $header;
    private $row_query;
    private $action_query;
    function __construct($to,$type,$user,$password) {
    global $site_name;
    global $site_url;
    global $webmaster_mail;
    global $db_prefix;
    global $home_class;
    $this->action_query = mysql_query("SELECT * FROM ".$db_prefix."phpnewsletter_users WHERE user = '$user' AND pass = '$password'")or die("Unable to select query");
    //$row_query = mysql_fetch_array($action_query)or die("Impossibile");

    $this->header = "From: $webmaster_mail\n";
    $this->header .= "MIME-Version: 1.0\n";
    $this->header .= "Content-Type: text/html; charset="iso-8859-1"\n";
    $this->header .= "Content-Transfer-Encoding: 7bit\n\n";

    switch($type){
    case "1":

    //echo mysql_errno() . ": " . mysql_error(). "\n";
    //$this->row_query = mysql_fetch_object($action_query);
    $this->row_query = mysql_fetch_array($this->action_query);
    $this->message=<<<MESSAGE
    <font face="Trebuchet MS" size="3">
    <font color="#000000">Caro <b>$user</b>, grazie per esserti registrato nella newsletter di </font><font color="#3366ff" face="tahoma"><a href="$site_url">$site_name</a></font><font face="verdana" color="#000000">!</font><br>
    Manca ancora poco per partecipare alla newsletter.Ti rimane solo di cliccare il
    link in basso!</font>
    <p><font face="Trebuchet MS" size="3"><a href="http://">Cliccami per attivare la registrazione</a><br>
    </font></p>
    <p><font face="Trebuchet MS" size="3">##################################
    </font><br>
    <font face="Trebuchet MS" size="3">Riepilogo</font><br>
    <font face="Trebuchet MS" size="3">#################################
    </font></p>
    <table border="0" width="100%">
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">Username</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$user</font></td>
    </tr>
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">Password</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$password</font></td>
    </tr>
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">E-Mail</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$to</font></td>
    </tr>
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">Token di
    registrazione</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$this->row_query[token]</font></td>
    </tr>
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">ID di
    registrazione</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$this->row_query[id]</font></td>
    </tr>
    <tr>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">Data
    registrazione</font></td>
    <td width="50%"><font face="Trebuchet MS" size="2" color="#3366FF">$this->row_query[date]</font></td>
    </tr>
    </table>
    <p> </p>
    <p>
    <font face="Trebuchet MS" size="3"><br>Per cancellarti dalla newsletter, premi il link in basso
    <br>
    <a href="$site_url/newsletter/delete_mail.php?id=$this->row_query[id]&mail=$to&token=$this->row_query[token]">Clicca qui per cancellarti dalla newsletter</a><br><br>
    <font face="verdana" color="#3366cc">Grazie per aver usufruito del </font>
    </font><font face="verdana" color="#3366cc" size="3">nostro </font><font face="verdana" color="#3366cc"><font face="Trebuchet MS" size="3">servizio newsletter</font></font><font face="verdana" color="#3366cc" size="3">.</font><font face="Trebuchet MS" size="3">
    <br><br><br></font></p>
    <p> </p>
    <p align="center"><font face="Times New Roman"><i><font color="#336ff" size="-1">Based on NET PHP Simple
    NewsLetter 2.0.18</font></i><br>
    <i><font face="Times New Roman" color="#3366ff" size="-1">GNU LICENSE</font></i><br>
    <i><font face="Times New Roman" color="#3366ff" size="-1">COPYRIGHT 2008/2009</font></i></font><br>
    MESSAGE;

    if(!@mail($to, "Attivazione account", $this->message, $this->header)){
    die("Impossibile inviare la E-Mail con il link di attivazione!");

    }

    break;

    case 2:
    //Poi metto le funzioni
    break;

    case 3:
    //Poi metto le funzioni
    break;

    }

    }
    }
    ?>[/PHP]

    Non mi da errore,ma la E-Mail mi arriva cosi:

    Caro popo, grazie per esserti registrato nella newsletter di miosito!
    Manca ancora poco per partecipare alla newsletter.Ti rimane solo di cliccare il link in basso! Cliccami per attivare la registrazione

    ##################################
    Riepilogo
    #################################
    Username popo Password 7f584a260 E-Mail [EMAIL="[email protected]"][email protected][/EMAIL] Token di registrazione [token] ID di registrazione [id] Data registrazione [date]

    Per cancellarti dalla newsletter, premi il link in basso
    Clicca qui per cancellarti dalla newsletter

    Grazie per aver usufruito del nostro servizio newsletter.

    Based on NET PHP Simple NewsLetter 2.0.18
    GNU LICENSE
    *COPYRIGHT 2008/2009

    Help ME!!!!
    *


  • Super User

    Nel die fatti spiegare l'errore
    metti die(mysql_error())


  • User Attivo

    Ho provato, ma non mi compare niente...premetto che lavoro in locale


  • Super User

    Allora devi attivare la visualizzazione errori nel php.ini oppure all'inizio del file php con il comando error_reporting(E_ALL);


  • User Attivo

    Ho provato, ma niente....cosa posso farer??????