Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Controllare input utente via PHP e Javascript

    Ciao a tutti, ho un semplice form creato in html che permette all'utente di inserire il suo nome e il suo cognome. Ciò che vorrei è poter controllare la correttezza dei dati inseriti sia lato client (javascript) si lato server (PHP).
    Con javascript l'ho fatto semplicemente richiamando una funzione send() che mi controlla se l'input è corretto e mi stampa il nome al posto giusto.
    Mentre con PHP ho aggiunto quel codice sotto il form:

    File index.php
    codice:
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" onsubmit="send()">               
    	<input type="text" name="nome" value="Il tuo nome.." />				
    	<input type="button" value="Invia" onclick="send()"/>
    </form>
    
    
    <?php
      if(($msg == "")||($msg == "a")) {
         echo "Errore: campo vuoto o uguale ad a";
      }
      else
         echo $msg;
    ?>
    Non va. Mi stampa sempre "Errore: campo vuoto o uguale ad a"..

    Come posso fare? Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ti stampa sempre errore perché viene eseguito sempre, anche appena accedi la prima volta alla pagina e quella volta lì, ovviamente i dati ancora non esistono.

    La variabile $msg chi è?
    Dove viene definita?

    <form ... onsubmit="send()">
    la funzione send() l'hai già chiamata al click del pulsante, che la chiami a fare una seconda volta quando i dati del form vengono effettivamente inviati?

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Ti stampa sempre errore perché viene eseguito sempre, anche appena accedi la prima volta alla pagina e quella volta lì, ovviamente i dati ancora non esistono.

    La variabile $msg chi è?
    Dove viene definita?

    <form ... onsubmit="send()">
    la funzione send() l'hai già chiamata al click del pulsante, che la chiami a fare una seconda volta quando i dati del form vengono effettivamente inviati?
    Ho sbagliato a scrivere: $msg sarebbe $nome cioè il nome dell'imput.
    Quindi consigli di togliere l'onsubmit="send()" nel form, giusto? Come posso evitare che mi stampi sempre quella stringa?
    Grazie per la risposta

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Intanto ti consiglio di leggere qualcosa riguardo PHP

    http://www.html.it/guide/guida-php-di-base/

    perché a meno di impostazioni particolari (pericolose per la sicurezza e non più in uso da un bel po' di tempo, ovvero uso di variabili globali): $nome non conterrà il dato che ti aspetti, sarà sempre una variabile vuota.

    Per recuperare i dati del form devi usare l'array $_POST

    Codice PHP:
    if (isset($_POST['nome'])
    {
        if((
    $_POST['nome'] == "")||($_POST['nome'] == "a")) {
            echo 
    "Errore: campo vuoto o uguale ad a";
        }
        else
            echo 
    $_POST['nome'];


  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Intanto ti consiglio di leggere qualcosa riguardo PHP

    http://www.html.it/guide/guida-php-di-base/

    perché a meno di impostazioni particolari (pericolose per la sicurezza e non più in uso da un bel po' di tempo, ovvero uso di variabili globali): $nome non conterrà il dato che ti aspetti, sarà sempre una variabile vuota.

    Per recuperare i dati del form devi usare l'array $_POST

    Codice PHP:
    if (isset($_POST['nome'])
    {
        if((
    $_POST['nome'] == "")||($_POST['nome'] == "a")) {
            echo 
    "Errore: campo vuoto o uguale ad a";
        }
        else
            echo 
    $_POST['nome'];

    Ho provato a fare come dici ma non mi stampa nulla, nè in caso di errore nè in caso di input corretto...

  6. #6
    Ho risolto facendo
    codice:
                      if(isset($_POST['Submit'])) {
                          if(($_POST['nome'] == "") || ($_POST['nome'] == "a")) {
                              echo "Errore: campo vuoto o uguale ad a";
                          }
                          else
                              echo $_POST['nome'];
                      }

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.