Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Aiuto codice errato recupero password

    Aiuto... sto diventando matto.. non capisco dove sbaglio nello script..
    continua a darmi

    Parse error: parse error, unexpected T_STRING in c:\inetpub\vannes.it\Ebay_di_vannes\forgotpasswd.p hp on line 52

    se qualcuno mi aiuta ne sono grato.. ecco il codice:

    include "./includes/messages.inc.php";
    include "./includes/config.inc.php";
    include "./includes/countries.inc.php";




    if ($REQUEST_METHOD=="POST" && $action=="ok")
    {
    if ($TPL_username)
    {
    $sql="SELECT email FROM users WHERE nick=\"". AddSlashes($TPL_username)."\"";

    $res=mysql_query ($sql);
    if ($res)
    {
    if (mysql_num_rows($res)>0)
    {
    //-- Generate a new random password and mail it to the user
    $EMAIL = mysql_result($res,0,"email");

    $NEWPASSWD = substr(uniqid(md5(time())),0,6);
    include "includes/newpasswd.inc.php";
    mail($to,$subject,$message,$from);

    //-- Update database
    $query = "update users set password='".md5($MD5_PREFIX.$NEWPASSWD)."' WHERE nick=\"".AddSlashes($TPL_username)."\";";
    $res = mysql_query($query);
    if(!$res)
    {
    print "An error occured wile accessing the database: $query
    ".mysql_error"();

    52 exit;"

    }
    include "header.php";
    include "templates/template_passwd_sent_php.html";
    include "footer.php";
    exit;"
    }
    else
    {
    $TPL_err=1;
    $TPL_errmsg=$ERR_100;
    }
    }
    else
    {
    $TPL_err=1;
    $TPL_errmsg=$ERR_001;
    }
    }
    else
    {
    $TPL_err=1;
    $TPL_errmsg=$ERR_112;
    }
    }

    if(!$action || ($action && $TPL_errmsg))
    {
    include "header.php";
    include "templates/template_forgotpasswd_php.html";

    logicamente ne ho preso un punto dove credo ci sia l'errore... ma doveee???
    Vannes

  2. #2
    pare ci sia un " di troppo nel print dopo l'update.

    dovresti mettere il codice che posti tra tag [php ] oppure [code ] per facilitare la lettura. Dato che indica l'errore alla linea 52.... basterebbe solo mettere dalla linea 50 alla 55 ....

    Tu sai qual'e' la linea 52.... metti anche la segnalazione di errore alle query. mysql_error()


    @ edit..... e' qui sotto il problema

    print "An error occured wile accessing the database: $query
    ". mysql_error"();

    52 exit;"

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Grazie...

    ho provato anche cosi ma restituisce l'errore alla linea 54

    //-- Generate a new random password and mail it to the user
    $EMAIL = mysql_result($res,0,"email");

    $NEWPASSWD = substr(uniqid(md5(time())),0,6);
    include "includes/newpasswd.inc.php";
    mail($to,$subject,$message,$from);

    //-- Update database
    $query = "update users set password='".md5($MD5_PREFIX.$NEWPASSWD)."' WHERE nick=\"".AddSlashes($TPL_username)."\"";";
    $res = mysql_query($query);
    if(!$res)
    {

    51 print "An error occured while accessing the database: $query
    ".mysql_error();
    52 exit;
    53 }
    54
    include "header.php";
    include "templates/template_passwd_sent_php.html";
    include "footer.php";
    exit;
    }
    Vannes

  4. #4
    controlla la sintassi della query update.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente bannato
    Registrato dal
    Aug 2007
    Messaggi
    92
    Secondo me sta tutto qui:

    "update users set password='".md5($MD5_PREFIX.$NEWPASSWD)."' WHERE nick=\"".AddSlashes($TPL_username)."\"";";

    usi ad alternanza apici e virgolette come se fossero equivalenti, ma se inizi con le virgolette puoi delimitare le stringhe solo con le virgolette. Inoltre devi unire le stringhe con un punto, altrimenti non potranno mai funzionare.

    "update users set password=".md5($MD5_PREFIX.$NEWPASSWD)." WHERE nick='".AddSlashes($TPL_username)."'";";

    E on ho capito quell'insieme di punti e virgola e virgolette alla fine.

  6. #6
    sto provando in tutti i modi, togli metti aggiungi...
    mi sono accorto che la voce header cambia colore..
    adesso è
    include "header.php";
    mentre gli altri
    include "templates/template_passwd_sent_php.html";
    include "footer.php";
    exit;"


    cambiando alcune virgolette diventa tutto rosso e da l'errore ad un'altra riga precedente o sucessiva...

    io non so piu dove guardare...
    Vannes

  7. #7
    La riga della query e' un casino, di sicuro in fondo c'e' un " (e un ; ) di troppo.

    Comunque non ha senso scrivere righe cosi', lunghe e piene di concatenamenti con apertura e chiusura di apici e virgolette. Ci vuole estrema confidenza oppure si fa solo confusione.

    Assegna delle variabili, non e' necessario eseguire i comandi inline.

    Codice PHP:
    $password md5($MD5_PREFIX.$NEWPASSWD);
    $username addslashes($TPL_username); /* anche se mysql_real_escape_string() sarebbe meglio */
    $query "UPDATE users 
              SET password = '
    $password'
              WHERE nick = '
    $username'"
    Ok sono piu' righe ma guarda come e' piu' leggibile di:

    Codice PHP:
    $query "update users set password='".md5($MD5_PREFIX.$NEWPASSWD)."' WHERE nick=\"".AddSlashes($TPL_username)."\"";"; 
    e come e' piu' facile individuare eventuali errori.

  8. #8
    si... sicuramente più leggibile... ma restituisce il medesimo errore.. ho provato cosi

    //-- Update database
    $password = md5($MD5_PREFIX.$NEWPASSWD);
    $username = addslashes($TPL_username); /* anche se mysql_real_escape_string() sarebbe meglio */
    $query = "UPDATE users
    SET password = '$password'
    WHERE nick = '$username'";

    if(!$res)
    {
    print "An error occured wile accessing the database: $query
    ".mysql_error"();"
    exit;"
    }
    include " header. php";
    include " templates/template_passwd_sent_php.html";
    include " footer.php";
    exit;"

    e mi da:

    Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in c:\inetpub\||||\forgotpasswd.php on line 55

    la riga 55 è riferita al medesimo:
    print "An error occured wile accessing the database: $query
    ".mysql_error"();"

    Ringrazio per l'aiuto
    Vannes

  9. #9
    Restituisce il medesimo errore perche' la riga con mysql_error() l'avevi corretta prima e l'hai riscritta sbagliata ora.

    A che servono quelle virgolette in: mysql_error"();" ???
    E le virgolette dopo exit; ???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.