Visualizzazione risultati 1 fino 3 di 3

Discussione: un piccolo aiutino per il recupero password?

  1. #1
    Guest

    Exclamation un piccolo aiutino per il recupero password?

    allora raga ho scritto un codice php che permette di richiedere un ulteriore password ma mi da errore alla riga 10 cosa sbaglio?

    questo e il codice:

    Codice PHP:
    <?php
    include_once("include/config.php");
    include_once(
    "include/auth.lib.php");
    include_once(
    "include/reg.lib.php");

    // genera una stringa casuale della lunghezza desiderata

    // genera una stringa casuale della lunghezza desiderata

    function rand_string($len, $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';)

    {

    $string = ;

    for (
    $i = 0; $i < $len; $i++)

    {

    $pos = rand(0, strlen($chars)-1);

    $string .= $chars{$pos};

    }

    return
    $string;

    }

    //controlla se la sessione è già attiva

    if(isset($_SESSION['username']) && isset($_SESSION['password'])) {

    //in tal caso ci reindirizza verso la homepage del sito o dovunque vogliate

    header(’Location: http://youacli.altervista.org/registrazione/home.php’);

    }

    //se il modulo è stato inviato

    if(isset($_POST['submit'])) {

    //campo username vuoto

    if(!$_POST['username']) die(”Errore: Devi inserire il tuo username”);

    //campo password vuoto

    if(!$_POST['email']) die(”Errore: Devi inserire l’indirizzo mail dove inviare la nuova password”);

    $query = “SELECT * FROM `utenti` WHERE username = ‘”.$_POST['username'].”‘”;

    $result = mysql_query($query);

    $row = mysql_fetch_array($result);

    $user_id = $row['user_id'];

    $user_mail = $row['user_email'];

    if(
    $row < 1) die(”nessuna corrispondenza trovata nel database”);

    if(
    $row['user_email'] != $_POST['email']) die(”Il nome utente non è associato all’indirizzo mail specificato”);

    else

    {

    $random_string = rand_string(5);

    $invio_password = $random_string;

    $sql = “UPDATE `utenti` SET `user_password` = ‘”.md5($random_string).”‘ WHERE `user_id` =’”.$user_id.”‘ LIMIT 1&#8243;;

    $result = mysql_query($sql);

    $headers =”From:youacli@hotmail.it\r\n”;

    $subject =”aggiornamento password”;

    $message =”La tua nuova password è $invio_password”;

    mail($user_mail, $subject, $message, $headers);

    if(
    mail && $result)

    {echo
    “Aggiornamento passwrod effettuato con successo”;}

    }

    } else {

    //visualizza il form login

    ?>

    <?

    }

    ?>

    ?>

    <form name=”login” method=”post”>

    <table cellpadding=”5″>

    <tr>

    <td><b>Username:</b>

    <input type=”text” id=”username” name=”username” />

    </td>

    </tr>

    <tr>

    <td><b>E-mail:</b>

    <input type=”text” id=”email” name=”email” />

    </td>

    </tr>

    <tr>

    <td align=”center”>

    <input type=”submit” value=”Submit” name=”submit” id=”submit” class=”button” />

    <input type=”reset” value=”Reset” class=”button” />

    </td>

    </tr>

    </table>

    </form>

    <?

    }

    ?>
    grazie in anticipo ragazzi

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Nella riga 10:
    Codice PHP:
    function rand_string($len, $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';)
    c'è un punto e virgola che non dovrebbe esserci ( dopo la dichiarazione di $chars ).
    Quindi sostituisci con:
    Codice PHP:
    function rand_string($len, $chars = 'abcdefghijklmnopqrstuvwxyz0123456789')
    Poi, ho notato che nello script ci sono questo tipo di virgolette e apici: , . Php non le interpreta e lancerà un errore! Sostituiscile con " e '.

    P.s. Ho provato a sistemarti un po' il codice, ho trovato delle graffe/else di troppo. Ho corretto, ma non posso garantirti che funzionerà, sebbene non ci siano errori di sintassi.

    Codice PHP:
    <?php
    include_once("include/config.php");
    include_once(
    "include/auth.lib.php");
    include_once(
    "include/reg.lib.php");

    // genera una stringa casuale della lunghezza desiderata

    // genera una stringa casuale della lunghezza desiderata

    function rand_string($len, $chars = 'abcdefghijklmnopqrstuvwxyz0123456789') {
    $string = '';

    for (
    $i = 0; $i < $len; $i++) {
    $pos = rand(0, strlen($chars)-1);
    $string .= $chars{$pos};
    }

    return
    $string;
    }

    //controlla se la sessione è già attiva

    if(isset($_SESSION['username']) && isset($_SESSION['password'])) {
    //in tal caso ci reindirizza verso la homepage del sito o dovunque vogliate
    header('Location: http://youacli.altervista.org/registrazione/home.php');
    die();
    // meglio fermare lo script, altrimenti se un browser non effettua il redirect, lo script continua ad essere eseguito.
    }

    //se il modulo è stato inviato

    if(isset($_POST['submit'])) {
    //campo username vuoto
    if(!$_POST['username']) die("Errore: Devi inserire il tuo username");
    //campo password vuoto
    if(!$_POST['email']) die("Errore: Devi inserire l'indirizzo mail dove inviare la nuova password");

    $query = "SELECT * FROM `utenti` WHERE username = '".$_POST['username']."'";
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);
    $user_id = $row['user_id'];
    $user_mail = $row['user_email'];

    if(
    $row < 1) die("nessuna corrispondenza trovata nel database");
    if(
    $row['user_email'] != $_POST['email']) die("Il nome utente non è associato all'indirizzo mail specificato");

    $random_string = rand_string(5);
    $invio_password = $random_string;
    $sql = "UPDATE `utenti` SET `user_password` = '".md5($random_string)."' WHERE `user_id` ='".$user_id."' LIMIT 1";
    $result = mysql_query($sql);
    $headers ="From:youacli@hotmail.itrn";
    $subject ="aggiornamento password";
    $message ="La tua nuova password è $invio_password";
    mail($user_mail, $subject, $message, $headers);

    if(
    mail && $result) echo "Aggiornamento passwrod effettuato con successo";
    } else {

    //visualizza il form login
    ?>

    <form name="login" method="post">

    <table cellpadding="5">

    <tr>

    <td><b>Username:</b>

    <input type="text" id="username" name="username" />

    </td>
    </tr>

    <tr>

    <td><b>E-mail:</b>

    <input type="text" id="email" name="email" />

    </td>

    </tr>

    <tr>

    <td align="center">

    <input type="submit" value="Submit" name="submit" id="submit" class="button" />

    <input type="reset" value="Reset" class="button" />

    </td>

    </tr>

    </table>

    </form>

    <?
    }
    ?>
    Ultima modifica di javascripter : 17-03-2011 alle ore 10.11.48

  3. #3
    Guest

    Predefinito

    ho modificato lo script come hai detto tu e adesso dovrebbe funzionare solo che quando metto username e e-mail mi dice che non ci sono e-mail associate a quel username ora io ho controllato il database e ho notato che manca il campo e-mail
    anche per questo in questo momento e possibile registrare piu account con un e-mail e io non voglio...come si aggiunge un campo e-mail al db? grazie ancora dell'aiuto

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •