- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Recuperare valore da database MySql e inviarlo per email
-
Recuperare valore da database MySql e inviarlo per email
Ciao a tutti.
Come da titolo vorrei dare la possibilità di recuperare valori (nel mio caso password) dal mio database.
Mi spiego meglio: per accedere ad una pagina bisogna effettuare il login ma se l'utente dimentica la password è spacciato perché non ha modo di recuperarla; quindi ho pensato di inserire un link che riporta ad un'altra pagina in cui ci sono soltanto una Input (text) e un Bottone (esattamente come per le email).Vorrei fare una cosa molto semplice:dopo aver scritto l'indirizzo email e aver premuto il bottone, nella email inserita deve arrivare la password corrispondente presente nel database.
Ho scritto questo codice ma non capisco dove sbaglio e spero che possiate aiutarmi.
Ciao, grazie.
<div> Email <form method="post"> <input name="email" type="text" maxlength="100" size="20" style="width: 200px" /><br /> <br /> <input name="invia" type="submit" value="Invia" style="width: 125px" /></form> </div> <?php // SE PREMO IL TASTO INVIA FAI TUTTO IL CODICE if (isset ($_POST['invia'])) { // FACCIO LA CONNESSIONE AL SERVER $con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita!!!".mysql_error()); $db = mysql_select_db ("login", $con); if (!$db) { die ("Connessione al database login fallita!!!".mysql_errore()); } $errori = array(); if (!isset($_POST['email']) || empty($_POST['email'])) { $errori[] = 'email'; } // SE IMPUT EMAIL NON E' VUOTO SCRIVI UN MESSAGGIO DI ERRORE ALTRIMENTI LEGGI IL SUO VALORE if (!empty($errori)) { echo "Nessuna Email inserita!!!"; } else { $mail = $_POST['email']; // SELEZIONO LA COLONNA MAIL DALLA TABELLA "UTENTI" DEL DATABASE "LOGIN" $query = "SELECT mail FROM utenti WHERE mail = '$mail'"; $risultato = mysql_query ($query,$con) or die (mysql_error()); $conta = mysql_num_rows($risultato); // SE LA TABELLA CONTIENE UNA MAIL UGUALE A QUELLA INSERITA SCRIVERA UN MESSAGGIO if ($conta ==1) { $mittente = 'From: "smartstructure" <[email protected]> \r\n'; $destinatario = $mail; $oggetto = "Password"; $messaggio = $conta; mail($destinatario, $oggetto, $messaggio, $mittente); } } } ?>
-
Ciao samurai.sette
credo che per ragioni di privacy sia meglio che tu non conservi in chiaro le password dei tuoi utenti. Potresti però creare una pagina attraverso cui, chi non si ricorda la password, possa re-settarla. Magari attraverso un link che gli arriva per mail.
-
Ciao PietroR, grazie per la risposta. Avevo pensato anche io ad una soluzione come la tua ma ho pensato di evitarla e ti spiego il perché: quando viene creata la password la creo insieme all'utente che entrerà nel sito; questo perché il database è collegato a diversi macchinari e quindi anche io devo effettuare il login per verificare che tutto funzioni; detto ciò non vedo il motivo per cui l'utente debba resettare la password. Nel caso in cui la volesse modificare (perché ad esempio non la ritiene più sicura) mi può contattare per telefono o email e insieme provvederemo a modificarla.
Spiegato questo, mi sapresti dare qualche consiglio su come migliorare il codice che ho scritto?
Grazie, ciao.
-
Potresti postare anche l'errore che ti viene restituito?
-
Non mi da nessun errore, ma non mi invia le email
-
Domanda banale(in caso scusami): il tuo server ha installato e configurato correttamente un mail server?
-
Ciao PietroR. Scusa se rispondo solo adesso ma sono stato fuori per lavoro.
Ho finalmente risolto il mio problema; non era ciò che mi dicevi ma semplicemente mancava un ; solo non capisco perché non mi dava errore
Comunque grazie.
-
@samurai.sette said:
Ciao PietroR. Scusa se rispondo solo adesso ma sono stato fuori per lavoro.
Ho finalmente risolto il mio problema; non era ciò che mi dicevi ma semplicemente mancava un ; solo non capisco perché non mi dava errore
Comunque grazie.Probabilmente nel php.ini hai il "display_error" settato ad Off.
Oppure da qualche parte hai "error_reporting(0)"