Php e My Sql Area ristretta con password

  • Creatore Discussione Creatore Discussione Sargon
  • Data di inizio Data di inizio

Sargon

Utente Attivo
22 Mar 2012
45
0
0
Ciao a tutti! devo creare un login che mi dia accesso ad una pagina php del mio sito, chiamata insert_record.php, ho provato ha creare il codice ma non funziona proprio...
Mi potete dare una mano a capire dove diavolo ho sbagliato? graaasssie!!

PHP:
<?php




if (isset($_REQUEST['attempt']))
{


   
   $link = mysql_connect('localhost','',') or die ('Cant connect to database');
   mysql_select_db('');
   
   
      $user = mysql_real_escape_string($_POST['user']);
   $password = sha1(mysql_real_escape_string($_POST['password']));
   
   $query = mysql_query("
           SELECT user
		   FROM users
		   WHERE user = '$user'
		   AND password ='$password'
		   ") or die(mysql_error());
 
           $total = mysql_num_rows($query);
		   
		   if ($total > 0)
		   {
		   session_start();
		   $_SESSION['user'] = 'bleah';
		   header('location: insert_record.php');
		   }
		   else
		   {
		   // do nothing.
		   }
}
?>


<form method="post" action="LOGIN.php?attempt">
 User <input type="text" name="user" /><br/>
 Pass <input type="password" name="password"/><br/>
 <input type="submit"/>
 
Ciao,

qui manca un apice

PHP:
$link = mysql_connect('localhost','',')

correggi cosi
PHP:
$link = mysql_connect('localhost','','')

dimenticavo ci vuole anche l'username

PHP:
$link = mysql_connect('localhost','root','')
 
innavertitamente avevo cancellato gli apici nell'inserimento del messaggio.. ma nella prova che ho fatto gli avevo messi, in poche parole quando faccio il collegamento ed inserisco user e password mi rimanda ad

<LOGIN.php?attempt>

non dovrebbe mandarmi invece

ad insert_record.php?
 
ciao
spsota intanto l'istuzione
session_start();
alla prima riga
poi l'istruzione header deve venire prima di qualsiasi output html e il form è un output, salvo modifica del flusso
se poi stai lavorando form piu verifica pass nella stessa pagina metti
PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
inoltre a cosa ti serve quella querystringa
LOGIN.php?attempt
senza alcun valore da trasmettere?
 
Ti consiglio inoltre di separare la query in modo da poterla stampare a video
PHP:
 $query = "SELECT user
                    FROM users
                    WHERE user = '$user'
                    AND password ='$password'";
    $result = mysql_query($query);
    echo $query;

probabilmente non ti restituisce nessun record.
Al massimo incollala nel SQL di phpmyadmin e verifica il risultato
 
Invece di semplici messaggi di errore, almeno in sviluppo sarebbe meglio utilizzare mysql_error() in modo da visualizzare l'output dell'eccezione.
 

Discussioni simili