Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Pagina Errore Personalizzata non funziona su Aruba Windows

    non mi è mai capitata una cosa simile...
    allora praticamente quando un messaggio viene inviato correttamente tramite heder(location) reindirizzo ad una pagina "contact_mailer.php" dove tramite $_get e $_server['http_referer'] controllo la provenienza in modo che se un uente vada direttamente in questa pagina visualizza un messaggio diverso..ovviamente in locale va una meraviglia ma su aruba il messaggio viene inviato per mail, viene inserito nel db ma invece di andare alla pagina "contact_mailer.php" ricarica la stessa pagina "contatti.php" troncata.. evidentemente da qualche errore ma che non me lo visualizza nell'output...
    può essere perchè aruba usa php 4 e non il 5? cosa cambia dal 4 al 5 i miei script?

    ecco il codice della pagina "contact_mailer"
    Codice PHP:
    <?php header("Cache-Control: Private");
    include(
    "ls/gzip/init_gzip.php");
    $arrayRes = array();
    if(isset(
    $_GET['result']) && isset($_SERVER['HTTP_REFERER'])) {
        if(
    $_GET['result']=="info-err-db" && (stripos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME']) === false)) {
            
    $title 'ERRORE INVIO DEL MESSAGGIO';
            
    $mess '[img]img/generale/no.gif[/img]
    [b]Il messaggio non &egrave; stato inviato correttamente![/b]
    Fra qualche secondo verrai reindirizzato alla pagina precedente per reinviare il messaggio.
    ( [url="javascript:history.back(-1)"]Se non vieni reindirizzato clicca qu&igrave;[/url] oppure clicca sul tasto "TORNA INDIETRO" del tuo Browser. )'
    ;
            
    $redirect 'javascript:history.back(-1);';
            
    $arrayRes[] = $title;
            
    $arrayRes[] = $mess;
            
    $arrayRes[] = $redirect;
        } elseif(
    $_GET['result']=="info-err-mail" && (stripos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME']) === false)) {
            
    $title 'ERRORE INVIO DEL MESSAGGIO';
            
    $mess '[img]img/generale/no.gif[/img]
    [b]Il messaggio non &egrave; stato inviato correttamente![/b]
    Fra qualche secondo verrai reindirizzato alla pagina precedente per reinviare il messaggio.
    ( [url="javascript:history.back(-1)"]Se non vieni reindirizzato clicca qu&igrave;[/url] oppure clicca sul tasto "TORNA INDIETRO" del tuo Browser. )'
    ;
            
    $redirect 'javascript:history.back(-1);';
            
    $arrayRes[] = $title;
            
    $arrayRes[] = $mess;
            
    $arrayRes[] = $redirect;
        } else {
            
    $title 'MESSAGGIO INVIATO CORRETTAMENTE';
            
    $mess '[img]img/generale/ok.gif[/img]
    [b]Il messaggio &egrave; stato inviato correttamente![/b]
    Fra qualche secondo verrai reindirizzato alla HomPage del sito.
    ( [url="index.php"]Se non vuoi aspettare clicca qu&igrave;[/url] )'
    ;
            
    $redirect 'index.php';
            
    $arrayRes[] = $title;
            
    $arrayRes[] = $mess;
            
    $arrayRes[] = $redirect;
        }
    } else {
        
    $title 'ERRORE';
        
    $mess '[img]img/generale/no.gif[/img]

    [b]Non dovresti visualizzare questa pagina...[/b]'
    ;
        
    $redirect 'index.php';
        
    $arrayRes[] = $title;
        
    $arrayRes[] = $mess;
        
    $arrayRes[] = $redirect;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>SITO - <?php echo $arrayRes[0]; ?></title>
    <meta name="Title" content="SITO - <?php echo $arrayRes[0]; ?>" />
    <style type="text/css">
    a.mail_ass:link,a.mail_ass:visited,a.mail_ass:active { text-decoration: none; color: #11315A; }
    a.mail_ass:hover { text-decoration: underline; color: #FF0000; }
    </style>
    </head>
    <body style="background-color: #CCCCCC; color: #415463; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif">
    <div>
        <div style="padding: 5px; border: 1px solid #415463; text-align: center; margin: 0 auto; background-color: #F2F3F4; width: 500px; height: 130px">
            <?php echo $arrayRes[1]; header('Refresh: 5; url='.$arrayRes[2]); ?>
        </div>
    </div>
    </body>
    </html>
    <?php include("ls/gzip/close_gzip.php"); ?>
    ovviamente con "init_gzip.php" inizializzo l'output buffering.


    questo invece è il codice di controllo sulla pagina "contatti.php"
    Codice PHP:
    $date getdate();
    $data $date['mday'].'/'.$date['mon'].'/'.$date['year'];

    if(
    $date['minutes']<10) {
        
    $minuti '0'.$date['minutes'];
    } else {
        
    $minuti $date['minutes'];
    }

    if(
    $date['hours']<10) {
        
    $ore '0'.$date['hours'];
    } else {
        
    $ore $date['hours'];
    }

    $ora $ore.':'.$minuti;

    //filtri
    include("ls/filtri/filtri.php");

    //inizializzo tutti gli errori FALSE
    $testoErr FALSE;
    $nomeErr FALSE;
    $cognomeErr FALSE;
    $telefonoErr FALSE;
    $emailErr FALSE;

    $arrayErr = array();

    if(isset(
    $_POST['submit'])) {

        
    /*carico variabili da POST*/
        
    $nome strip_tags($_POST['nome']);
        
    $cognome strip_tags($_POST['cognome']);
        
    $telefono $_POST['telefono'];
        
    $email strip_tags($_POST['email']);
        
    $testo nl2br(htmlspecialchars($_POST['testo'],ENT_NOQUOTES));
        
        if(
    $nome != "") {
            if(
    controllaStringaUguale($nome)) {
                
    $nomeErr TRUE;
                
    $err1 "Il \"Nome\" che hai inserito contiene solo caratteri uguali.
    "
    ;
                
    $arrayErr[] = $err1;
            }
        }
        
        if(
    $nome != "") {
            if(
    isBadwords($nome)) {
                
    $nomeErr TRUE;
                
    $err2 "Il \"Nome\" che hai inserito contiene parole non consentite (es. hai inserito delle parolacce).
    "
    ;
                
    $arrayErr[] = $err2;
            }
        }
        
        if(
    $nome != "") {
            if(
    strlen($nome) < 2) {
                
    $nomeErr TRUE;
                
    $err3 "Hai inserito un \"Nome\" inferiore ai 2 caratteri.
    "
    ;
                
    $arrayErr[] = $err3;
            }
        }
        
        if(
    $nome != "") {
            if(
    strpos($nome,"0") != FALSE || strpos($nome,"1") != FALSE || strpos($nome,"2") != FALSE || strpos($nome,"3") != FALSE || strpos($nome,"4") != FALSE || strpos($nome,"5") != FALSE || strpos($nome,"6") != FALSE || strpos($nome,"7") != FALSE || strpos($nome,"8") != FALSE || strpos($nome,"9") != FALSE) {
                
    $nomeErr TRUE;
                
    $err4 "Il campo \"Nome\" non pu&ograve; contenere valori NUMERICI.
    "
    ;
                
    $arrayErr[] = $err4;
            }
        }
        
        if(
    $cognome != "") {
            if(
    controllaStringaUguale($cognome)) {
                
    $cognomeErr TRUE;
                
    $err5 "Il \"Cognome\" che hai inserito contiene solo caratteri uguali.
    "
    ;
                
    $arrayErr[] = $err5;
            }
        }
        
        if(
    $cognome != "") {
            if(
    isBadwords($cognome)) {
                
    $cognomeErr TRUE;
                
    $err6 "Il \"Testo\" che hai inserito contiene parole non consentite (es. hai inserito delle parolacce).
    "
    ;
                
    $arrayErr[] = $err6;
            }
        }
        
        if(
    $cognome != "") {
            if(
    strlen($cognome) < 2) {
                
    $cognomeErr TRUE;
                
    $err7 "Hai inserito un \"Cognome\" inferiore ai 2 caratteri.
    "
    ;
                
    $arrayErr[] = $err7;
            }
        }

        if(
    $cognome != "") {
            if(
    strpos($cognome,"0") != FALSE || strpos($cognome,"1") != FALSE || strpos($cognome,"2") != FALSE || strpos($cognome,"3") != FALSE || strpos($cognome,"4") != FALSE || strpos($cognome,"5") != FALSE || strpos($cognome,"6") != FALSE || strpos($cognome,"7") != FALSE || strpos($cognome,"8") != FALSE || strpos($cognome,"9") != FALSE) {
                
    $cognomeErr TRUE;
                
    $err8 "Il campo \"Cognome\" non pu&ograve; contenere valori NUMERICI.
    "
    ;
                
    $arrayErr[] = $err8;
            }
        }
        
        if(
    $nome != "" && $cognome != "") {
            if(
    $nome == $cognome) {
                
    $nomeErr TRUE;
                
    $cognomeErr TRUE;
                
    $err9 "Il campo \"Nome\" risulta essere uguale al campo \"Cognome\".
    "
    ;
                
    $arrayErr[] = $err9;
            }
        }

        if(
    $telefono != '') {
            if(
    is_numeric(trim($telefono)) == FALSE) {
                
    $telefonoErr TRUE;
                
    $err10 "Il campo \"Telefono\" pu&ograve; contenere solamente caratteri NUMERICI.
    "
    ;
                
    $arrayErr[] = $err10;
            }
        }
        
        if(
    $telefono != "") {
            if(
    strlen($telefono) < 5) {
                
    $telefonoErr TRUE;
                
    $err11 "Hai inserito un numero di \"Telefono\" troppo breve. (almeno 5 numeri)
    "
    ;
                
    $arrayErr[] = $err11;
            }
        }
        
        if(
    $telefono != "") {
            if(
    is_numeric($telefono)) {
                if(
    controllaStringaUguale($telefono)) {
                    
    $telefonoErr TRUE;
                    
    $err12 "Il numero di \"Telefono\" che hai inserito contiene solo numeri uguali.
    "
    ;
                    
    $arrayErr[] = $err12;
                }
            }
        }

        if(
    $email != "") {
            if(!
    ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$",$email)) {
                
    $emailErr TRUE;
                
    $err13 "Non hai scritto correttamente il tuo indirizzo \"E-mail\".
    "
    ;
                
    $arrayErr[] = $err13;
            }
        }
        
        if(
    $email == "") {
            
    $emailErr TRUE;
            
    $err14 "Hai lasciato vuoto il campo \"E-mail\".
    "
    ;
            
    $arrayErr[] = $err14;
        }
        
        if(
    controllaStringaUguale($testo)) {
            
    $testoErr TRUE;
            
    $err15 "Il Testo che hai immsesso contiene solo caratteri uguali.
    "
    ;
            
    $arrayErr[] = $err15;
        }
        
        if(
    isBadwords($testo)) {
            
    $testoErr TRUE;
            
    $err16 "Il \"Testo\" che hai immesso contiene parole non consentite (es. hai inserito delle parolacce).
    "
    ;
            
    $arrayErr[] = $err16;
        }
        
        if(
    $testo == "") {
            
    $testoErr TRUE;
            
    $err17 "Hai lasciato vuoto il campo \"Testo\".
    "
    ;
            
    $arrayErr[] = $err17;
        }
        
        if (
    count($arrayErr) != 0) {
            echo 
    '[img]img/iconcine/err_write.gif[/img]<font style="color: #FF0000; font-weight: bold">Il Messaggio non &egrave; stato inviato perch&egrave; hai commesso i seguenti errori:

    '
    ;
            for(
    $i=0$i<count($arrayErr); $i++) {
                echo 
    '- '.$arrayErr[$i];
            }
            echo 
    '</font>
    '
    ;
        } else {
            if(
    $telefono == '') {
                
    $ins_q "INSERT INTO contatti(data,ora,nome,cognome,email,testo) VALUES('$data','$ora','$nome','$cognome','$email','$testo')";
            } else {
                
    $ins_q "INSERT INTO contatti(data,ora,nome,cognome,telefono,email,testo) VALUES('$data','$ora','$nome','$cognome','$telefono','$email','$testo')";
            }
            include(
    "ls/conn/conn.php");
            
    $conn connetti();
            
    $q mysql_query($ins_q);
            if(
    $q != FALSE) {
                
    disconnetti($conn);
                
    $to "info@sito.org";
                
    $headers "MIME-Version: 1.0\r\n";
                
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
                
    $headers .= "From: [email]info@SITO.org[/email]";
                include(
    "ls/contatti/corpo_mail.php");
                if (
    mail($to,"Richiesta Info - SITO",$corpo,$headers)) {
                    
    header("location: contact_mailer.php?result=info-mail-ok");
                    exit;
                } else {
                    
    header("location: contact_mailer.php?result=info-err-mail");
                    exit;
                }
            } else {
                
    disconnetti($conn);
                
    header("location: contact_mailer.php?result=info-err-db");
                exit;
            }
        }
    }
    ?> 

    spero troviate il motivo del problema e se ho commesso io qualche errore...grazie..
    Per una battaglia sono sempre a disposizione

  2. #2
    invece di usare stripos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME']) === false ho provato anche ad usare direttamente l'url per intero $_SERVER['HTTP_REFERER']=="http://www.sito.it/pagina.php" ma niente...
    Per una battaglia sono sempre a disposizione

  3. #3
    nada?

    almeno secondo voi ho commesso errori negli script?
    Per una battaglia sono sempre a disposizione

  4. #4
    uppete...
    Per una battaglia sono sempre a disposizione

  5. #5
    riformulo meglio il tutto.. tanto sto sbroccando da du ore...

    nella pagina contatti.php ho questo form:
    Codice PHP:
    <?php header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  // disable IE caching
    header("Last-Modified: ".gmdate"D, d M Y H:i:s")." GMT"); 
    header("Cache-Control: no-cache, must-revalidate"); 
    header("Cache-Control: Private");
    header("Pragma: no-cache");
    include(
    "ls/gzip/init_gzip.php");       //output buffering
    include("ls/data/date.php");           
    ?>
    bla bla bla bla resto pagina
    <?php
    [B]include("ls/contatti/gen_mail.php");[/B?>         //script che controlla il form
                            
                                         
                            <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="form_contatti" id="form_contatti">
                                <div class="cont_campi"><div class="nome_campo"><?php if($nomeErr) { echo '<font style="color: #FF0000; font-weight: bold">Nome:</font>'; } else { echo 'Nome:'; } ?></div><div class="input_campo"><input type="text" name="nome" class="text_inp" <?php if(isset($_POST['nome'])) { echo 'value="'.$_POST['nome'].'"'; } else { echo 'value=""'; } ?> /></div><div class="salvafloat"></div></div>
                                <div class="cont_campi"><div class="nome_campo"><?php if($cognomeErr) { echo '<font style="color: #FF0000; font-weight: bold">Cognome:</font>'; } else { echo 'Cognome:'; } ?></div><div class="input_campo"><input type="text" name="cognome" class="text_inp" <?php if(isset($_POST['cognome'])) { echo 'value="'.$_POST['cognome'].'"'; } else { echo 'value=""'; } ?> /></div><div class="salvafloat"></div></div>
                                <div class="cont_campi"><div class="nome_campo"><?php if($telefonoErr) { echo '<font style="color: #FF0000; font-weight: bold">Telefono:</font>'; } else { echo 'Telefono:'; } ?></div><div class="input_campo"><input type="text" name="telefono" class="text_inp" <?php if(isset($_POST['telefono'])) { echo 'value="'.$_POST['telefono'].'"'; } else { echo 'value=""'; } ?> /> (solo numeri senza spazi)</div><div class="salvafloat"></div></div>
                                <div class="cont_campi"><div class="nome_campo"><?php if($emailErr) { echo '<font style="color: #FF0000; font-weight: bold">* E-mail:</font>'; } else { echo '* E-mail:'; } ?></div><div class="input_campo"><input type="text" name="email" class="text_inp" <?php if(isset($_POST['email'])) { echo 'value="'.$_POST['email'].'"'; } else { echo 'value=""'; } ?> /></div><div class="salvafloat"></div></div>
                                <div class="cont_campi"><div class="nome_campo"><?php if($testoErr) { echo '<font style="color: #FF0000; font-weight: bold">* Testo:</font>'; } else { echo '* Testo:'; } ?></div><div class="input_campo"><textarea class="textarea_inp" cols="50" rows="10" name="testo"><?php if(isset($_POST['testo'])) { echo $_POST['testo']; } else { echo ''; } ?></textarea></div><div class="salvafloat"></div></div>
                                <button type="reset" name="reset" onfocus="this.blur()" title="CANCELLA" class="but_reset">Cancella</button><button type="submit" name="submit" onfocus="this.blur()" title="INVIA" class="but_invia">Invia</button>
                            </form>
    bla bla bla bla resto pagina
    <?php
    include("ls/gzip/close_gzip.php");
    ?>

    include("ls/contatti/gen_mail.php"); questo controlla il form:
    Codice PHP:
    <?php

    //bla bla bla vari controlli che non posto
        
        
    if (count($arrayErr) != 0) {
            echo 
    '[img]img/iconcine/err_write.gif[/img]<font style="color: #FF0000; font-weight: bold">Il Messaggio non &egrave; stato inviato perch&egrave; hai commesso i seguenti errori:

    '
    ;
            for(
    $i=0$i<count($arrayErr); $i++) {
                echo 
    '- '.$arrayErr[$i];
            }
            echo 
    '</font>
    '
    ;
        } else {
            if(
    $telefono == '') {
                
    $ins_q "INSERT INTO contatti(data,ora,nome,cognome,email,testo) VALUES('$data','$ora','$nome','$cognome','$email','$testo')";
            } else {
                
    $ins_q "INSERT INTO contatti(data,ora,nome,cognome,telefono,email,testo) VALUES('$data','$ora','$nome','$cognome','$telefono','$email','$testo')";
            }
            include(
    "ls/conn/conn.php");
            
    $conn connetti();
            
    $q mysql_query($ins_q);
            if(
    $q != FALSE) {
                
    disconnetti($conn);
                
    $to "info@sito.org";
                
    $headers "MIME-Version: 1.0\r\n";
                
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
                
    $headers .= "From: [email]info@SITO.org[/email]";
                include(
    "ls/contatti/corpo_mail.php");   l
                
    if (mail($to,"Richiesta Info - SITO",$corpo,$headers)) {
                    
    header("location: contact_mailer.php?result=info-mail-ok");
                    exit;
                } else {
                    
    header("location: contact_mailer.php?result=info-err-mail");
                    exit;
                }
            } else {
                
    disconnetti($conn);
                
    header("location: contact_mailer.php?result=info-err-db");
                exit;
            }
        }
    }
    ?>
    pagina contact_mailer.php che ho rimodificato e che sempre in locale funzia e online su Aruba no...
    Codice PHP:
    <?php header("Cache-Control: Private");
    include(
    "ls/gzip/init_gzip.php");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    bla bla bla resto pagina
    <div>
        <div style="padding: 5px; border: 1px solid #415463; text-align: center; margin: 0 auto; background-color: #F2F3F4; width: 500px; height: 130px">
            <?php if(isset($_GET['result']) && isset($_SERVER['HTTP_REFERER'])) {
        if(
    $_GET['result']=="info-err-db" && $_SERVER['HTTP_REFERER']=="http://www.sito.org/contatti.php") {
                 echo 
    '[img]img/generale/no.gif[/img]
    [b]Il messaggio non &egrave; stato inviato correttamente![/b]
    Fra qualche secondo verrai reindirizzato alla pagina precedente per reinviare il messaggio.
    ( [url="javascript:history.back(-1)"]Se non vieni reindirizzato clicca qu&igrave;[/url] oppure clicca sul tasto "TORNA INDIETRO" del tuo Browser. )'
    ;
            
    header('Refresh: 5; url=javascript:history.back(-1);');
        } elseif(
    $_GET['result']=="info-err-mail" && $_SERVER['HTTP_REFERER']=="http://www.sito.org/contatti.php") {
            echo 
    '[img]img/generale/no.gif[/img]
    [b]Il messaggio non &egrave; stato inviato correttamente![/b]
    Fra qualche secondo verrai reindirizzato alla pagina precedente per reinviare il messaggio.
    ( [url="javascript:history.back(-1)"]Se non vieni reindirizzato clicca qu&igrave;[/url] oppure clicca sul tasto "TORNA INDIETRO" del tuo Browser. )'
    ;
            
    header('Refresh: 5; url=javascript:history.back(-1);');
        } else {
                 echo 
    '[img]img/generale/ok.gif[/img]
    [b]Il messaggio &egrave; stato inviato correttamente![/b]
    Fra qualche secondo verrai reindirizzato alla HomPage del sito.
    ( [url="index.php"]Se non vuoi aspettare clicca qu&igrave;[/url] )'
    ;
            
    header('Refresh: 5; url=index.php');
        }
    } else {
               echo 
    '[img]img/generale/no.gif[/img]

    [b]Non dovresti visualizzare questa pagina...[/b]'
    ;
        
    header('Location: index.php');
    }
             
    ?>
        </div>
    </div>
    </body>
    </html>
    <?php include("ls/gzip/close_gzip.php"); ?>
    praticamente uno volta cliccato "INVIA", online, invece di andare alla pagina "contact_mailer.php" tramite questa istruzione header("location: contact_mailer.php?result=info-mail-ok"); ricarica la pagina corrente "contatti.php" troncata, come se si fosse verificato un errore prima di questa istruzione "include("ls/contatti/gen_mail.php");" nella pagina "contatti"......però nel frattempo ha sia inviato la mail che inserito i dati nel DB... non so + che pesci pigliare....
    Il fatto che non mi da errore potrebbe essere che il php.ini di aruba è settato per non visualizzarlo per un fatto di sicurezza e son d'accordo...però così non riesco a venirne a capo..
    Se gli errori sono settati per non essere visualizzati, usando le funzioni tipo set_error_handler() risucirei a visualizzarle?


    HELP PLEASE...
    Per una battaglia sono sempre a disposizione

  6. #6
    anche se non frega a nessuno inserendo "error_reporting(E_ALL)" ho trovato l'errore nascosto...Warning: Cannot modify header information - headers already sent by (output started at D:\Inetpub\webs\sito\ls\gzip\init_gzip.php:4) in D:\Inetpub\webs\sito\ls\contatti\gen_mail.php on line 195....

    il solito errore header already sent...peròquello che vorrei sapere , usando l'output buffering nonsi evitava questo errore?
    Per una battaglia sono sempre a disposizione

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.