• User Attivo

    Ricerca nel Database

    Salve a tutti stavo cercando di fare una ricerca nel database inserendo indirizzo email o il nome di un utente... ma stampa sempre il messaggio di errore che non esistono.... questo è il codice

    
    <form name="cerca" action="" method="post">
    	<center>
    		Cerca nel sito 
    		<input type="text" name="cerca" id="cerca">
    		<input type="submit" value="Cerca" id="search">
    	</center>
    </form>
    
    

    [php]
    <?php
    if(isset($_POST['cerca']))
    {
    $input = "$_POST[cerca]";
    $input = strip_tags($input);

    	// Dati connessione al database
    	$db_host = 'localhost';		
    	$db_utente = 'root';		
    	$db_password = '';		
    	$db_nomedb = 'database'; 	
    	
    	// Effettua la connessione al database
    	$dbh = @mysql_connect ($db_host, $db_utente, $db_password) 
    	or die ('Errore! Impossibile connettersi al Server $db_host: '.mysql_error());
    	@mysql_select_db($db_nomedb) or die ("Impossibile selezionare il database");
    	
    	$query = mysql_query("SELECT user FROM utenti WHERE user = '$user' ");
    	if(mysql_num_rows($query) == 1)
    	{
    		print "$user";
    	}
    	else
    	echo "<script type='text/javascript'>alert('Nome Utente o Email non trovati');</script> <br /><br /><br />";
    	echo"<h3><center> Nome Utente o Email non trovati </h3></center>";
    }
    

    ?>
    [/php]
    Chi mi può aiutare a capire il perchè ?
    Ah dimenticavo mi da l'errore della variabile indefinita...

    Notice: Undefined variable: user
    Notice: Undefined variable: mail


  • ModSenior

    Ciao infosicurezza,

    ma $user e $mail non mi sembrano definiti da nessuna parte nello script da te postato.


  • User Attivo

    Infatti perchè dopo che è stato eseguito il login l'utente potrà effettuare una ricerca... quindi l'user non dovrebbe essere gia definito ?
    P.s. viene salvato tutto in una variabile di sessione (quando si effettua il login)


  • ModSenior

    Se è in una variabile di sessione non è in $user, ma devi appunto usare la variabile di sessione.


  • User Attivo

    Ma dici nella stampa ??


  • ModSenior

    Nella query.


  • User Attivo

    Allora seguendo il tuo consiglio, cioè facendo in questo modo
    [php]
    $query = mysql_query("SELECT user FROM utenti WHERE user = '$_SESSION[login]'");
    $login = mysql_fetch_array($query);
    if(mysql_num_rows($query) == 1)
    {
    $id = mysql_fetch_array($query);
    print "$_SESSION[login]";
    }
    else
    echo "<script type='text/javascript'>alert('Nome Utente o Email non trovati');</script> <br /><br /><br />";
    echo"<h3><center> Nome Utente o Email non trovati </h3></center>";
    [/php]
    il nome viene cercato e stampato... però mi stampa anche il messaggio di errore "Nome utente o email non trovati... quindi l'else dell'if lo esegue sempre...
    poi mettiamo caso io voglia fare una ricerca tramite email, oppure tramite nome (come sto facendo) e voglio stampare i vari campi.... come faccio se non stanno salvati nella variabile di sessione ?? con un foreach ?

    P.s. poi inserendo la variabile di sessione nella ricerca se metto un'altro nome stampa sempre il nome dell'utente connesso... e non ci troviamo!