Pagina 2 di 2 PrimoPrimo 12
Visualizzazione risultati 31 fino 43 di 43

Discussione: Ancora problemi con il form.

  1. #31
    Guest

    Predefinito

    Non so se si possono avere due sezioni body e head nella stessa pagina. Ammesso che si possa:

    1) al fondo hai un TAG <tr > con uno spazio finale, non va bene. <tr>
    2) sempre al fondo ti sei perso con le aperture e chiusure <tr></tr>

    Se puoi usa Ultraedit portable e per migliorare la lettura del codice, abituati a tabulare le gerarchie dei TAG (con Ultaedit e le tabulazioni, vedi l'alberatura dei tag più facilmente e puoi chiudere e espandere un blocco di codice). Leggi meglio il codice.

    Per non sbagliare nelle aperture e chiusure di un TAG, consiglio da vecchio programmatore, apri e chiudi subito il TAG e poi ci metti dentro quello che vuoi. Così non sbagli.

  2. #32
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Websviluppo: HTML è un linguaggio per niente rigoroso, tutti gli errori che hai indicato (tranne lo spazio prima del simbolo maggiore nel tag, quello è perfettamente regolare perfino in XML) sono automaticamente ignorati e corretti dal browser, e normalmente non creano grossi problemi nel visualizzare la pagina.
    Comunque sono d'accordissimo anch'io nell'affermare che è bene sistemare anche queste piccole cose, analizziamo una cosa per volta però: adesso ci sono problemi di sintassi nello script PHP, cerchiamo di sistemare questo prima.

    GaetanoLoGatto: l'inteprete PHP ti potrà segnare errore nell'ultima riga, in cui non c'è codice PHP, ma ciò non significa che il problema sia in quella riga, specialmente se in quella riga non c'è codice PHP. L'interprete PHP non si cura del tipo di output prodotto da uno script, nel tuo caso è un testo (nello specifico un documento HTML), ma potrebbe essere un'immagine o qualsiasi altra cosa e l'interprete non ti darà mai errore perché hai scritto del codice HTML "sbagliato".
    Infatti se presti attenzione, oltre alla riga c'è anche un messaggio di errore, che anche se per te potrebbe non significare nulla, fornisce indicazioni molto chiare riguardo la natura del problema.

    Ora, il messaggio di errore corrente è:
    Parse error: syntax error, unexpected $end in /membri/gaetanologatto/contatti.php on line 174
    Che significa più o meno: ho raggiunto la fine del file ma qualcosa è rimasto in sospeso, come un blocco di codice o un altro tipo di espressione.
    E infatti se controlli bene, la graffa in riga 67 non ha la corrispondente di chiusura.
    Un consiglio: indenta il codice, in questa maniera sarà più semplice individuare l'errore.

  3. #33
    Guest

    Predefinito

    credo che le parentesi siano tutte chiuse tranne una ma non so dove chiuderla, ho provato prima della chiusura del tag php o poco prima la funzione test_input ma niente, mi da' errore proprio su quella parentesi.

    if ($_SERVER["REQUEST_METHOD"] == "POST") { <----- dove la chiudo????

    if (empty($_POST[ "name"] )) {
    $nameErr = "Campo obbligatorio";}
    } else {
    $name = test_input ($_POST["name"] );}
    if (!preg_match("/^[a-zA-Z ] *$/ ", $name)) {
    $nameErr = "Si accettano solo lettere e spazi";
    }

    if (empty($_POST[ "surname"] )) {
    $surnameErr = "Campo obbligatorio";
    } else {
    $surname = test_input ($_POST["surname"] );}
    if (!preg_match("/^[a-zA-Z ] *$/ ", $surname)) {
    $surnameErr = "Si accettano solo lettere e spazi";
    }


    if (empty($_POST[ "email"] )) {
    $emailErr = "Campo obbligatorio";
    } else {
    $surname = test_input ($_POST["email"] );}
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $emailErr = "Email non valida";
    }


    if (empty($_POST[ "oggetto"] )) {
    $oggettoErr = "Campo obbligatorio";
    } else {
    $oggetto = test_input ($_POST["oggetto"] );

    }

    if (empty($_POST[ "messaggio"] )) {
    $messaggioErr = "Campo obbligatorio";
    } else {
    $messaggio = test_input ($_POST["messaggio"] );
    }

    function test_input ($data) {
    $data = trim($data);
    $data = stripslashes ($data);
    $data = htmlspecialchars ($data);
    return $data;
    }



    ?>

  4. #34
    Guest

    Predefinito

    Alla fine della riga 4 c'è una graffa di troppo

    la prima graffa la devi chiudere in fondo, prima della chiusura del php

  5. #35
    Guest

    Predefinito

    ho levato la graffa in più mentre l'altra avevo già' provato a metterla prima della chiusura del tag, ci ho riprovato ma me la vede come errore!

  6. #36
    Guest

    Predefinito

    ehmn....non so cosa fare...

  7. #37
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Anche tralasciando gli errori sintattici il codice è piuttosto malmesso, ci sono cose che non hanno molto senso come la questione delle sessioni indicata da Alemoppo. Puoi indicare l'indirizzo della pagina da cui l'hai preso?

  8. #38
    Guest

  9. #39
    Guest

    Predefinito

    niente di niente?????

  10. #40
    Guest

    Predefinito

    ho cancellato quel codice che non sapevo dove chiudere. Adesso non mi da errori ma il problema è che i messaggi di controllo di php mi compaiono ancora prima di compilare il form. Mi spiego meglio. vorrei che se si clicca il pulsante di invio del form, se esso non è compilato compaiano dei messaggi di errore ma questi compaiono comunque senza averlo compilato. Di seguito il codice php:
    <?php

    $nameErr = $surnameErr = $emailErr = $oggettoErr = $messaggioErr = "";
    $name = $surname = $email = $oggetto = $messaggio = "";


    if (empty($_POST[ "name"] )) {
    $nameErr = "Campo obbligatorio";
    } else {
    $name = test_input ($_POST["name"] );}
    if (!preg_match("/^[a-zA-Z ] *$/ ", $name)) {
    $nameErr = "Si accettano solo lettere e spazi";
    }

    if (empty($_POST[ "surname"] )) {
    $surnameErr = "Campo obbligatorio";
    } else {
    $surname = test_input ($_POST["surname"] );}
    if (!preg_match("/^[a-zA-Z ] *$/ ", $surname)) {
    $surnameErr = "Si accettano solo lettere e spazi";
    }


    if (empty($_POST[ "email"] )) {
    $emailErr = "Campo obbligatorio";
    } else {
    $surname = test_input ($_POST["email"] );}
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $emailErr = "Email non valida";
    }


    if (empty($_POST[ "oggetto"] )) {
    $oggettoErr = "Campo obbligatorio";
    } else {
    $oggetto = test_input ($_POST["oggetto"] );

    }

    if (empty($_POST[ "messaggio"] )) {
    $messaggioErr = "Campo obbligatorio";
    } else {
    $messaggio = test_input ($_POST["messaggio"] );
    }

    function test_input ($data) {
    $data = trim($data);
    $data = stripslashes ($data);
    $data = htmlspecialchars ($data);
    return $data;
    }



    ?>

  11. #41
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,753

    Predefinito

    usa la isset() sulle variabili $_POST['...'] per vedere se sono presenti dati inviati da form (è sufficiente controllarne anche uno soltanto).

    Ciao!

  12. #42
    Guest

    Predefinito

    ho corretto così ma niente:
    if (isset($_POST[ "name"] )) {
    $nameErr = "Campo obbligatorio";
    } else {
    $name = test_input ($_POST["name"] );}
    if (!preg_match("/^[a-zA-Z ] *$/ ", $name)) {
    $nameErr = "Si accettano solo lettere e spazi";
    }

    if (isset($_POST[ "surname"] )) {
    $surnameErr = "Campo obbligatorio";
    } else {
    $surname = test_input ($_POST["surname"] );}
    if (!preg_match("/^[a-zA-Z ] *$/ ", $surname)) {
    $surnameErr = "Si accettano solo lettere e spazi";
    }


    if (isset($_POST[ "email"] )) {
    $emailErr = "Campo obbligatorio";
    } else {
    $surname = test_input ($_POST["email"] );}
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $emailErr = "Email non valida";
    }


    if (isset($_POST[ "oggetto"] )) {
    $oggettoErr = "Campo obbligatorio";
    } else {
    $oggetto = test_input ($_POST["oggetto"] );

    }

    if (isset($_POST[ "messaggio"] )) {
    $messaggioErr = "Campo obbligatorio";
    } else {
    $messaggio = test_input ($_POST["messaggio"] );
    }

    function test_input ($data) {
    $data = trim($data);
    $data = stripslashes ($data);
    $data = htmlspecialchars ($data);
    return $data;
    }



    ?>

  13. #43
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,753

    Predefinito

    Non ti ho detto di sostituire isset() a empty(), ma di usare isset() per vedere se è stato inviato il form:

    Codice PHP:
    if(isset($_POST['name']))
    {
    //qui il codice da eseguire SOLO se è stato inviato il form.
    }
    Ciao!

Pagina 2 di 2 PrimoPrimo 12

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •