Form di contatto e relativo file in php. Qualcuno mi salvi.

Dragonfly

Nuovo Utente
2 Nov 2012
6
0
0
Buonasera a tutti, spero che questo forum sia la mia ancora di salvezza...
Devo creare un form di contatto che si invia ad un indirizzo email. Sono due settimane che ci sbatto la testa ma non riesco a risolvere il problema, insomma, ho provato a pubblicare la pagina, a inviare il form, ma non mi arriva nessuna mail. Vi posto i due script:

x il form:

HTML:
<table width="718" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td bgcolor="#FFFFFF"><form action="process.php" method="post" name="form1" id="form1" onsubmit="MM_validateForm('Nome','','R','Cognome','','R','Telefono','','RisNum','Mail','','RisEmail','Richiesta','','R');return document.MM_returnValue">
      <p class="testo">
        <label for="nome"></label>
        *Nome
        <br />
        <input name="nome" type="text" id="nome" />
        <br />
        *Cognome <br />
        <label for="cognome"></label>
        <input type="text" name="cognome" id="cognome" />
        <br />
        *Telefono<br />
        <label for="telefono"></label>
        <input type="text" name="telefono" id="telefono" />
        <br />
        *E-mail<br />
        <label for="email"></label>
        <input type="text" name="email" id="email" />
        <br />
        Data evento<br />
        <label for="data"></label>
        <input type="text" name="data" id="data" />
        <br />
        *Richiesta<br />
        <label for="richiesta"></label>
        <textarea name="richiesta" id="richiesta" cols="45" rows="5"></textarea>
        <br />
        <label for="button"></label>
        <input type="submit" name="button" id="button" value="Invia" />
        <br />
      </p>
</form></td>
  </tr>
</table>

x il php:

PHP:
<?

$destinatario = "la mia e mail";

$oggetto = "richiesta";

$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$telefono = $_POST['telefono'];
$data = $_POST['data'];
$richiesta = $_POST['richiesta'];

$intestazioni = "From: ".$email;

mail($destinatario, $oggetto, $nome, $cognome, $telefono, $data, $testo, $intestazioni);
echo "<p>Messaggio inviato</p>";

?>

Grazie per il supporto!
 
Ultima modifica di un moderatore:
ciao
stai facendo casino con la funzione mail(), las funzione mai accetta solo 5 opzioni (da manuale php)
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
http://it2.php.net/manual/en/function.mail.php

modifica lo script in questo modo
PHP:
<?php
$destinatario = "la mia e mail";//qui immagino che tu non abbio voluto scrivere il tuo indirizzo
$oggetto = "richiesta";
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$telefono = $_POST['telefono'];
$data = $_POST['data'];
$richiesta = $_POST['richiesta'];
$messaggio="$nome \n $cognome \n $telefono \n $richiesta \n";
$intestazioni = "From: ".$email;
mail($destinatario, $oggetto, $messaggio, $intestazioni);
echo "<p>Messaggio inviato</p>";
?>

poi non usare gli shorttag <? (deprecati) ma il tag <?php
inoltre mancano tutti i controlli dei post (mi sembra che tu usi js, ma js è facilmente bypassabile), è necessario fare i controlli lato server per non avere brutte sorprese
 
Grazie grazie grazie e mille volte grazie!

Solo una curiosità giusto per confermarti la mia ignoranza in materia.
Come mai il mittente della mail che mi arriva non è l'indirizzo che metto nella casella email ma questa "Apache <[email protected]"???

Antonella.
 
Grazie per la risposta, ma visto che non mi smentisco mai non ho ben capito... Forse dipende dal sito altervista? Dovrei forse provarlo su un altro sito? Non ne esco più. Grazie per la pazienza.

Antonella.
 
ciao
aggiungi il $_POST
PHP:
 <?php
$destinatario = "la mia e mail";//qui immagino che tu non abbio voluto scrivere il tuo indirizzo
$oggetto = "richiesta";
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$telefono = $_POST['telefono'];
$data = $_POST['data'];
$richiesta = $_POST['richiesta'];
$email = $_POST['email'];// questo
$messaggio="$nome \n $cognome \n $telefono \n $richiesta \n";
$intestazioni = "From: ".$email;
mail($destinatario, $oggetto, $messaggio, $intestazioni);
echo "<p>Messaggio inviato</p>";
?>
 
Nulla da fare. Su altervista il mittente è quella email strana che ti dicevo. Su aruba invece la mail arriva senza mittente... -.-

Antonella.
 
Sono proprio una rinco........ cronica! Il campo era mail e non email... avoglia a provare e a riprovare... ho le dita consumate mannaggia a me.

Sei ufficialmente il mio salvatore.

Grazie mille di nuovo.

Antonella.
 
ciao
ti do un piccolo consiglio:
quando c'è qualcosa che non va (il debug spesso è più difficile che scrivere lo script) usa la funzione var_dump()
es. nel tuo caso
PHP:
 <?php
$destinatario = "la mia e mail";//qui immagino che tu non abbio voluto scrivere il tuo indirizzo
$oggetto = "richiesta";
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$telefono = $_POST['telefono'];
$data = $_POST['data'];
$richiesta = $_POST['richiesta'];
$email = $_POST['email'];// questo
var_dump($_POST['email']);//una volta capito la togli o la commenti
$messaggio="$nome \n $cognome \n $telefono \n $richiesta \n";
$intestazioni = "From: ".$email;
mail($destinatario, $oggetto, $messaggio, $intestazioni);
echo "<p>Messaggio inviato</p>";
?>
avresti visto a monitor un bel NULL quindi vuol dire che il valore non viene trasmesso.
mettando il var_dump() alle varie variabili e funzioni si capisce, quasi sempre, dove è l'inghippo
 
Ottimo consiglio, ti ringrazio. Visto che di guai ne combino tanti mi sarà sicuramente utile.

Grazie ancora di tutto, Antonella.
 

Discussioni simili