- Home
- Categorie
- Coding e Sistemistica
- Coding
- Ricerca nel Database
-
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
-
Ciao infosicurezza,
ma $user e $mail non mi sembrano definiti da nessuna parte nello script da te postato.
-
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)
-
Se è in una variabile di sessione non è in $user, ma devi appunto usare la variabile di sessione.
-
Ma dici nella stampa ??
-
Nella query.
-
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!