Torna indietro   AlterVista | Spazio web gratis, hosting free php mysql > L'angolo del webmaster > PHP, MySql e Apache (.htaccess)

Rispondi
 
LinkBack Strumenti discussione Modalità visualizzazione
  #1 (permalink)  
Vecchio 11-03-2009, 20.24.44
Guest
 
Messaggi: n/a
Predefinito problema form e-mail

ho creato un form email per il mio sito ma non capisco perchè non funziona il codice è:
parte php:
Codice:
<?php
//raccogliamo le variabili inviate
$nome=$_POST['nome'];
$email=$_POST['email'];
$oggetto=$_POST['oggetto'];
$messaggio=$_POST['messaggio'];
$Submit=$_POST['Submit'];
//controlliamo che sia stato inviato il form
if($Submit=='Invia!'){
//controlliamo che siano stati inseriti tutti i dati
if(!empty($nome) and !empty($email) and !empty($messaggio) and !empty($oggetto)){
//inviamo l'email
$mail=mail("matteopagliazzi@gmail.com", $oggetto, $messaggio);
//controlliamo che la mail sia stata inviata correttamente
if($mail){
//messaggio in caso di successo
$ok="Email inviata!";
}
else{
//messaggio in caso di errore
$errore="Non è stato possibile inviare l'email, riprova.";
}
}
else{
//messaggio in caso di campi mancanti
$errore="Tutti i campi sono obbligatori!";
}
}
?>
parte html:
Codice HTML:
<?php if(isset($errore)){ echo $errore; }else{ if(isset($ok)){ echo $ok; } } ?>
<form name="mailform" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
Nome<br />
<input type="text" name="nome" /><br />
Email<br />
<input type="text" name="email" />
<br />
Oggetto<br />
<input type="text" name="oggetto" />
<br />
<br />
<textarea name="messaggio" cols="40" rows="5">Inserisci il tuo messaggio qui..</textarea>
<br />
<input type="submit" name="Submit" value="Invia!" />
<input type="reset" name="Submit2" value="Cancella" />
</form>
grazie
Rispondi citando
  #2 (permalink)  
Vecchio 11-03-2009, 20.29.46
L'avatar di stoner
AlterVistiano
 
Data registrazione: 30-07-2008
Residenza: Roma
Messaggi: 841
Predefinito

Sostituisci questa riga
Codice HTML:
<form name="mailform" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
con
Codice HTML:
<form name="mailform" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
__________________

Un giorno la paura bussò alla porta, il coraggio andò ad aprire e non c’era nessuno…

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa.
Rispondi citando
  #3 (permalink)  
Vecchio 11-03-2009, 20.32.03
L'avatar di tryphpnuke
Utente attivo
 
Data registrazione: 17-09-2005
Residenza: Mah..
Messaggi: 479
Predefinito

oppure usi la sintassi apposita:
Codice HTML:
<form name="mailform" method="post" action="<?=$_SERVER['PHP_SELF'];?>">
__________________
ciao,
..paolino!
Rispondi citando
  #4 (permalink)  
Vecchio 11-03-2009, 20.36.14
L'avatar di sIM
sIM sIM non è connesso
AlterGuru
 
Data registrazione: 02-07-2006
Messaggi: 2,197
Predefinito

...oppure non lo metti come faccio io!
__________________
Davide — daddie.altervista.org
Rispondi citando
  #5 (permalink)  
Vecchio 11-03-2009, 20.37.16
Guest
 
Messaggi: n/a
Predefinito

ho provato in tutti e 2 i modi ma niente...
possibile che non faccia perchè sono in locale?
edit anche con il metodo di sim non va

Ultima modifica di mytecnology : 11-03-2009 alle ore 20.38.29
Rispondi citando
  #6 (permalink)  
Vecchio 11-03-2009, 20.40.47
L'avatar di tryphpnuke
Utente attivo
 
Data registrazione: 17-09-2005
Residenza: Mah..
Messaggi: 479
Predefinito

ma ottieni qualche messaggio di errore, oppure lo script sembra non fare nulla?
__________________
ciao,
..paolino!
Rispondi citando
  #7 (permalink)  
Vecchio 11-03-2009, 21.02.03
L'avatar di sIM
sIM sIM non è connesso
AlterGuru
 
Data registrazione: 02-07-2006
Messaggi: 2,197
Predefinito

Metti all'inizio dello script: error_reporting(E_ALL);
__________________
Davide — daddie.altervista.org
Rispondi citando
  #8 (permalink)  
Vecchio 11-03-2009, 21.11.43
L'avatar di biccheddu
AlterGuru 2500
 
Data registrazione: 18-01-2009
Residenza: Sant'Antioco
Messaggi: 2,754
Invia un messaggio via Yahoo a biccheddu Manda un messaggio tramite Skype™ a biccheddu
Predefinito

Perchè nel php non controlli il name="" ma il value="" del bottone

Dovrebbe andare così:
Codice PHP:
<?php
//raccogliamo le variabili inviate
$nome htmlspecialchars(trim($_POST['nome']));
$email htmlspecialchars(trim($_POST['email']));
$oggetto htmlspecialchars(trim($_POST['oggetto']));
$messaggio htmlspecialchars(trim($_POST['messaggio']));
$Submit $_POST['Submit'];
//controlliamo che sia stato inviato il form
if($Submit)
{
    
//controlliamo che siano stati inseriti tutti i dati
    
if(!empty($nome) and !empty($email) and !empty($messaggio) and !empty($oggetto))
    {
        
//inviamo l'email
        
mail("matteopagliazzi@gmail.com"$oggetto$messaggio);
        
//controlliamo che la mail sia stata inviata correttamente
    
}
    else
    {
        
//messaggio in caso di campi mancanti
        
print 'Tutti i campi sono obbligatori!';
    }
}
?>
__________________
Rispondi citando
  #9 (permalink)  
Vecchio 12-03-2009, 12.31.12
Guest
 
Messaggi: n/a
Predefinito

con il codice di biccheddu non mi dice più se è stata inviata oppure no
Rispondi citando
  #10 (permalink)  
Vecchio 12-03-2009, 14.29.59
Guest
 
Messaggi: n/a
Predefinito

Niente di più semplice...
Codice PHP:
<?php
//raccogliamo le variabili inviate
$nome htmlspecialchars(trim($_POST['nome']));
$email htmlspecialchars(trim($_POST['email']));
$oggetto htmlspecialchars(trim($_POST['oggetto']));
$messaggio htmlspecialchars(trim($_POST['messaggio']));
$Submit $_POST['Submit'];
//controlliamo che sia stato inviato il form
if($Submit)
{
    
//controlliamo che siano stati inseriti tutti i dati
    
if(!empty($nome) and !empty($email) and !empty($messaggio) and !empty($oggetto))
    {
        
//inviamo l'email
        
mail("matteopagliazzi[at]gmail.com"$oggetto$messaggio);
        echo 
"Email inviata correttamente!";
        
//controlliamo che la mail sia stata inviata correttamente
    
}
    else
    {
        
//messaggio in caso di campi mancanti
        
print 'Tutti i campi sono obbligatori!'//quindi l'email non verrà inviata...
    
}
}
?>
Saluti!
Rispondi citando
  #11 (permalink)  
Vecchio 12-03-2009, 14.51.04
Guest
 
Messaggi: n/a
Predefinito

grazie ora va!
per non fare più lo stesso errore mi potresti dire cosa c'è di diverso tra il tuo e il codice di biccheddu?
edit: quanto sarebbe in media il tempo di arrivo della mail?

Ultima modifica di mytecnology : 12-03-2009 alle ore 15.02.13
Rispondi citando
  #12 (permalink)  
Vecchio 14-03-2009, 18.03.50
Guest
 
Messaggi: n/a
Predefinito

scusate se ho cambiato account comunque il problema dopo varie prove è (non so perchè dell'oggetto) anche il mio codice iniziale andava senza l'oggetto
Rispondi citando
  #13 (permalink)  
Vecchio 14-03-2009, 18.23.43
L'avatar di biccheddu
AlterGuru 2500
 
Data registrazione: 18-01-2009
Residenza: Sant'Antioco
Messaggi: 2,754
Invia un messaggio via Yahoo a biccheddu Manda un messaggio tramite Skype™ a biccheddu
Predefinito

Perchè usi l'operatore AND ( && ) e non OR ( || ) nella condizione
__________________
Rispondi citando
  #14 (permalink)  
Vecchio 14-03-2009, 18.31.12
Guest
 
Messaggi: n/a
Predefinito

Citazione:
Originalmente inviato da biccheddu Visualizza messaggio
Perchè usi l'operatore AND ( && ) e non OR ( || ) nella condizione
ma così cambia qualcosa?
Rispondi citando
  #15 (permalink)  
Vecchio 14-03-2009, 21.16.10
L'avatar di biccheddu
AlterGuru 2500
 
Data registrazione: 18-01-2009
Residenza: Sant'Antioco
Messaggi: 2,754
Invia un messaggio via Yahoo a biccheddu Manda un messaggio tramite Skype™ a biccheddu
Predefinito

Errore, ho capito male.

La condizione che usi è corretta.

Se nessuno di quei campi è vuoto invia la mail, altrimenti non la invia
__________________

Ultima modifica di biccheddu : 14-03-2009 alle ore 21.17.48
Rispondi citando
  #16 (permalink)  
Vecchio 15-03-2009, 09.22.24
Guest
 
Messaggi: n/a
Predefinito

ok però perchè ne con l tuo ne con il mio codice non la invia?
Rispondi citando
  #17 (permalink)  
Vecchio 15-03-2009, 11.21.08
L'avatar di biccheddu
AlterGuru 2500
 
Data registrazione: 18-01-2009
Residenza: Sant'Antioco
Messaggi: 2,754
Invia un messaggio via Yahoo a biccheddu Manda un messaggio tramite Skype™ a biccheddu
Predefinito

Ma ti restituisce qualche errore o cosa?!
__________________
Rispondi citando
  #18 (permalink)  
Vecchio 15-03-2009, 12.05.01
Guest
 
Messaggi: n/a
Predefinito

no nessun errore solo mi dice che l'invio è fallito poi se elimin $oggetto invece funziona
Rispondi citando
  #19 (permalink)  
Vecchio 15-03-2009, 13.36.02
L'avatar di biccheddu
AlterGuru 2500
 
Data registrazione: 18-01-2009
Residenza: Sant'Antioco
Messaggi: 2,754
Invia un messaggio via Yahoo a biccheddu Manda un messaggio tramite Skype™ a biccheddu
Predefinito

Prova a scrivere così:
Codice PHP:
mail('matteopagliazzi@gmail.com'$oggetto$messaggio'From: ' $nome ' <' $email '>'); 
__________________
Rispondi citando
  #20 (permalink)  
Vecchio 15-03-2009, 13.59.14
Guest
 
Messaggi: n/a
Predefinito

il pezzo da sostituire quindi sarebbe questo:
Codice PHP:
mail("matteopagliazzi[at]gmail.com"$oggetto$messaggio); 
?
Rispondi citando
  #21 (permalink)  
Vecchio 15-03-2009, 14.27.58
Utente attivo
 
Data registrazione: 04-11-2008
Residenza: Lodi
Messaggi: 353
Predefinito

si è quello
Rispondi citando
Rispondi

Strumenti discussione
Modalità visualizzazione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Disattivato



Tutti gli orari sono GMT +1. Adesso sono le 06.47.06.