Visualizzazione dei risultati da 1 a 10 su 10

Discussione: PHP e JavaScript

  1. #1
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129

    PHP e JavaScript

    Salve a tutti, ho creato uno script in php per aggiungere un nuovo utente nel database, volevo sapere, come faccio a far comparire un messaggio di errore se uno o più campi vengono lasciati vuoti?
    Questo è il mio attuale codice:
    Codice PHP:
    <?php
        
    if(isset($_POST['add']))
        {
            
    $dbhost 'localhost';
            
    $dbuser 'root';
            
    $dbpass '';
            
    $conn mysql_connect($dbhost$dbuser$dbpass);
            if(! 
    $conn )
            {
                die(
    'Could not connect: ' mysql_error());
            }


            if(! 
    get_magic_quotes_gpc() )
            {
                
    $username addslashes ($_POST['username']);
                
    $password addslashes ($_POST['password']);
                
    $role intval($_POST['role']);
            }
            else
            {
                
    $username $_POST['username'];
                
    $password $_POST['password'];
                
    $role intval($_POST['role']);
            }
            if (
    $role == 1)
            {
                
    $role"Admin";
            }    
            if (
    $role == 2)
            {
                
    $role"User1";
            }
            if (
    $role == 3)
            {
                
    $role"User2";
            }
        
            
    $sql "INSERT INTO user "."(UserID,Password,Role) "."VALUES('$username','$password','$role')";
            
    mysql_select_db('rail');
            
    $retval mysql_query$sql$conn );
            if(! 
    $retval )
            {
                die(
    'Could not enter data: ' mysql_error());
            }
            
    header("location: addUser.php"); 
            
    mysql_close($conn);
            }


        else
        {
    ?>
    Grazie mille a tutti
    Ultima modifica di Valeria89; 20-05-2015 a 15:07

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    9
    Se inserisci i dati dal form quindi una pagina web, basta che includi l'opzione required a ogni campo.

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da L_C Visualizza il messaggio
    Se inserisci i dati dal form quindi una pagina web, basta che includi l'opzione required a ogni campo.
    E se uno compila il form con un vecchio browser che non supporta la direttiva "required" oppure che offre la possibilità di disattivare tali controlli?
    La validazione lato server va fatta sempre, non ci si può affidare a quella lato client, quella può sempre essere aggirata, serve solo a dare risposte più veloci agli utenti onesti.

    Venendo al problema: nello script che riceve i dati controlli con una serie di if se i campi che vuoi che siano obbligatori sono compilati o no, se non sono compilati salvi in sessione un messaggio (ad esempio in $_SESSION['form_error'] = 'Il campo ... è obbligatorio'), stoppi il proseguimento dello script e fai un redirect alla pagina del form.
    Sulla pagina del form, dove vuoi che appaiano eventuali errori metti
    Codice PHP:
    <?php 
        
    echo isset($_SESSION['form_error'] ? $_SESSION['form_error'] : '';
        unset(
    $_SESSION['form_error']);
    ?>

  4. #4
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129
    Grazie mille

  5. #5
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    E se uno compila il form con un vecchio browser che non supporta la direttiva "required" oppure che offre la possibilità di disattivare tali controlli?
    La validazione lato server va fatta sempre, non ci si può affidare a quella lato client, quella può sempre essere aggirata, serve solo a dare risposte più veloci agli utenti onesti.

    Venendo al problema: nello script che riceve i dati controlli con una serie di if se i campi che vuoi che siano obbligatori sono compilati o no, se non sono compilati salvi in sessione un messaggio (ad esempio in $_SESSION['form_error'] = 'Il campo ... è obbligatorio'), stoppi il proseguimento dello script e fai un redirect alla pagina del form.
    Sulla pagina del form, dove vuoi che appaiano eventuali errori metti
    Codice PHP:
    <?php 
        
    echo isset($_SESSION['form_error'] ? $_SESSION['form_error'] : '';
        unset(
    $_SESSION['form_error']);
    ?>
    Mi da errore in questa riga:
    Codice PHP:
        echo isset($_SESSION['form_error'] ? $_SESSION['form_error'] : ''
    Parse error: syntax error, unexpected ';'

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Manca una ) prima del ? a chiudere isset(....

  7. #7
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129
    grazie mille

  8. #8
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129
    Scusami ancora per il disturbo, non ho mai usato $_SESSION, mi da altri problemi:
    Undefined variable: _SESSION

    Ho inserito come mi hai detto questo:

    $_SESSION['form_error'] = 'Il campo ... è obbligatorio'
    Ultima modifica di Valeria89; 21-05-2015 a 11:06

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Nei file in cui vuoi usare la sessione, come prima istruzione devi mettere
    session_start();

    assicurati che prima non ci sia alcun output, quindi niente echo, niente codice html o testo prima, niente spazi bianci o ritorni a capo, niente, altrimenti non funziona.
    Inizia tali file così
    <?php session_start();

    lo spazio dopo <?php non da problemi perché non genera output.

  10. #10
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Nei file in cui vuoi usare la sessione, come prima istruzione devi mettere
    session_start();

    assicurati che prima non ci sia alcun output, quindi niente echo, niente codice html o testo prima, niente spazi bianci o ritorni a capo, niente, altrimenti non funziona.
    Inizia tali file così
    <?php session_start();

    lo spazio dopo <?php non da problemi perché non genera output.
    Grazie, avevo messo session_start(); ma non all'inizio. Grazie mille, molto gentile!

Tag per questa discussione

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.