La pagina, nonstante abbia fatto altri siti del genere, non funziona!

  • Creatore Discussione Creatore Discussione XMatt64
  • Data di inizio Data di inizio

XMatt64

Nuovo Utente
17 Feb 2013
22
0
0
Ciao a tutti. Oggi pomeriggio ho creato il seguente foglio di funzioni in php
PHP:
<?php

   /*
    SETTAGGI DEL DATABASE
    */
    
    $host_db = 'localhost';
    $user_db = 'root';
	$pass_db = 'password';
	$name_db = 'database';


//connessione al database
    function connect_db()
    {
        $db_in_conn = mysql_connect($host_db,$user_db,$pass_db) or die(mysql_error());
        $db_sel = mysql_select_db($db_in_conn,$db_name) or die(mysql_error());
        return;
    }

//Verifica campo vuoto
    function campo_vuoto($string)
    {
        $string = trim($string);
		if($string==''){
			return TRUE;
        }
		else{
			return FALSE;
        }
    }

//Verifichiamo se è uno username
    function vero_username($username)
    {
        $regex = '/^[a-z0-9\.\-_]{3,30}$/i';
		return preg_match($regex, $username);
    }

//verifichiamo se vera email
    function vera_email($email)
    {
        $regex = '/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/';
		return preg_match($regex, $email);
    }

//Verifichiamo se la password rispetta i requisiti (+8char)
    function pwd_min_req($password)
    {
        if(strlen($password)>=8){
			return TRUE;
        }
		else{
			return FALSE;
        }
    }

//Verifichiamo esistenza duplice username
    function duplice_username($username)
    {
        $query = "SELECT COUNT(username) AS count FROM users WHERE username='".mysql_real_escape_string($username)."' LIMIT 1";
		$result = mysql_query($query) or die(mysql_error());
		$row = mysql_fetch_array($result);
		if($row['count']==1){
			return TRUE;
        }
		else{
			return FALSE;
        }
    }
    
//Verifichiamo esistenza duplice email
    function duplice_email($email)
    {
        $query = "SELECT COUNT(email) AS count FROM users WHERE email='".mysql_real_escape_string($email)."' LIMIT 1";
		$result = mysql_query($query) or die(mysql_error());
		$row = mysql_fetch_array($result);
		if($row['count']==1){
			return TRUE;
        }
		else{
			return FALSE;
        }
    }
    
//Metodo per criptare password
    function cript_pwd($pass)
    {
        return sha1($pass);
    }
 
//REGISTRAZIONE!!!!
    function registazione()
    {
        if(isset($_POST['register']) AND //pressione pulsante
           isset($_POST['username']) AND //campi inseriti
           isset($_POST['email']) AND
           isset($_POST['pass1']) AND
           isset($_POST['pass2'])){
        
            $username_reg = trim($_POST['username']);
            $email_reg = trim($_POST['email']);
            $pass_reg = trim($_POST['pass1']);
            $pass_confirm_reg = trim($_POST['pass2']);
        
            $input_are_ok = controllo_input_reg($username_reg,$email_reg,$pass_reg,$pass_confirm_reg);
            
            //validità operazioni svolte
            if($input_are_ok===TRUE){
                $registro_in_db($username_reg,$email_reg,$pwd_cript_ok);
                $stampa_messaggio = 10;
                return TRUE;
                                    }
                    }
            return FALSE;
           }

//procedura di controllo degli input
    function controllo_input_reg($username_reg,$email_reg,$pass_reg,$pass_confirm_reg)
    {
        if(campo_vuoto($username_reg)){
            $stampa_messaggio = 1;
            return FALSE;
        }
            else if(campo_vuoto($email_reg)){
            $stampa_messaggio = 2;
            return FALSE;
        }
         else if(campo_vuoto($pass_reg)){
            $stampa_messaggio = 3;
            return FALSE;
        }
        else if(campo_vuoto($pass_confirm_reg)){
            $stampa_messaggio = 4;
            return FALSE;
        }
        else if(!vero_username($username_reg)){
            $stampa_messaggio = 5;
            return FALSE;
        }
        else if(!vera_email($email_reg)){
            $stampa_messaggio = 6;
            return FALSE;
        }
        else if(!pwd_min_req($pass_reg)){
            $stampa_messaggio = 7;
            return FALSE;
        }
        else if(duplice_username($username_reg)){
            $stampa_messaggio = 8;
            return FALSE;
        }
        else if(duplice_email($email_reg)){
            $stampa_messaggio = 9;
            return FALSE;
        }

            return TRUE;
    }
 
//query registrazione nel db
    function registro_in_db($username_reg,$email_reg,$pwd_cript_ok)
    {
        $qry_insert_reg_db = "INSERT INTO users SET nome_utente = '".mysql_real_escape_string($username_reg)."', password_utente = '".mysql_real_escape_string($pwd_cript_ok)."', email_utente = '".mysql_real_escape_string($email_reg)."', rif_data_utente = NOW()";
        $res_qry_insert_reg_db = mysql_query($qry_insert_reg_db) or die(mysql_error());
        return mysql_insert_id();
    }
 
    
    ?>
Ed ho anche creato il seguente form html
HTML:
<?php
    include ('lib/user_function.php');
?>

<html>
<head>
<title>Modulo di Registrazione</title>
</head>
<body>

<form method='POST'>

<b>Nome</b><br>
<input type='text' name='username'><br>

<b>Mail</b><br>
<input type='text' name='email'><br>

<b>Password</b><br>
<input type='password' name='pass1'><br>

<b>Ripeti Password</b><br>
<input type='password' name='pass2'><br>

<input type='submit' value='Registrati' name='register'><br>

</form>
</html>
In pratica è come se la pagina si aggiornasse invece di eseguire le funzioni. So di non ho creato la funzione stampa_messaggio ma al momento, per fare le prove, non ritengo necessaria questa funzione! Dopo svariati tentativi e controlli ho deciso di chiedere a voi del forum poichè non ho trovato la soluzione! Mi dite dove sbaglio? :crying: Grazie in anticipo a tutti coloro che mi risponderanno!
 
Non mi pare che richiami qualcuna di quelle funzioni, quindi è ovvio che non funzionerà niente, inoltre ti consiglio di utilizzare un sistema migliore (utilizzando ad esempio pdo o mysqli, rendendo il controllo sui campi dinamico, utilizzando una logica ad oggetti etc...) il php4 è passato da un pezzo.

Inoltre:
campo_vuoto() è inutile perché c'è empty()
puoi ritornare il valore di una condizione che verrà interpretato come bool
es.
PHP:
function test($num,$num2){
return $num>$num2;
}
nella funzione controllo_input_reg, non c'è bisogno di un return false continuo, basta controllare se alla fine $stampa_messaggio è settato
nelle funzioni dove non passi i parametri come argomenti (es. connect_db()) devi utilizzare i global per accedere alle variabili esterne
es.
PHP:
$var = 10;
function test(){
 global $var;
 echo $var;
}
 
Ultima modifica:
Ok! Mi sono reso conto solo ora di aver fatto la c*****a non richiamando i valori. Farò anche varie modifiche per arrivare allo standard php5! Grazie!
 

Discussioni simili