+ Rispondi alla Discussione
Risultati da 1 a 3 di 3

Errore di reindirizzamento (?) in script formmail

Ultimo Messaggio di Alexandro il:
  1. #1
    Utente Premium L'avatar di Alexandro
    Data Registrazione
    Jan 2008
    Messaggi
    225

    Errore di reindirizzamento (?) in script formmail

    Ciao ragazzi!

    Ho trovato nel web uno script gratuito per creare un formmail, costituito da 2 file: send.php e contatti.fdt, più il codice html del form, editato da me per l'aggiunta di nuovi campi. Il problema è che, all'invio dei dati, invece di funzionare, l'utente viene indirizzato alla pagina send.php e chiaramente io non ricevo nulla per email.

    Vi riporto i codici dei tre file:

    send.php

    Codice:
    <?php
    
    /***  Settaggio variabili globali PHP/4.1.2  ***/
    if (!isset($_SERVER)) {$_SERVER = $HTTP_SERVER_VARS;}
    if (!isset($_GET)) {$_GET = $HTTP_GET_VARS;}
    if (!isset($_POST)) {$_POST = $HTTP_POST_VARS;}
    if (!isset($_COOKIE)) {$_COOKIE = $HTTP_COOKIE_VARS;}
    if (!isset($_FILES)) {$_FILES = $HTTP_POST_FILES;}
    if (!isset($_ENV)) {$_ENV = $HTTP_ENV_VARS;}
    if (!isset($_SESSION)) {$_SESSION = $HTTP_SERVER_VARS;}
    
    /***  Impostazione dei messaggi di errore (solo per testing)  ***/
    error_reporting(0);
    
    /***  Lettura del template  ***/
    $template_code = implode("",file($_POST['template_file']));
    
    /***  Sostituzione dei valori  ***/
    $parsed = preg_replace('/(<!-- )(\w+)( -->)/e', '$_POST[\'$2\']', $template_code);
    
    /***  Lettura dei valori  ***/
    $splitted = explode("#-#-#-#",$parsed);
    $vars = array(
    "from_name" => trim($splitted[0]),
    "from_mail" => trim($splitted[1]),
    "to_name" => trim($splitted[2]),
    "to_mail" => trim($splitted[3]),
    "reply_name" => trim($splitted[4]),
    "reply_mail" => trim($splitted[5]),
    "subject" => trim($splitted[6]),
    "body" => $splitted[7],
    "sent" => $splitted[8]
    );
    
    /***  Controllo dei campi  ***/
    if (($vars['from_name'] == "") || ($vars['from_mail'] == "") || ($vars['to_name'] == "") || ($vars['to_mail'] == "") || ($vars['reply_name'] == "") || ($vars['reply_mail'] == "") || ($vars['subject'] == "") || ($vars['body'] == "")) {exit();}
    
    /***  Scrittura degli headers SMTP  ***/
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
    $headers .= "Content-Transfer-Encoding: 8bit\r\n";
    $headers .= "From: \"".$vars['from_name']."\" <".$vars['from_mail'].">\r\n";
    $headers .= "To: \"".$vars['to_name']."\" <".$vars['to_mail'].">\r\n";
    $headers .= "Reply-To: \"".$vars['reply_name']."\" <".$vars['reply_mail'].">\r\n";
    $headers .= "X-Mailer: Scitrek PHP Mailer";
    
    /***  Invio della mail e operazioni successive  ***/
    if (mail($vars['to_mail'],$vars['subject'],$vars['body'],$headers)) {
        if (stristr($vars['sent'],"goto=")) {
    
            $goto = str_replace("goto=","",trim($vars['sent']));
    
            header("Location: ".$goto);
    
        }
    
        else {echo $vars['sent'];}
    }
    
    ?>
    contatti.fdt

    Codice:
    <!-- nome -->
    #-#-#-#
    <!-- mail -->
    #-#-#-#
    Qui ho scritto il nome del mio sito
    #-#-#-#
    Qui ho scritto la mia email
    #-#-#-#
    Recensioni
    #-#-#-#
    qui ho riscritto la mia email
    #-#-#-#
    Al caro <!-- nome -->
    #-#-#-#
    Ciao <!-- nome -->, benvenuto! Questo messaggio e' stato inviato a <!-- mail -->.
    #-#-#-#
    Correttamente inviato a qui ho scritto il mio nome
    codice form

    Codice:
    <form name="recensioni" action="send.php" method="post">
    <input type="hidden" name="template_file" value="contatti.fdt"></input>
    Richiedi recensione<input type="radio" name="richiedi/invia" value="richiedi"></input>
    Invia recensione<input type="radio" name="richiedi/invia" value="invia"></input>
    <br><br>
    La tua richiesta/recensione riguarda <select name="tipologia">
    <option value="categoria1" selected="selected">categoria1</option>
    <option value="categoria2">categoria2</option>
    <option value="categoria3">categoria3</option>
    <option value="categoria4">categoria4</option>
    <option value="altro">Altro</option>
    </select>
    <br><br>
    La tua mail <input name="mail" type="text" value="scrivi una mail reale" maxlength="200"></input>
    <br><br>
    Il tuo nome <input name="nome" type="text" value="nome e cognome" maxlength="200"></input>
    <br><br>
    Oggetto <input name="oggetto" type="text" value="scrivi un titolo" maxlength="200"></input>
    <br><br>
    SCRIVI RECENSIONE:
    <br>
    <textarea rows="12" name="recensione" cols="61"></textarea>
    <br><br>
    Accetti  di assumerti tutta la responsabilità dei contenuti da te inviati
    <br>
    SI <input type="radio" name="accetto/declino" value="si"></input>
    NO<input type="radio" name="accetto/declino" value="no"></input>
    <br>
    <input type="submit" value="Invia" name="invia"></input>
    <input type="reset" value="Reimposta" name="reimposta"></input>
    </form>
    Se può essere utile posto il codice del form originale che ho trovato nella cartella scaricata.
    Non ho idea di quale possa essere il problema; i file stanno tutti nella stessa directory e i codici che ho postato sono identici a quelli che ho uppato (tranne le scritte in blu ovviamente).

    Grazie per gli eventuali consigli!
    A presto

  2. #2
    Utente Premium L'avatar di InuYaksa
    Data Registrazione
    Oct 2006
    Messaggi
    119
    Quando all'invio del form ti porta alla pagina send.php, viene visualizzata una pagina bianca oppure il codice php? Nel primo caso è probabile che si sia verificato un errore, ma la clausola error_reporting(0) dice a PHP di non visualizzare nulla. Per far visualizzare sempre tutti gli errori devi mettere error_reporting(E_ALL) Se invece al send vendi il codice php significa che il server non supporta PHP.

  3. #3
    Utente Premium L'avatar di Alexandro
    Data Registrazione
    Jan 2008
    Messaggi
    225
    Ciao Inu

    Grazie della risposta. La pagina alla quale mi indirizzava (send.php) era bianca. Comunque mentre aspettavo una risposta, ho girato un po sul forum ed ho scoperto due cose sensazionali:

    1. Qui sono presenti guide per creare funzioni in php davvero utili e facili da installare, talmente comode che ho buttato via quello script per usarne uno trovato qui.

    2. Ho compreso il valore della funzione "cerca" all'interno del forum adesso!

    Inoltre, mentre editavo il codice (la guida alla quale mi riferisco è questa giorgiotave.it/forum/php-mysql/58047-esempio-gestione-di-un-form-mail-semplice.html) ho imparato nuove cose su questo linguaggio.

    Comunque mi piacerebbe capire ugualmente dov'era l'errore, perchè rileggendo i codici postati non riesco a capire dove sbagliavo.

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.