-
problema invio email php
Salve sto realizzando un sito in php è ho la necessità di mandare email nel caso il visitatore richiede la password o il nome utente che si è scordato, non mi va in nessuna delle due pagina. posto il codice di entrambi spero in un vostro aiuto. GRAZIE :wink:
nome utente e psw dimenticati:
Codice PHP:
<?php
// connessione db
// controlli form
$stringa5="SELECT nomeutente,password FROM utenti WHERE (email='$_POST[email]')";
$ris5=mysql_query($stringa5);
while($riga5= mysql_fetch_array($ris5))
{
$nomut=$riga5["nomeutente"];
$psw=$riga5["password"];
}
echo "Richiesta effettuata con successo le arrivera un'email con i dati<br>";
echo "<a href='index.php'>Home page</a>";
mail("'$_POST[email]'","dati accesso",$nomut,$psw);
?>
psw dimenticata:
Codice PHP:
<?php
// connessione db
// controlli form
$stringa="SELECT nomeutente FROM utenti WHERE (nomeutente='$_POST[Nomeutente]')";
$ris=mysql_query($stringa);
$riga= mysql_num_rows($ris);
if($riga>'0')
{
echo "Le arriverà un'email contente la password<br>";
$stringa2="SELECT email,password FROM utenti WHERE (nomeutente='$_POST[Nomeutente]')";
$ris2=mysql_query($stringa2);
while($riga2=mysql_fetch_array($ris2))
{
$psw=$riga2["password"];
$email=$riga2["email"];
}
mail($email,"password",$psw);
echo '<a href="index.php">Home page</a>';
}
?>
-
guarda io prue dovevo fare una cosa con l' e-mail però mi hanno consigliato di non usare mail() ma di utilizzare phpmailer eccoti il link se vuoi per scaricarlo però devi imparati ad utilizzarlo
http://code.google.com/a/apache-extr...downloads/list
e questo è il codice da inserire nella pagina tua
Codice PHP:
<?
include("class.phpmailer.php");
$mittente = "server@vostrodominio.it";
$nomemittente = "Richiesta Informazioni";
$destinatario = "info@vostrodominio.it";
$ServerSMTP = "smtp.vostrodominio.it" //server SMTP
$corpo_messaggio = "Grazie per averci contattato!!\n"
."Cordiali Saluti,\nServizio Clienti";
$messaggio = new PHPMailer;
// utilizza la classe SMTP invece del comando mail() di php
$messaggio->IsSMTP();
$messaggio->SMTPKeepAlive = "true";
$messaggio->Host = $ServerSMTP;
$messaggio->From = $mittente;
$messaggio->FromName = $nomemittente;
$messaggio->AddAddress($destinatario);
$messaggio->Body = $corpo_messaggio;
if(!$messaggio->Send()) {
echo "errore nella spedizione: ".$messaggio->ErrorInfo;
} else {
echo "messaggio inviato correttamente";
}
?>
-
Altre soluzioni? GRAZIE ;)
-
Codice PHP:
$stringa5="SELECT nomeutente,password FROM utenti WHERE (email='$_POST[email]')";
Teoricamente, per gli array, se vuoi che nella stringa venga sostituito il valore, dovresti metterlo tra parentesi graffe... Anche se a me piace di più così:
Codice PHP:
$stringa5="SELECT nomeutente,password FROM utenti WHERE (email='".$_POST['email']."')";
(anzi, lo farei ancora diverso, ma vabbè...).
Ah, inoltre, occhio agli attacchi sql_injection... tutte le variabili provenienti da form, dovresti "filtrarle" con la mysql_real_escape_string().
-----
Anche qui:
Codice PHP:
mail("'$_POST[email]'","dati accesso",$nomut,$psw);
Prova semplicemente:
Codice PHP:
mail($_POST['email'],"dati accesso",$nomut.' - '.$psw);
Nella mail(), il quarto parametro è degli header, e $psw non mi sembra un header... Il testo dell'email va nel III parametro.
-----
Inoltre, mail() ritorna true in caso di successo, quindi metti un if per verificare che tutto sia andato bene... una cosa del tipo:
Codice PHP:
if(mail(<parametri>))
echo 'email inviata con successo';
else echo 'Problemi per inviare una email';
Ciao!
-
Tutto apposto sono riuscito GRAZIE