PDA

Visualizza la versione completa : codice per newsletter


chia88
09-04-2012, 14:52
Ciao a tutti.
Sto programmando un codice per la registrazione alla newsletter, per ora lo sto provando solo in locale.
Il codice mi da questo errore
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in G:\xampp\htdocs\elemento3\rec_elemento.php on line 36 Riprovate! Errore di inserimento:problema con il server o la connessione. La pagina si riaggiorna automaticamente in 5 secondi. Warning: Cannot modify header information - headers already sent by (output started at G:\xampp\htdocs\elemento3\rec_elemento.php:14) in G:\xampp\htdocs\elemento3\rec_elemento.php on line 49

il codice che ho scritto invece è questo


<?php

$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$email=$_POST['mail'];
if($nome=="" or $cognome=="" or $email==""){
echo "Riprovate!
Errore di inserimento:campi compilati non correttamente, uno o più campi vuoti.
La pagina si riaggiorna automaticamente in 5 secondi. ";
header("Refresh: 5; URL=newsletter.php");
}
else{
if($nome=="Inserisci nome" or $cognome=="Inserisci cognome" or $email=="Inserisci indirizzo email"){
echo "Riprovate!
Errore di inserimento:uno o più campi compilati non correttamente.
La pagina si riaggiorna automaticamente in 5 secondi. ";
header("Refresh: 5; URL=newsletter.php");
}
else{
if(!(stripos($email,"@"))){
echo "Riprovate!
Errore di inserimento:formato email non corretto.
La pagina si riaggiorna automaticamente in 5 secondi. ";
header("Refresh: 5; URL=newsletter.php");
}
else{
$sql="SELECT mail FROM elementotre WHERE mail='".$email."'";
$rec=mysql_query($sql);
if($riga=mysql_fetch_assoc($rec)){
echo "Riprovate!
Errore di inserimento:utente già registrato con questa email(".$email.").
La pagina si riaggiorna automaticamente in 5 secondi. ";
header("Refresh: 5; URL=newsletter.php");
}
else{
$sql="INSERT INTO elementotre (nome, cognome, mail)
VALUES
('$nome','$cognome','$email')";
//Se l'inserimento non va
if (!mysql_query($sql))
{
//Blocchiamo l'esecuzione della pagina con queste informazioni all'utente
echo "Riprovate!
Errore di inserimento:problema con il server o la connessione.
La pagina si riaggiorna automaticamente in 5 secondi. ";
header("Refresh: 20; URL=newsletter.php");
}
else{

?>


<?php
//altrimenti se l'inserimento dei dati va a buon fine:
/*echo $sql;
echo $nome;
echo $nome2;
*/echo "Grazie, ".$nome;
echo "
";
echo "I suoi dati sono stati registrati
La pagina si riaggiorna automaticamente in 5 secondi.";
?>

</div>
</body>
</html>

<?php
header("Refresh: 5; URL=index.php");
}
}
}
}
}
?>
</div>
</body>
</html>
sapreste aiutarmi? Grazie

Plopper
09-04-2012, 14:55
Ordina il codice per riga comunque il primo errore che noto è questo:



if($riga=mysql_fetch_assoc($rec))


Sostituiscilo con



if(mysql_num_rows($rec)>0) //mail gia utilizzata

chia88
09-04-2012, 14:56
cosa significa ordina per riga?


if($riga=mysql_fetch_assoc($rec)) e questo dove lo aggiungo?
Sono molto niubba... ho bisogno che spiegate molto elementare

Plopper
09-04-2012, 14:58
Originariamente inviato da chia88
cosa significa ordina per riga?


if($riga=mysql_fetch_assoc($rec)) e questo dove lo aggiungo?
Sono molto niubba... ho bisogno che spiegate molto elementare
Ho modificato il codice, avendo visto che serve per un riscontro
conta i rows se sono maggiori di 0 dai l'errore della mail gia utilizzata

chia88
09-04-2012, 15:02
ok ora mi da errore alla riga 40

else{ $sql="INSERT INTO elementotre (nome, cognome, mail) VALUES ('$nome','$cognome','$email')"; //Se l'inserimento non va if (!mysql_query($sql)) { //Blocchiamo l'esecuzione della pagina con queste informazioni all'utente echo "Riprovate!
Errore di inserimento:problema con il server o la connessione.
La pagina si riaggiorna automaticamente in 5 secondi. "; header("Refresh: 20; URL=newsletter.php"); } else{ ?>

Plopper
09-04-2012, 15:04
Originariamente inviato da chia88
ok ora mi da errore alla riga 40

else{ $sql="INSERT INTO elementotre (nome, cognome, mail) VALUES ('$nome','$cognome','$email')"; //Se l'inserimento non va if (!mysql_query($sql)) { //Blocchiamo l'esecuzione della pagina con queste informazioni all'utente echo "Riprovate!
Errore di inserimento:problema con il server o la connessione.
La pagina si riaggiorna automaticamente in 5 secondi. "; header("Refresh: 20; URL=newsletter.php"); } else{ ?>
Che tipo di errore ti da?

chia88
09-04-2012, 15:04
Parse error: parse error in G:\xampp\htdocs\elemento3\rec_elemento.php on line 40

Plopper
09-04-2012, 15:08
Originariamente inviato da chia88
Parse error: parse error in G:\xampp\htdocs\elemento3\rec_elemento.php on line 40
Isola la riga dal resto del codice e prova ad isolare $sql e vedere se ti da ancora errore
fai una serie di tentativi e fammi sapere

chia88
09-04-2012, 15:14
no la riga 40
inizia così
else{
$sql="INSERT INTO elementotre (nome, cognome, mail)
VALUES
('$nome','$cognome','$email')";
//Se l'inserimento non va
if (!mysql_query($sql))
{
//Blocchiamo l'esecuzione della pagina con queste informazioni all'utente
echo "Riprovate!
Errore di inserimento:problema con il server o la connessione.
La pagina si riaggiorna automaticamente in 5 secondi. ";
header("Refresh: 20; URL=newsletter.php");
}
else{

?>

Loading