Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16

Discussione: Problema con PHP

  1. #11
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da lleo.94
    @Alhazred: per scriverlo, ho usato il blocco note. Ora lo sto testando e modificando dall'editor di altervista
    Scaricati Notepad++ ed usa quello, è gratuito.

  2. #12
    Ci proverò. Ma ci sono altri errori sostanziali? Da cosa dipende il fatto che non ritorna alla pagina del form, quando le caselle sono vuote?

  3. #13
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Come prima cosa è proprio strutturato male il metodo con cui fai i controlli.
    Facciamo che devi controllare solo nome, cognome e sesso per brevità, poi gli altri puoi aggiungerli seguendo lo schema.
    Codice PHP:
    // puoi usare direttamente le variabili dall'array $_GET, non è necessario assegnare nuove variabili
    if ($_GET['nome'] == ""//il controllo devi farlo sulla stringa vuota "" non sullo spazio " "
    {
        echo 
    "Non hai inserito il nome";
        echo 
    '[url="guestbook.html"]Torna al questionario...[/url]';
    }
    elseif(
    $_GET['cognome'] == "")
    {
        echo 
    "Non Hai inserito il cognome!";
        echo 
    '[url="guestbook.html"]Torna al questionario...[/url]';
    }
    elseif(
    $_GET['sesso'] == "")
    {
        echo 
    "Non hai specificato il sesso!";
        echo 
    '[url="guestbook.html"]Torna al questionario...[/url]';
    }
    else { 
    //tutti i controlli sono andati a buon fine
        //fai quello che devi fare se tutto va bene

    Se non scrivi niente nella casella "sesso" andrai sempre sulla pagina contenuta in $redirect1 perché il controllo lo fai così
    Codice PHP:
    if ($sesso == "m")
    {
        
    header("Location: $redirect");
    }
    else 
    //se $sesso è qualsiasi altra cosa, quindi anche niente!
    {
        
    header("Location: $redirect1");


  4. #14
    Quindi, la prima parte, deve essere così? E la seconda del redirect? Come faccio? Non capisco

    <?php
    $nome = $_GET ['nome'];
    $cognome = $_GET ['cognome'];
    $citta = $_GET ['citta'];
    $provincia = $_GET ['provincia'];
    $sesso = $_GET ['sesso'];
    $auto = $_GET ['auto'];
    $voto = $_GET ['voto'];
    $redirect = "maschio.html";
    $redirect1 = "femmina.html";
    if ($_GET['nome'] == "") //il controllo devi farlo sulla stringa vuota "" non sullo spazio " "
    {
    echo "Non hai inserito il nome";
    echo 'Torna al questionario...';
    }
    elseif($_GET['cognome'] == "")
    {
    echo "Non Hai inserito il cognome!";
    echo 'Torna al questionario...';
    }
    elseif($_GET['sesso'] == "")
    {
    echo "Non hai specificato il sesso!";
    echo 'Torna al questionario...';
    }
    elseif($_GET['provincia'] == "")
    {
    echo "Non hai specificato la provincia!";
    echo 'Torna al questionario...';
    }
    elseif($_GET['provincia'] == "")
    {
    echo "Non hai specificato la provincia!";
    echo 'Torna al questionario...';
    }
    elseif($_GET['citta'] == "")
    {
    echo "Non hai specificato la città!";
    echo 'Torna al questionario...';
    }
    elseif($_GET['voto'] == "")
    {
    echo "Non hai specificato il voto!";
    echo 'Torna al questionario...';
    }
    elseif($_GET['auto'] == "")
    {
    echo "Non hai specificato la tua auto preferita!";
    echo 'Torna al questionario...';
    }

    [B>else {

    ????

    }
    ?>[/B]

  5. #15
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Intanto se usi direttamente i $_GET['....'] tutto questo lo puoi cancellare
    $nome = $_GET ['nome'];
    $cognome = $_GET ['cognome'];
    $citta = $_GET ['citta'];
    $provincia = $_GET ['provincia'];
    $sesso = $_GET ['sesso'];
    $auto = $_GET ['auto'];
    $voto = $_GET ['voto'];

    Dentro quell'else ci va il codice per far fare allo script le operazioni da compiere in caso l'utente abbia compilato correttamente la form.

    Un consiglio, dato che devi passare 7 variabili forse ti conviene usare POST invece di GET, l'indirizzo risulterebbe più pulito.

  6. #16
    Quindi, in questo modo, dovrebbe fungere?

    <?php

    $redirect = "maschio.html";
    $redirect1 = "femmina.html";
    if ($_GET['nome'] == "") //il controllo devi farlo sulla stringa vuota "" non sullo spazio " "
    {
    echo "Non hai inserito il nome";
    echo 'Torna al questionario...';
    }
    elseif($_POST['cognome'] == "")
    {
    echo "Non Hai inserito il cognome!";
    echo 'Torna al questionario...';
    }
    elseif($_POST['sesso'] == "")
    {
    echo "Non hai specificato il sesso!";
    echo 'Torna al questionario...';
    }
    elseif($_POST['provincia'] == "")
    {
    echo "Non hai specificato la provincia!";
    echo 'Torna al questionario...';
    }
    elseif($_POST['provincia'] == "")
    {
    echo "Non hai specificato la provincia!";
    echo 'Torna al questionario...';
    }
    elseif($_POST['citta'] == "")
    {
    echo "Non hai specificato la città!";
    echo 'Torna al questionario...';
    }
    elseif($_POST['voto'] == "")
    {
    echo "Non hai specificato il voto!";
    echo 'Torna al questionario...';
    }
    elseif($_POST['auto'] == "")
    {
    echo "Non hai specificato la tua auto preferita!";
    echo 'Torna al questionario...';
    }

    else {

    if($_POST['sesso'] == "m")
    {
    header("Location: $redirect");
    }
    if($_POST['sesso'] == "f")
    {
    header("Location: $redirect1");
    }

    }
    ?>

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.