Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    154

    pagina recupero password PHP


    recupero.php


    Codice PHP:
    <?php
    /*  PARTE DELL’INVIO EMAIL. Si controlla che l'email (=user) sia presente  nel db. Estraggo quindi id e password dell'utente e li unisco in  un'unica stringa ($hash) da passare nel $_GET. La stringa su cui  cliccare è inviata per email, come conferma, e rinvia al file  “nuova_password.php”. */
    if(isset($_POST['invia'])){

        
    $errore=0//variabile di controllo errori (se rimane a 0 non ci sono errori)

        
    if($_POST['email']==""){
            
    $errore=1;
        }else{
            
    $result=mysqli_query("select id, pass from users where email='".$_POST['email']."' limit 0,1"$db);

            if(
    mysql_num_rows($result)>0){
                
    $row=mysqli_fetch_array($result);

                
    //l’hash ci servirà per recuperare i dati utente e confermare la richiesta
                //la password nel database si presume criptata, con md5 o altro algoritmo
                //al posto di questi due dati, se ne possono usare altri legati all’utente, purché univoci
                
    $hash=$row['pass']."".$row['id'];

            }else
                
    $errore=1;

        }

    //se non ci sono stati errori, invio l’email all’utente con il link da confermare
        
    if($errore==0){

            
    $header"From: sitoprova.96.lt <giuliopulizzi@gmail.com>\n";
            
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
            
    $header .= "Content-Transfer-Encoding: 7bit\n\n";

            
    $subject"sitoprova.96.lt - Nuova password utente";

            
    $mess_invio="<html><body>";
             
    $mess_invio.=" Clicca sul <a  href=\"http://sitoprova.96.lt/nuova_password.php?hash=".$hash."\">link</a>  per confermare la nuova password.<br /> Se il link non è  visibile, copia la riga qui sotto e incollala sul tuo browser: <br  /> http://sitoprova.96.lt/nuova_password.php?hash=".$hash." ";
            
    $mess_invio.='</body><html>';

            
    //invio email
            
    if(mail($_POST['email'], $subject$mess_invio$header)){

                echo 
    "<div class=\"campo_contatti\" style=\"margin-left: 20px; height: 300px\">";
                echo 
    "Email inviata con successo. Controlla la tua email<br /><br />";

                echo 
    "</div> <div class=\"clear\"></div>";
                unset(
    $_POST); //elimino le variabili post, in modo che non appaiano nel form

            
    }

        }

    }
    ?>
    <html>
    <head><title>Recupero Pass</title>
    </head><body>
    <form action="" method="post" id="login">

        <div class="campo_contatti">
            <div class="voce_campo">Inserisci la tua email per ricevere la nuova password</div>
            <input type="text" name="email" value="<?=@$_POST['email']?>" class="campo" />
        </div>
        
        <div class="clear"></div>
        
        <div class="campo_contatti">
            <input type="submit" value="invia" name="invia" />
        </div>
        
        <div class="clear"></div>

    </form>
    </body>
    </html>
    una volta inserito nell'aposito campo l'email e premuto il tasto invia mi saltano fuori questi 2 errori :

    Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /home/u686410779/public_html/recupero.php on line 10

    Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /home/u686410779/public_html/recupero.php on line 12

    potreste aiutarmi a risolvere? grazie in anticipo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    154
    nuova_password.php


    File allegati File allegati

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    $result=mysqli_query("select id, pass from users where email='".$_POST['email']."' limit 0,1", $db);

    Il primo parametro deve essere il link alla connessione, il secondo invece la query, inverti l'ordine dei parametri, quindi prima $db e poi la stringa con la query.

    Leggi sempre la documentazione della funzione che ti da problemi, avresti capito subito l'errore, che sta pure scritto nel messaggio che ti viene restituito "Il primo parametro deve essere mysqli, invece mi hai dato una stringa".

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    154
    nulla, avevo già provato a fare la cosa che tu mi hai suggerito...l ho rifatta e nulla ottengo sempre gli stessi 2 errori sopra citati

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Allora non va a buon fine la connessione.
    Comunque, va sicuramente prima $db e poi la query.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    154
    si avevi ragione ho risolto

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Pero'. Livello sicurezza = 0.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    154
    ho cambiato del tutto codice ho realizzato la pagina di recupero password in questo modo:
    vi allego i file perche non me li fa mettere qui.
    recupero.php
    new_password.php


    adesso però ho un altro problema .. mentre quando mi registro, grazie ad una funzione, la password viene criptata , con il recupero della password ciò non succede...infatti quando provo ad accedere con la nuova password che ho cambiato grazie alle pagine di recupero, mi dice che la password è errata...come faccio a criptare le password anche con il recupero password?

    File allegati File allegati
    Ultima modifica di Punix; 26-02-2017 a 02:49

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Ti consiglio di rimuovere l'allegato subito.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    154
    ops avevo dimenticato a nascondere alcune info importanti,grazie per l accorgimento

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.