Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    159

    form php segnala ad un amico

    Ciao ho trovato in rete un esempio che invia un messaggio per segnalare un sito ad un amico.
    lo script è suddiviso in due pagine, la prima è quella che contiene il form e manda alla pagina refer.php per l'invio.
    Il problema che ho è che se collego un foglio css alla pagina refer.php, questo non mi reindirizza più alla pagina voluta (funzione $thankspage).
    Allego lo script

    <link href="contatti.css" rel="stylesheet" type="text/css" />
    <?php

    $site_name="www.nipphon.com";

    $text="Ti segnalo questo sito $site_name";

    $title="Un tuo amico ti segnala un sito $sendername";

    $thankspage="http://www.nipphon.com/grazie.php";



    $x1 = ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$senderemail);
    if($x1==0)

    {
    echo "<div align=center>Inserisci un indirizzo email valido.
    <a href=javascript:history.back(-1)>Ritorna al form</a>.</div>";
    exit;
    }

    if ($email<>"") {
    $x2 = ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email);
    if($x2==0)

    {
    echo "<div align=center>!!ERRORE!!
    Il primo indirizzo email inserito non è valido.
    <a href=javascript:history.back(-1)>Ritorna al form</a>.</div>";
    }
    }

    if ($email2<>"")
    {
    $x3 = ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email2);
    if($x3==0)

    {
    echo "<div align=center>!!ERRORE!!
    Il secondo indirizzo email inserito non è valido.
    <a href=javascript:history.back(-1)>Ritorna al form</a>.</div>";
    }
    }

    if ($email3<>"")
    {
    $x4 = ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email3);
    if($x4==0)

    {
    echo "<div align=center>!!ERRORE!!
    Il terzo indirizzo email inserito non è valido.
    <a href=javascript:history.back(-1)>Ritorna al form</a>.</div>";
    }
    }
    if (($x2!=0) || ($x3!=0) || ($x4!=0))
    {
    mail("$email", "$title", "$text", "From: \"$sendername\" $senderemail\n");
    mail("$email2", "$title", "$text", "From: \"$sendername\" $senderemail\n");
    mail("$email3", "$title", "$text", "From: \"$sendername\" $senderemail\n");


    header("Location: $thankspage");
    }

    ?>

    la riga
    <link href="contatti.css" rel="stylesheet" type="text/css" />
    blocca la funzione
    $thankspage="http://www.nipphon.com/grazie.php";

    Perchè

  2. #2
    Ad occhio direi che il problema è

    header("Location: $thankspage");

    se lanci un'intestazione non ti è consentito stampare nessun tipo di outoput prima di questa istruzione. Questa è la ragione per cui se metti quella riga non funziona più.

    Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
    Ciao!
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    159
    e come dovrei correggere?
    (Tieni presente che conosco pochissimi il php!)


  4. #4
    Originariamente inviato da delgius
    e come dovrei correggere?
    (Tieni presente che conosco pochissimi il php!)

    la soluzione è molto semplice, a inizio pagina, prima di qualsisi output ci piazzi

    Codice PHP:
    ob_start(); 
    e vai tranquillo

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    159
    ho provato a metterlo dopo
    <?php
    ma non funziona
    praticamente

    <link href="contatti.css" rel="stylesheet" type="text/css" />
    <?php
    ob_start();
    $site_name="www.nipphon.com";
    ecc ecc

    perchè secondo te?

  6. #6
    Originariamente inviato da delgius
    ho provato a metterlo dopo
    <?php
    ma non funziona
    praticamente

    <link href="contatti.css" rel="stylesheet" type="text/css" />
    <?php
    ob_start();
    $site_name="www.nipphon.com";
    ecc ecc

    perchè secondo te?
    devi metterlo proprio a inizio pagina

    ti faccio un esempio:
    Codice PHP:
    <?php
    ob_start
    ();
    // segue il tuo codice
    ...
    ?>
    <html>
    <head>
    <link href="contatti.css" rel="stylesheet" type="text/css" />
    ...
    </head>
    <body>
    ...
    </body>
    </html>

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    159
    ok funziona!!!
    grazie

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.