-
Problema login
Salve... purtroppo non riesco ad eseguire la query per fare il login:
potete aiutarmi ?
ecco i codici
login.php
Codice PHP:
<?php
@require("../config.php");
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$user = stripslashes($_POST['username']);
$password = md5(stripslashes($_POST['password']));
echo "<script>console.log(' $user $password');</script>";
if(!empty($user) && !empty($password))
{
//$query="SELECT * FROM `$random` WHERE surname='$user' AND password='$password'";
$query = "SELECT * FROM $random WHERE surname='$user' AND password='$password'";
echo "<script>console.log(\" Queri eseguita: $query\");</script>";
$sql =mysql_query($query, $conn);
if($sql)
{
echo "<script>console.log(' Queri eseguita: $sql');</script>";
$num = mysql_num_rows($sql);
echo "<script>console.log(' Valori trovati: $num');</script>";
if($num==1)
{
session_start();
$_SESSION['username'] = $user;
if(isset($_SESSION['username'])){
header("location: manage.php");
}
}
}else
{
echo "<script>console.log(' Queri non eseguita: $sql');</script>";
}
} /*if*/
else
{
echo "<script>window.location = '#error';</script>";
}/* if */
}
config.php
Codice PHP:
<?php
$conn = mysqli_connect('localhost','nome','password','nomeDB');
$random=210;
?>
Questa è la pagina di login:
Codice HTML:
<div class="container row" >
<form class="col s12 m7 l7 offset-s0 offset-m3 offset-l3 card" method="post" action="login.php">
<div class="row">
<div class="input-field col s12">
<input type="text" id="username" placeholder="Username" name="username" class="valid">
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input type="password" id="password" name="password" placeholder="Password" class="valid">
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input type="submit" id="submit" name="submit" value="Accedi" class="valid">
</div>
</div>
</form>
</div>
-
Cosa scrivono le console.log?
Comunque config.php ti connetti con mysqli, invece nel codice usi le vecchie funzioni mysql.
Inoltre mi sembra che il nome di una tabella non possa iniziare con una cifra numerica ($random). L'hai creata la tabella?
Ciao!
-
ciao scusa, stavo facendo diverse prove e avevo provato ad usare le mysql al posto delle mysqli
login.php
Codice PHP:
<?php
@require("../config.php");
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$user = stripslashes($_POST['username']);
$password = md5(stripslashes($_POST['password']));
echo "<script>console.log(' $user $password');</script>";
if(!empty($user) && !empty($password))
{
//$query="SELECT * FROM `$random` WHERE surname='$user' AND password='$password'";
$query = "SELECT * FROM $random WHERE surname='$user' AND password='$password'";
echo "<script>console.log(\" Queri eseguita: $query\");</script>";
$sql =mysqli_query($query, $conn);
if($sql)
{
echo "<script>console.log(' Queri eseguita: $sql');</script>";
$num = mysqli_num_rows($sql);
echo "<script>console.log(' Valori trovati: $num');</script>";
if($num==1)
{
session_start();
$_SESSION['username'] = $user;
if(isset($_SESSION['username'])){
header("location: manage.php");
}
}
}else
{
echo "<script>console.log(' Queri non eseguita: $sql');</script>";
}
} /*if*/
else
{
echo "<script>window.location = '#error';</script>";
}/* if */
}
cmq la tabella la riesco a generare anche se ha come nome un numero.
Il messaggi di log li utilizzo per vedere a che punto si blocca il programma... per adesso ciò che appare scritto è:
Navigated to http://localhost:8888/stefano/private/login.php
Queri eseguita: SELECT * FROM 210 WHERE surname='Taffarello' AND password='a26c4a62fae9f0b2f95280a***'
Queri non eseguita:
quindi la prima dicitura "Queri eseguita" mi mostra la stringa che il php dovrà eseguire.. la voce query non eseguita mi dice che non è riuscito ad eseguirla..
-
Ok.
Hai invertito l'ordine dei parametri della mysqli_query(): prima la connessione, poi la stringa che rappresenta la query!
Inoltre, per capire meglio di che errore si tratta (se la query darà errore ancora), dovresti usare la mysqli_error(). Quindi invece di:
Codice PHP:
echo "<script>console.log(' Queri non eseguita: $sql');</script>";
Prova una cosa tipo:
Codice PHP:
echo "<script>console.log(' Queri non eseguita: $sql. Info: ".mysqli_error($conn)."');</script>";
Ciao!
-
si hai ragione che ho invertito, ma nulla non è cambiato niente ahah e il mysql_error non restituisce nulla... in realtà non si legge nemmeno "Info" ahah
ora provo a rifare da capo lo script di login