Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    il form non funziona con php5

    ciauz,
    il mio problema è il seguente:
    ho un form con campi obbligatori che mi funzionava su hosting con php4, ma che nn mi funziona più su hosting con php5...
    in pratica cliccando sul tasto 'invia' il risultato è sempre l'invito a tornare indietro e compilare correttamente il form (i cui campi sono tutti obbligatori)...

    i file utilizzati sono questi:

    CONFIGURA.PHP
    <?
    $tua_email = "info@nomesito.it";

    $campo2 = "Nome";
    $lunghezza_campo2 = "40";
    $lunghezza_max_campo2 = "50";

    $campo3 = "Cognome";
    $lunghezza_campo3 = "40";
    $lunghezza_max_campo3 = "50";

    $campo_messaggio = "Testo";
    $colonne_textarea = "44";
    $righe_textarea = "9";

    $messaggio_inviato ="Grazie per aver compilato il nostro form.";
    $ora = date ("h:i:s A");
    $data = date ("d:m:Y");
    $messaggio = stripslashes($messaggio );
    $campo2 = stripslashes($campo2 );
    $secondo = stripslashes($secondo );
    $campo3 = stripslashes($campo3 );
    $terzo = stripslashes($terzo );
    ?>

    -------------------------

    FORM.PHP
    <?
    require ("configura.php");
    ?>
    <form name="form" method="post" action="replay.php">
    <table>
    <tr>
    <td><? echo $campo2 ?>:</td>
    <td><input name=secondo size="<? echo $lunghezza_campo2 ?>" maxlength="<? echo $lunghezza_max_campo2 ?>"></td>
    </tr>
    <tr>
    <td><? echo $campo3 ?>:</td>
    <td><input name=terzo size="<? echo $lunghezza_campo3 ?>" maxlength="<? echo $lunghezza_max_campo3 ?>"></td>
    </tr>
    <tr>
    <td><? echo $campo_messaggio ?>:</td>
    <td><textarea name="messaggio" cols="<? echo $colonne_textarea ?>" rows="<? echo $righe_textarea ?>" wrap="VIRTUAL"></textarea></td>
    </tr>
    <tr>
    <td></td>
    <td><input type="submit" name="Submit" value="Invia">
    <input type="reset" name="Submit2" value="Cancella">
    </td>
    </tr>
    </table>
    </form>

    -------------------------

    REPLAY.PHP
    <?
    require ("configura.php");
    ?>
    <?
    if ($secondo == "" || (eregi("[0-9]", $secondo )))
    {
    echo "<table>
    <tr>
    <td>
    Attenzione! Non hai compilato il campo $campo2

    <a href=\"#\" onclick=\"history.go(-1)\">Torna indietro</a>
    </td>
    </tr></table>" ;

    }
    elseif ($terzo == "" || (eregi("[0-9]", $terzo )))
    {
    echo "<table>
    <tr>
    <td>
    Attenzione! Non hai compilato il campo $campo3

    <a href=\"#\" onclick=\"history.go(-1)\">Torna indietro</a>
    </td>
    </tr></table>" ;

    }
    else
    {
    echo "<table>
    <tr>
    <td>
    $messaggio_inviato
    </td>
    </tr></table>";

    mail("$tua_email ","titolo oggetto email",

    "Inviato da: $secondo $terzo
    il $data alle ore $ora
    ------------------------------------------------
    $campo2 : $secondo
    $campo3 : $terzo
    $campo_messaggio : $messaggio ", "From: $secondo $terzo ");
    }
    ?>
    come posso correggere lo script per il php5???

    grazie,
    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  2. #2
    il problema non e' php 4 o 5, ma register_globals in OFF mentre prima lo avevi in ON.

    nella pagina di arrivo (action) devi prendere le variabili che passi via form con POST.

    es.:
    name=secondo

    lo trovi con:

    $_POST['secondo'] e non piu' con $secondo

    e cosi' via tutti gli altri.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    grazie,
    intendi così?
    REPLAY.PHP

    <?
    require ("configura.php");
    ?>

    <?
    $secondo = $_POST['secondo']
    $terzo = $_POST['terzo']
    ...


    if ($secondo == "" || (eregi("[0-9]", $secondo )))
    {
    echo "<table>
    ...
    devo intervenire solo in replay.php?

    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  4. #4
    Originariamente inviato da cybergiaggia

    devo intervenire solo in replay.php?

    di solito si. ma non si possono massimilizzare le regole, dipende dallo script. Per quanto riguarda il FORM si ...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5


    il codice è quello che ho scritto all'inizio...
    ho provato ma non va...

    in replay.php ho scritto:

    <? require ("configura.php"); ?>
    <?
    $secondo = $_POST['secondo']
    $terzo = $_POST['terzo']
    $messaggio = $_POST['messaggio']

    if ($secondo == "" || (eregi("[0-9]", $secondo)))
    ...
    ma cliccando su invia mi restituisce sempre questo errore:

    Parse error: syntax error, unexpected T_VARIABLE in replay.php on line 59
    nella line 59 c'è scritto:

    $terzo = $_POST['terzo']

    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Di solito quando da questo errore mancano i ";" nella riga prima o nella riga stessa

  7. #7
    il punto e virgola per chiudere una riga di istruzioni NON e' opzionale.....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8


    grazie, sono proprio distratta...

    ...

    adesso riesco a compilare il form e mi viene restiruito il messaggio di avvenuto invio...

    il problema è che la mail NON arriva a destinazione...



    da cosa dipende?
    devo prendere altre variabili?

    vi prego, un aiuto...

    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  9. #9
    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  10. #10
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Il fatto che l'email non ti arriva significa che il problema è a monte.
    Cmq sia, anzichè stampare il messaggio di conferma, stampa tutti i dati ($tua_email, $secondo, $terzo, etc.), così controlli che siano esatti.

    Una curiosità, hai aggiornato PHP sul server o hai proprio cambiato servizio di hosting?
    Forse tipende dal fatto che chi ti fornisce lo spazio non permette l'invio di email con mail().
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

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.