PHP aiuto stringa di codice php

Stato
Discussione chiusa ad ulteriori risposte.

XxidroxX

Utente Gold
22 Aprile 2011
609
64
40
226
ciao a tutti creando pagine php mi imbatto in un errore.
IN pratica sto creandi (per esercizio) uno script di login solo che non va!:
Codice:
$row = mysql_fetch_assoc(mysql_query("SELECT * FROM utenti WHERE password='".md5($password)."'"));
if($row['password'])
{
questa è la parte interessata, mettendo i dati giusti non me li riconosce .
Sapete come mai non va?
Ho dichiarato la $password prima ;)
 
Codice:
$qx = mysql_query("SELECT * FROM utenti WHERE password='".md5($password)."' AND username='$username'");
if(mysql_num_rows($qx)==1){
{ loggato }else{ sloggato }
Conta il risultato della query e confronta anche l'username
 
stavolta vedo pagina bianca nell'index.
Posto tutto il codice così è meglio:
Codice:
<?php
include_once('includes/config.php');
include_once('includes/database.php');
if (isset($_POST['submit']))
{
$username=$_POST['username'];
$password=$_POST['password'];
if(!empty($username) && !empty($password)) {                                                                       
$qx = mysql_query("SELECT * FROM utenti WHERE password='".md5($password)."' AND username='$username'");
if(mysql_num_rows($qx)==1){
{
session_start();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
echo "Stai per essere indirizzato al gioco";
header('refresh: 1; url='.$link);
} else { echo "problema"; }
} else { echo "problema2"; }
}
?>
 
Il codice che hai postato non è completo.
Il problema si risolve semplicemente facendo il tracing delle variabili.
Stampa ad ogni modifica di una variabile il suo valore con echo e controlla se il valore è quello che ti aspettavi.
 
Ultima modifica:
stavolta vedo pagina bianca nell'index.
Posto tutto il codice così è meglio:
Codice:
<?php
include_once('includes/config.php');
include_once('includes/database.php');
if (isset($_POST['submit']))
{
$username=$_POST['username'];
$password=$_POST['password'];
if(!empty($username) && !empty($password)) {                                                                       
$qx = mysql_query("SELECT * FROM utenti WHERE password='".md5($password)."' AND username='$username'");
if(mysql_num_rows($qx)==1){
{
session_start();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
echo "Stai per essere indirizzato al gioco";
header('refresh: 1; url='.$link);
} else { echo "problema"; }
} else { echo "problema2"; }
}
?>
L'errore sta nella dichiarazione di questo if
if(mysql_num_rows($qx)==1){
{ Rimuovi una delle 2 parentesi graffe e funzionerà :asd:

Nota di sicurezza:
dichiara username e password cosi addslashes(stripslashes($_POST['var']))
 
Stato
Discussione chiusa ad ulteriori risposte.