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

    PHP Validation - serve aiuto

    Ciao a tutti,

    come novizio di PHP ho scritto questo semplice script per la valodazione dei dati. c'è solo il nome, in pratica se il nome non viene scritto vorrei far apprire il messaggio di errore e rimostrare il form, come nella magior parte dei siti. questo è lo script:
    codice:
    ## file validation.php ##
    
    <?php
    
    $errors = array();
    
    if(isset($_REQUEST["hide"])) {
    	validate();
    	if(count($errors) != 0) {
    		show_errors();
    		show_welcome();
    	}
    	else {
    		process();
    	}
    }
    else {
    	show_welcome();
    }
    
    function validate() {
    	global $errors;
    	if($_REQUEST["name"] == " ") {
    		$error[] = "scrivi il nome testa di rapa";
    	}
    }
    
    function process() {
    	echo $_REQUEST["name"];
    }
    
    function show_errors() {
    	foreach ($errors as $err) {
    		echo $err . "
    ";
    	}
    }
    
    function show_welcome() {
    	echo "<form method='post' action='validation.php' >";
    	echo "<input type='text' name='name' />";
    	echo "<input type='submit' value='vai' />";
    	echo "<input type='hidden' name='hide' value='hidden_data' />";
    	echo "</form>";
    }
    
    ?>
    qualcuno sa dirmi dove sta l'errore? in partica, se scrivo un nome, mi ritorna il nome, se non scrivo nulla nel campo input 'name' non mi mostra nulla, mentre dovrebbe mostrare un messaggio di errore no?

    qualsiasi aiuto è più che gradito, sta cosa mi sta bloccando gli studi! granzie in anticipo.

  2. #2
    Codice PHP:
    if($_REQUEST["name"] == " "
    non controlla che il nome sia vuoto, ma che contenga uno spazio.

  3. #3
    non credo dipenda da quello, perchè nemmeno questo script funziona:
    codice:
    <?php
    
    $errors= array();
    
    if (isset($_REQUEST["seen_already"])) {
    	validate();
    	if(count($errors) != 0) {
    		show_errors;
    		show_form;
    	}
    	else {
    		process();
    	}
    }
    else {
    	show_form();
    }
    
    function validate() {
    	global $errors;
    	if($_REQUEST["nome"] == "joseph") {
    	$errors[] = "erroraccio";
    	}
    }
    
    function show_errors() {
    	global $errors;
    	foreach($errors as $err) {
    		echo $err;
    	}
    }
    
    function process() {
    	echo $_REQUEST["nome"];
    }
    
    function show_form() {
    	echo '<form method="post" action="validation.php">';
    	echo '<input type="text" name="nome" />';
    	echo '<input type="hidden" name="seen_already" value="hidden_data" />';
    	echo '<input type="submit" value="vai" />';
    	echo '</form>';
    }
    
    ?>
    se scrivo 'luigi' stampa il nome luigi a video, se scrivo 'joseph' non stampa nulla. in qualche modo gli errori li riconosce ma non stampa nulla sulla pagina.

    ah, avevo trovato un paio di errori sul primo codice postato, ma ho ricontrollato e sul nuovo non mi pare ce ne siano più.

  4. #4
    Il secondo che hai postato funziona, devi solo sostituire
    Codice PHP:
        show_errors;         
    show_form
    con
    Codice PHP:
        show_errors();         
    show_form(); 
    visto che sono delle funzioni

  5. #5
    ragionissima.. infatti ora funziona!
    un errore del genere mi è costato una giornata.. vebbè sbagliando, anche stupidamente, si impara.. spero.
    grazie mille.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    Ti consiglio di inserire all'inizio dei tuoi script php questo codice
    Codice PHP:
    error_reporting (E_ALL|E_STRICT);
    ini_set ('display_errors','on'); 
    Cosi mostra tutti gli errori

    Andrea

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