Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Form Mail con redirect

  1. #1

    Form Mail con redirect

    Ciao ragazzi, vorrei personalizzare uno script php di una form mail, nel senso che quando premo invio messaggio, invece di visualizzare la pagina "contattaci.php" con il messaggio "MESSAGGIO INVIATO CON SUCCESSO", vorrei che mi apra la pagina "messaggio inviato.html"
    è possibile?
    vi posto lo script nella pagina html e quello nella pagina php

    HTML


    codice:
    <body>
    <form action="contattaci.php" method="post" name="mail" id="mail">
    <table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td class="center">Inserisci l'indirizzo presso il quale ricontattarti * </td>
    </tr>
    <tr>
    <td><div align="center">
    <input name="indirizzo" type="text" id="indirizzo" size="40" maxlength="60">
    </div></td>
    </tr>
    <tr>
    <td></td>
    </tr>
    <tr>
    <td class="center">Oggetto del messaggio:</td>
    </tr>
    <tr>
    <td><div align="center">
    <select name="oggetto" id="oggetto">
    <option value="informazioni">Informazioni</option>
    <option value="pubblicita">Pubblicit&agrave; </option>
    <option value="scambio_link">Scambio link</option>
    <option value="segnalazione_errore">Segnalazione errori</option>
    </select>
    </div></td>
    </tr>
    <tr>
    <td></td>
    </tr>
    <tr>
    <td class="center">Corpo del messaggio: </td>
    </tr>
    <tr>
    <td><div align="center">
    <textarea name="corpo" cols="40" rows="7" id="corpo"></textarea>
    </div></td>
    </tr>
    <tr>
    <td><div align="center">
    <input type="submit" name="Submit" value="Invia">
    <input type="reset" name="Submit2" value="Pulisci">
    </div></td>
    </tr>
    </table>
    </form>
    PHP

    codice:
    <?php
    //dichiaro la variabile 'modulo'
    $modulo = @$_POST['oggetto'];
    
    //Effettuo lo switch sulla variabile 'modulo'
    switch($modulo) 
    { 
    
    //caso 'informazioni'
    case 'informazioni': 
    $mail_mittente = $_POST['indirizzo'];
    $mail_destinatario = "info@dominio.it";
    $mail_oggetto = $_POST['oggetto'];
    $mail_corpo = $_POST['corpo'];
    
    if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente"))
    {
    echo "Messaggio inviato con successo al destinatario";
    }
    else
    {
    echo "Errore... Nessun messaggio inviato.";
    }
    
    break; 
    
    //caso 'pubblicità'
    case 'pubblicita': 
    $mail_mittente = $_POST['indirizzo'];
    $mail_destinatario = "pubblicita@dominio.it";
    $mail_oggetto = $_POST['oggetto'];
    $mail_corpo = $_POST['corpo'];
    
    if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente"))
    {
    echo "Messaggio inviato con successo al destinatario";
    }
    else
    {
    echo "Errore... Nessun messaggio inviato.";
    }
    
    break; 
    
    //caso 'scambio link' 
    case 'scambio_link': 
    $mail_mittente = $_POST['indirizzo'];
    $mail_destinatario = "scambiolink@dominio.it";
    $mail_oggetto = $_POST['oggetto'];
    $mail_corpo = $_POST['corpo'];
    
    if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente"))
    {
    echo "Messaggio inviato con successo al destinatario";
    }
    else
    {
    echo "Errore... Nessun messaggio inviato.";
    }
    
    break;
    
    //caso 'segnalazione errori'
    case 'segnalazione_errore': 
    $mail_mittente = $_POST['indirizzo'];
    $mail_destinatario = "errori@dominio.it";
    $mail_oggetto = $_POST['oggetto'];
    $mail_corpo = $_POST['corpo'];
    
    if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente"))
    {
    echo "Messaggio inviato con successo al destinatario";
    }
    else
    {
    echo "Errore... Nessun messaggio inviato.";
    }
    
    break; 
    
    //caso 'default'
    default: 
    include("index.php");
    break; 
    } 
    ?>

    Grazie comunque ciao!
    GOOD LIFE***

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    invece dei vari echo "Messaggio inviato con successo al destinatario";

    fai stampare un meta refresh (o un javascript) che fa il redirect

  3. #3
    e come si fa? nn conosco niente di php!
    GOOD LIFE***

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    echo "<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=http://www.tuosito.xx/pagina.html\">";

  5. #5
    in pratica devo sostituire questo:
    codice:
    {
    echo "Messaggio inviato con successo al destinatario";
    }
    con questo?
    codice:
    echo "<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=http://www.tuosito.xx/pagina.html\">";
    un'ultima domanda, a cosa serve la parte finale del codice

    codice:
    //caso 'default'
    default: 
    include("index.php");
    break; 
    } 
    ?>
    in quale situazione rimanda alla pagina index.php
    GOOD LIFE***

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    si, devi sostituire in quel modo.

    default:
    include("index.php");
    vuol dire che, indipendentemente dal valore assunto da $_POST['oggetto'], lo script includerà la pagina index.php, quindi sempre.

  7. #7
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Veramente mettendo i break alla fine di ogni case, il codice in default verrà eseguito se e solo se la variabile $modulo non assume nessun valore indicato nei case.

  8. #8
    grazie Meganoide funziona alla grande!!!
    Grazie ciao
    GOOD LIFE***

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.