Visualizzazione dei risultati da 1 a 8 su 8

Discussione: controlli label

  1. #1

    controlli label

    ciao a tutti, hobisohno del vostro aiuto.
    Ho un form html e ora ho bisogno dei classici controlli per ogni label.
    ho fatto così:

    <?php
    $nome=isset($_POST['nome'])

    if (empty($nome)) {

    echo "Spiacenti, campo Nome vuoto!";

    }

    ?>

    quando lo apro in locale mi appare sempre il messaggio echo, perchè cosa sbaglio?
    Scusate l'ignoranza sto imparando ora il php.
    Grazie mille in anticipo

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,036
    isset() ritorna true oppure false a seconda che $_POST['nome'] esista oppure no (non ritorna il contenuto della variabile), quindi dentro a $nome ci sarà sempre ture oppure false, non sarà mai vuota, da cui l'if da sempre esito positivo ed esegue l'echo.

  3. #3
    e quindi come posso fare, è completamente sbagliato lo script o devo aggiungere qualcosa?

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,337
    Codice PHP:
    <?php
    if (! isset($_POST['nome']))  {

    echo 
    "Spiacenti, campo Nome vuoto!";

    }
    ?>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,036
    Questa:
    Quote Originariamente inviata da andrew.des Visualizza il messaggio
    ... è completamente sbagliato lo script ...
    comunque badaze ti ha dato la soluzione.

  6. #6
    Niente , ho inserito il tuo codice ma non va, mi da il solito errore. Mi esce "Spiacenti, campo Nome vuoto!"; appena apro la pagina del form. Come se riconoscesse solo il comando echo.

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,337
    Allora il problema è altrove. Posta tutto il codice.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,036
    E' abbastanza ovvio che se quel codice si trova nella stessa pagina del form, al primo accesso ti stampi il messaggio.
    La prima volta che accedi alla pagina, sicuramente $_POST non esiste ancora visto che il form non è stato inviato, dunque l'if si ritrova con la condizione verificata ($_POST['nome'] non è settata) e ti stampa il messaggio.

    2 possibilità:
    1) metti come action del form una pagina diversa ed i controlli li fai lì
    2) devi mettere un if che decida se eseguire i controlli o no, ad esempio, supponendo che il name del pulsante submit sia 'submit'
    Codice PHP:
    // se $_POST['submit'] esiste, vuol dire che il form è stato inviato
    // e si possono eseguire i controlli
    if ( isset($_POST['submit'] )
    {
        
    // esegui i controlli


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 © 2020 vBulletin Solutions, Inc. All rights reserved.