- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Problema script mysql php
-
Problema script mysql php
Salve a tutti.Nel mio sito ho creato un'area di registrazione-login.Tutto sembra fungere(o perlomeno così pare per le operazioni di registrazione.Quando arrivo alla fase di login qualcosa non va.Ho individuato l'errore mi aiutereste a correggerlo?
[PHP]<?phpsession_start();
include 'db.php';
$username = $_POST['username'];
$password = $_POST['password'];if(!isset($username) || !isset($password)){
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>PHelpP - Php Help for Programmers</title>
<link rel="stylesheet" type="text/css" href="home.css" />
</head>
<body>
<div id="container"><div id="header"> <h1> </h1> </div> <div id="navigation"> <ul> <li><a id="activelink" href="index.php">Home</a></li> <li><a href="/forum">Forum</a></li> <li><a href="guide.php">Guide</a></li> <li><a href="download.php">Applicazioni</a></li> <li><a href="script.php">Script</a></li> <li><a href="creazioni.php">Creazioni</a></li> <li><a href="credits.php">Crediti</a></li> </ul>
<?php include("menu.php"); ?>
</div> <div id="content"> Per piacere inserisci TUTTE le informazioni! <br /> <?php include ("login.php"); exit(); ?> </div> <div id="footer"><?php include("footer.php"); ?></div>
</div>
</body>
</html>
<?php}
$password = md5($password);
$sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'");
//qui c'è l'errore
if($sql){
if ($row = mysql_fetch_array($sql)){
$_SESSION['first_name'] = stripslashes($row['first_name']);
$_SESSION['email_address'] = stripslashes($row['email_address']);
echo "<script type="text/javascript">location.href='sample.php';</script>";
} else die('Problema nel login');// e finisce qui} else {
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>PHelpP - Php Help for Programmers</title>
<link rel="stylesheet" type="text/css" href="home.css" />
</head>
<body>
<div id="container"><div id="header"> <h1> </h1> </div> <div id="navigation"> <ul> <li><a id="activelink" href="index.php">Home</a></li> <li><a href="/forum">Forum</a></li> <li><a href="guide.php">Guide</a></li> <li><a href="download.php">Applicazioni</a></li> <li><a href="script.php">Script</a></li> <li><a href="creazioni.php">Creazioni</a></li> <li><a href="credits.php">Crediti</a></li> </ul>
<?php include("menu.php"); ?>
</div>
<div id="content">
Impossiile effettuare il login! La password o lo username da te inseriti non sono corretti!Riprova!
<br />
<?php include ("login.php"); ?>
</div>
<div id="footer"><?php include("footer.php"); ?></div>
</div>
</body>
</html>
<?php
}
?>[/PHP]
Grazie anticipatamente per l'aiuto che spero mi darete.
-
nn so, la butto li, visto che io l'ho sempre risolta così:
al posto di:
if($sql)fai:
if($sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'"))prova a mettere anche un "echo mysql_error()" dopo la query per vedere se può essere quello.
fammi sapere!
-
Ora è
[PHP]$sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'");
if($sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'")){
if ($row = mysql_fetch_array($sql)){
$_SESSION['first_name'] = stripslashes($row['first_name']);
$_SESSION['email_address'] = stripslashes($row['email_address']);
echo "<script type="text/javascript">location.href='sample.php';</script>";
} else { echo mysql_error();}
} else {...[/PHP]
Però se provo a lloggarmi la pagina che appare è tutta bianca e sarebbe ciò che esce fuori dall'else mysql_error().
Non so come fare..:(
-
se ti esce dal if, vuol dire che nn porta a conclusione la query, nn dice niente se metti mysql_error() nell'else???
-
"SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'"Prova a scrivere così
$query = 'SELECT * FROM users WHERE username="'.$username.'" AND password="'.$password.'" AND activated=1';
$risultato = mysql_query ($query) or die ('Impossibile eseguire la query ::::: '.mysql_error());così, male che vada con la query, sai perchè non te la passa...
inoltre ti consiglio di controllare il tipo di dato "activated", se è un intero o un carattere... l'ho scritto come intero, se è un carattere mettilo in doppi apici "".