Form funzionante a metà

Ciao

Ho creato una pagina contatti.php dove, vengono inseriti una Mail, un oggetto, un messaggio e tutto viene mandato via Mail ad un indirizzo.

Una volta schiacciato il bottone submit vorrei che mi ricomparisse la stessa pagina con una sritta 'Messaggio inviato con successo' oppure un messaggio di errore tipo 'Mail mancante'

lo script funziona perchè la Mail a me la manda ma non riesco a far comparire la 'scritta'.

il codice è questo:

<?php
   $percorso = htmlspecialchars($_POST['percorso']);
   $errore = htmlspecialchars($_POST['errore']);
?>
<h2> Sei In: <a href="http://annunciamonelweb.altervista.org/index.html"> Home Page </a>  &gt; Contatta La Redazione Di Annunciamonelweb <?php echo "$percorso"; ?></h2>
</div>
<div id="menusx">
<script type="text/javascript">
//<![CDATA[
   document.write('<s'+'cript type=\"text/javascript\" src=\"http://ad.altervista.org/js.ad/size=120X600/r='+new Date().getTime()+'\"><\/s'+'cript>');
//]]>";
</script>
</div>
<div id="contenuti">
<br>
<?php echo "$errore"; ?>
<form enctype='multipart/form-data' action="contattaci.php" method="post">
<p class="dati">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Oggetto:
&nbsp;&nbsp;<select name="oggetto" method="multiple">
<option value="impossibile" selected>Impossibile Trovare l'annuncio
<option value="rimossi">Annunci rimossi
<option value="violazioni">Segnala violazioni in un annuncio
<option value="critiche">Critiche e suggerimenti
<option value="tecnici">Problemi tecnici
<option value="visualizzazione">Problemi di visualizzazione
<option value="caricamento">Problemi di caricamento delle pagine
<option value="copyright">Violazioni di Copyright
<option value="rispondere">Problemi a rispondere agli annunci
<option value="inserire">Problemi a inserire annunci
<option value="lavora">Lavora con noi
<option value="link">Scambio link
</select>
</p>
<p class="dati"> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Mail:
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="mailc" size="50"></p>
<p class="dati">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;Messaggio:
<textarea rows="10" cols="40" name="mess"></textarea></p>
<p> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<input type="submit" value="Invia"></p>
<?php
if(!$_POST['mailc']){
   $percorso = "  &gt; Inserisci un Mail per ricevere una risposta";
   $errore = "<p class=\"b\">Inserisci un Mail per ricevere una risposta</p>";
   }
else {
   $mailc = htmlspecialchars($_POST['mailc']);
   if(!$_POST['mess']) {
             $percorso="  &gt; Torna indietro ed inserisci il tuo messaggio";
                 $errore="<p class=\"b\">Torna indietro ed inserisci il tuo messaggio</p>";
             }
   else {
         $percorso="  &gt; Messaggio Inviato";
            $errore="<p class=\"b\">Messaggio Inviato</p>";
         $oggetto = htmlspecialchars($_POST['oggetto']);
                  $mess = htmlspecialchars($_POST['mess']);

         
         $destinatario ="annunciamonelweb@gmail.com";
                                             $oggetto ="$oggetto";
                                             $info="$oggetto
$mailc
$mess";
                                             mail ($destinatario, $oggetto, $info, "From:annunciamonelweb");
   }
   }
   ?>
</div>

Qulcuno puo dirmi dove è l errore?

Grazie!!

Spero di essere stato chiaro, cmq l indirizzo della pagina è questo:

http://annunciamonelweb.altervista.org/contattaci.php

Grazie!

 :bye: :bye:

inviato 5 anni fa
gianluca80
X 0 X

Ciao Gianluca,

la variabile di errore che utilizzi per la stampa del messaggio sarà sempre null perché recuperi il valore dall'array POST che non contiene nessuna chiave errore.

Una soluzione potrebbe essere di spostare il codice dell'if !$_POST['mailc'] prima del richiamo della variabile $errore.

Ciao

risposto 5 anni fa
zeta80
X 0 X

Ciao zeta80!

se non ho capito male tu mi hai detto di far cosi:

<?php
if(!$_POST['mailc']){
   $percorso = "  &gt; Inserisci un Mail per ricevere una risposta";
   $errore = "<p class=\"b\">Inserisci un Mail per ricevere una risposta</p>";
   }
else {
   $mailc = htmlspecialchars($_POST['mailc']);
   if(!$_POST['mess']) {
             $percorso="  &gt; Torna indietro ed inserisci il tuo messaggio";
                 $errore="<p class=\"b\">Torna indietro ed inserisci il tuo messaggio</p>";
             }
   else {
         $percorso="  &gt; Messaggio Inviato";
            $errore="<p class=\"b\">Messaggio Inviato</p>";
         $oggetto = htmlspecialchars($_POST['oggetto']);
                  $mess = htmlspecialchars($_POST['mess']);

         
         $destinatario ="annunciamonelweb@gmail.com";
                                             $oggetto ="$oggetto";
                                             $info="$oggetto
$mailc
$mess";
                                             mail ($destinatario, $oggetto, $info, "From:annunciamonelweb");
   }
   }
   $percorso = htmlspecialchars($_POST['percorso']);
   $errore = htmlspecialchars($_POST['errore']);
?>
<h2> Sei In: <a href="http://annunciamonelweb.altervista.org/index.html"> Home Page </a>  &gt; Contatta La Redazione Di Annunciamonelweb <?php echo "$percorso"; ?></h2>
</div>
<div id="menusx">
<script type="text/javascript">
//<![CDATA[
   document.write('<s'+'cript type=\"text/javascript\" src=\"http://ad.altervista.org/js.ad/size=120X600/r='+new Date().getTime()+'\"><\/s'+'cript>');
//]]>";
</script>
</div>
<div id="contenuti">
<br>
<?php echo "$errore"; ?>
<form enctype='multipart/form-data' action="" method="post">
<p class="dati">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Oggetto:
&nbsp;&nbsp;<select name="oggetto" method="multiple">
<option value="impossibile" selected>Impossibile Trovare l'annuncio
<option value="rimossi">Annunci rimossi
<option value="violazioni">Segnala violazioni in un annuncio
<option value="critiche">Critiche e suggerimenti
<option value="tecnici">Problemi tecnici
<option value="visualizzazione">Problemi di visualizzazione
<option value="caricamento">Problemi di caricamento delle pagine
<option value="copyright">Violazioni di Copyright
<option value="rispondere">Problemi a rispondere agli annunci
<option value="inserire">Problemi a inserire annunci
<option value="lavora">Lavora con noi
<option value="link">Scambio link
</select>
</p>
<p class="dati"> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Mail:
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="mailc" size="50"></p>
<p class="dati">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;Messaggio:
<textarea rows="10" cols="40" name="mess"></textarea></p>
<p> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<input type="submit" value="Invia"></p>
</div>
<div id="coda">

ma non funziona ancora non riesco a capire!

risposto 5 anni fa
gianluca80
X 0 X

Ciao gianluca80,

direi che l'errore sta in queste 2 righe:

$percorso = htmlspecialchars($_POST['percorso']);
$errore = htmlspecialchars($_POST['errore']);

perché assegni alle 2 variabili dei valori $_POST che non esistono. Togliendole tutto dovrebbe funzionare.

Ciao

Zeta

risposto 5 anni fa
zeta80
X 0 X

Ciao zeta80,

Ho provato a fare cosi:

<html>
<?php
   $percorso = htmlspecialchars($percorso);
   $errore = htmlspecialchars($errore);
?>
<h2> Sei In: <a href="http://annunciamonelweb.altervista.org/index.html"> Home Page </a>  &gt; Contatta La Redazione Di Annunciamonelweb <?php echo "$percorso"; ?></h2>
</div>
<div id="menusx">
<script type="text/javascript">
//<![CDATA[
   document.write('<s'+'cript type=\"text/javascript\" src=\"http://ad.altervista.org/js.ad/size=120X600/r='+new Date().getTime()+'\"><\/s'+'cript>');
//]]>";
</script>
</div>
<div id="contenuti">
<br>
<?php echo "$errore"; ?>
<form enctype='multipart/form-data' action="" method="post">
<p class="dati">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Oggetto:
&nbsp;&nbsp;<select name="oggetto" method="multiple">
<option value="impossibile" selected>Impossibile Trovare l'annuncio
<option value="rimossi">Annunci rimossi
<option value="violazioni">Segnala violazioni in un annuncio
<option value="critiche">Critiche e suggerimenti
<option value="tecnici">Problemi tecnici
<option value="visualizzazione">Problemi di visualizzazione
<option value="caricamento">Problemi di caricamento delle pagine
<option value="copyright">Violazioni di Copyright
<option value="rispondere">Problemi a rispondere agli annunci
<option value="inserire">Problemi a inserire annunci
<option value="lavora">Lavora con noi
<option value="link">Scambio link
</select>
</p>
<p class="dati"> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Mail:
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="mailc" size="50"></p>
<p class="dati">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;Messaggio:
<textarea rows="10" cols="40" name="mess"></textarea></p>
<p> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<input type="submit" value="Invia"></p>
<?php
if(!$_POST['mailc']){
   $percorso = "  &gt; Inserisci un Mail per ricevere una risposta";
   $errore = "<p class=\"b\">Inserisci un Mail per ricevere una risposta</p>";
   }
else {
   $mailc = htmlspecialchars($_POST['mailc']);
   if(!$_POST['mess']) {
             $percorso="  &gt; Torna indietro ed inserisci il tuo messaggio";
                 $errore="<p class=\"b\">Torna indietro ed inserisci il tuo messaggio</p>";
             }
   else {
         $percorso="  &gt; Messaggio Inviato";
            $errore="<p class=\"b\">Messaggio Inviato</p>";
         $oggetto = htmlspecialchars($_POST['oggetto']);
                  $mess = htmlspecialchars($_POST['mess']);

         
         $destinatario ="annunciamonelweb@gmail.com";
                                             $oggetto ="$oggetto";
                                             $info="$oggetto
$mailc
$mess";
                                             mail ($destinatario, $oggetto, $info, "From:annunciamonelweb");
   }
   }
?>
</div>
</html>

Ma niente, non funziona

Cosa non capisco?

risposto 5 anni fa
gianluca80
X 0 X

Ciao gianluca,

forse la mia spiegazione nell'ultimo post era poco chiara. Qui il codice completo:

<?php
if(!$_POST['mailc']){
   $percorso = "  &gt; Inserisci un Mail per ricevere una risposta";
   $errore = "<p class=\"b\">Inserisci un Mail per ricevere una risposta</p>";
   }
else {
   $mailc = htmlspecialchars($_POST['mailc']);
   if(!$_POST['mess']) {
             $percorso="  &gt; Torna indietro ed inserisci il tuo messaggio";
                 $errore="<p class=\"b\">Torna indietro ed inserisci il tuo messaggio</p>";
             }
   else {
         $percorso="  &gt; Messaggio Inviato";
            $errore="<p class=\"b\">Messaggio Inviato</p>";
         $oggetto = htmlspecialchars($_POST['oggetto']);
                  $mess = htmlspecialchars($_POST['mess']);

         
         $destinatario ="annunciamonelweb@gmail.com";
                                             $oggetto ="$oggetto";
                                             $info="$oggetto
$mailc
$mess";
                                             mail ($destinatario, $oggetto, $info, "From:annunciamonelweb");
   }
   }

?>
<h2> Sei In: <a href="http://annunciamonelweb.altervista.org/index.html"> Home Page </a>  &gt; Contatta La Redazione Di Annunciamonelweb <?php echo "$percorso"; ?></h2>
</div>
<div id="menusx">
<script type="text/javascript">
//<![CDATA[
   document.write('<s'+'cript type=\"text/javascript\" src=\"http://ad.altervista.org/js.ad/size=120X600/r='+new Date().getTime()+'\"><\/s'+'cript>');
//]]>";
</script>
</div>
<div id="contenuti">
<br>
<?php echo "$errore"; ?>
<form enctype='multipart/form-data' action="" method="post">
<p class="dati">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Oggetto:
&nbsp;&nbsp;<select name="oggetto" method="multiple">
<option value="impossibile" selected>Impossibile Trovare l'annuncio
<option value="rimossi">Annunci rimossi
<option value="violazioni">Segnala violazioni in un annuncio
<option value="critiche">Critiche e suggerimenti
<option value="tecnici">Problemi tecnici
<option value="visualizzazione">Problemi di visualizzazione
<option value="caricamento">Problemi di caricamento delle pagine
<option value="copyright">Violazioni di Copyright
<option value="rispondere">Problemi a rispondere agli annunci
<option value="inserire">Problemi a inserire annunci
<option value="lavora">Lavora con noi
<option value="link">Scambio link
</select>
</p>
<p class="dati"> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Mail:
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="mailc" size="50"></p>
<p class="dati">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;Messaggio:
<textarea rows="10" cols="40" name="mess"></textarea></p>
<p> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<input type="submit" value="Invia"></p>
</div>
<div id="coda">

Ciao

Zeta

risposto 5 anni fa
zeta80
X 0 X

Ciao zeta grazie della risposta immediata,

avevo già provato cosi funziona perfettamente..o quasi..perche quando il ci clicco la prima volta dal sito mi compare subito il messaggio di errore che manca la Mail, e non sarebbe giusto.

Grazie

risposto 5 anni fa
gianluca80
X 0 X

Ciao gianluca80,

è ovvio che ti compaia il messaggio di errore la prima volta che ci clicchi per questo motivo:

if(!$_POST['mailc']){
   $percorso = "  &gt; Inserisci un Mail per ricevere una risposta";
   $errore = "<p class=\"b\">Inserisci un Mail per ricevere una risposta</p>";
}

che devi sostituire con:

if(!$_POST['mailc']){
   $percorso = "  &gt; Inserisci un Mail per ricevere una risposta";
   $errore = "";
}

Ciao

Zeta

risposto 5 anni fa
zeta80
X 0 X

Scusa zeta non voglio fare il difficile ma se faccio come hai detto tu, quando mandano un messaggio senza indirizzo email non gli compare più il messaggio di errore e quindi a me non arriva il loro messaggio e loro pensano che il messaggio sia stato inviato.

 :bye: :bye:

risposto 5 anni fa
gianluca80
X 0 X

Ciao gianluca80,

prova questo:

if ($_POST['invia'])
  if(!$_POST['mailc']){
     $percorso = "  &gt; Inserisci un Mail per ricevere una risposta";
     $errore = "<p class=\"b\">Inserisci un Mail per ricevere una risposta</p>";
     }
  else {
     $mailc = htmlspecialchars($_POST['mailc']);
     if(!$_POST['mess']) {
               $percorso="  &gt; Torna indietro ed inserisci il tuo messaggio";
                   $errore="<p class=\"b\">Torna indietro ed inserisci il tuo messaggio</p>";
               }
     else {
           $percorso="  &gt; Messaggio Inviato";
              $errore="<p class=\"b\">Messaggio Inviato</p>";
           $oggetto = htmlspecialchars($_POST['oggetto']);
                    $mess = htmlspecialchars($_POST['mess']);
  
           
           $destinatario ="annunciamonelweb@gmail.com";
                                               $oggetto ="$oggetto";
                                               $info="$oggetto
  $mailc
  $mess";
                                               mail ($destinatario, $oggetto, $info, "From:annunciamonelweb");
     }
     }

?>
<h2> Sei In: <a href="http://annunciamonelweb.altervista.org/index.html"> Home Page </a>  &gt; Contatta La Redazione Di Annunciamonelweb <?php echo "$percorso"; ?></h2>
</div>
<div id="menusx">
<script type="text/javascript">
//<![CDATA[
   document.write('<s'+'cript type=\"text/javascript\" src=\"http://ad.altervista.org/js.ad/size=120X600/r='+new Date().getTime()+'\"><\/s'+'cript>');
//]]>";
</script>
</div>
<div id="contenuti">
<br>
<?php echo "$errore"; ?>
<form enctype='multipart/form-data' action="" method="post">
<p class="dati">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Oggetto:
&nbsp;&nbsp;<select name="oggetto" method="multiple">
<option value="impossibile" selected>Impossibile Trovare l'annuncio
<option value="rimossi">Annunci rimossi
<option value="violazioni">Segnala violazioni in un annuncio
<option value="critiche">Critiche e suggerimenti
<option value="tecnici">Problemi tecnici
<option value="visualizzazione">Problemi di visualizzazione
<option value="caricamento">Problemi di caricamento delle pagine
<option value="copyright">Violazioni di Copyright
<option value="rispondere">Problemi a rispondere agli annunci
<option value="inserire">Problemi a inserire annunci
<option value="lavora">Lavora con noi
<option value="link">Scambio link
</select>
</p>
<p class="dati"> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Mail:
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="mailc" size="50"></p>
<p class="dati">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;Messaggio:
<textarea rows="10" cols="40" name="mess"></textarea></p>
<p> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<input type="submit" name="invia" value="Invia"></p>
</div>
<div id="coda">

ciao

Zeta

risposto 5 anni fa
zeta80
X 0 X

Grazie Zeta!

Perfetto ed..astuto!!!

Ciao Ciao

risposto 5 anni fa
gianluca80
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda