Visualizzazione risultati 1 fino 2 di 2

Discussione: per favore aiuto

  1. #1
    Guest

    Exclamation per favore aiuto

    ho creato questo codice php
    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['mail']) 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_mail'];

    if(
    $row < 1) die("nessuna corrispondenza trovata nel database");
    if(
    $row['user_mail'] != $_POST['mail']) 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="mail" name="mail" />

    </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>

    <?
    }
    ?>
    lo script va bene credo... però non mi funziona perché mi dice "Il nome utente non è associato all'indirizzo mail specificato" cosa impossibile perché l'ho testato mille volte mi dite per favore cosa sbaglio? grazie in anticipo
    Ultima modifica di youacli : 22-03-2011 alle ore 06.08.34

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    vorrei poterti aiutare....

    il tuo è un reset password, il codice è abbastanza disordinato e non corretto!

    Come vuoi effetuare il recupero ? sia con username e email, oppure username o email?

    succede che tante volte l'utente che dimentica la password dimentica anche il suo username, quindi in teoria basterebbe chiedere l'email per resettare la password.....

    Codice PHP:
    //lasciando come hai fatto tu:
    $query = "SELECT * FROM `utenti` WHERE username = '".$_POST['username']."'";
    $result = mysql_query($query);

    //diventa:
    $count_results = mysql_num_rows($result);
    if (
    $count_results>0) {

    $row = mysql_fetch_array($result);
    $user_id = $row['user_id'];
    $user_mail = $row['user_mail'];

    if(
    $user_mail != $_POST['mail']) die("Il nome utente non è associato all'indirizzo mail specificato");

    //il resto del codice....


    }
    else die(
    "nessuna corrispondenza trovata nel database");
    Ultima modifica di EuroSalute : 22-03-2011 alle ore 17.20.41 Motivo: info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

Regole di scrittura

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