-
problema query mysql
vi posto tutto il codice così facciamo prima :)
Codice PHP:
session_start();
include "database.php";
if($_GET['log']=='ok'){
$nickk=$_POST['nick'];
$sql="SELECT * FROM chat WHERE nick='$nickk'";
$query=mysql_query($sql);
$num=mysql_num_rows($query);
$nickn=strlen($_POST['nick']);
if ($_POST['nick']==''){
$risp='<h2> Specificare un Nickname!</h2>';
}else if($nickn<5){
$risp="<h2> Il Nickname deve contenre almeno 5 caratteri!</h2>";
}else if($nickn>13){
$risp="<h2> Il Nickname non può esere più lungo di 13 caratteri!</h2>";
}else if($num==1){
$risp="<h2> Esiste già un utente con questo Nickname!</h2>";
}else{
$time=time()+120;
mysql_query("INSERT INTO chat (id,nick,time) VALUES ('','$nickk','$time')");
$risp="";
header("location: index.php");
}
}
bene... allora questo dovrebbe essere uno script per la convalida di un nickname per una chat, la pagina non da errori solo che la query:
Codice PHP:
mysql_query("INSERT INTO chat (id,nick,time) VALUES ('','$nickk','$time')");
non ha effetto... ho provato a vedere se dava errori con mysql_erorr() ma non risulta nulla... cioè mi fila tuto liscio... tranne che non viene eseguita la query :/
suggerimenti?
-
Aggiungi all'inizio dello script error_reporting(E_ALL), dopo di che controlla anche che il DB sia collegato correttamente.
:wink:
-
ecco il risultato... io non l'ho capito :/
Codice PHP:
Notice: Undefined index: log in /membri/corsoeffe/chat/login.php on line 5
EDIT:
la riga 5 nel codice che ho postato è la terza
-
In pratica dice che nell'URL non esiste alcun parametro log. Hai provato ad inserirlo ed assegnarli il valore ok, dopo di che provare ad eseguire la query?
:wink:
-
non credo sia il problema.... la variabile di sessione get['log'] viene settata da un form html che si trova più sotto nella pagina(il form ricarica la pagina e assegna la variabile di sesione) e poi le altre condizioni dopo la condizione che verifica 'log' le esegue tutte alla perfezione(comprese le query che ci sono prima), solo l'ultima query non viene eseguita :/
-
-
puoi contattarmi in privato?
Mio contatto:
msn: cristaller@hotmail.it
-
corsoeffe, stai chiedendo aiuto, ti si danno le risposte e dire "penso", non è il migliore dei modi per risolvere il problema... Fai dei test, poi nel caso ci dici l'errore e ti aiutamo a risolvere.
Quindi, cerca di risolvere il problema descritto prima, perché la query che NON viene eseguito, si trova all'interno della condizione con il valore di $_GET.
Codice PHP:
if ($_GET['log'] == 'ok')
{
$risp = '';
$nickk = $_POST['nick'];
if (!$nickk)
{
$risp = '<h2> Specificare un Nickname!</h2>';
}
else
{
$sql = "SELECT * FROM chat WHERE nick='{$nickk}'";
$query = mysql_query($sql);
$num = mysql_num_rows($query);
$nickn = strlen($_POST['nick']);
if ($num == 1)
{
$risp = '<h2>Esiste già un utente con questo Nickname!</h2>';
}
else
{
if ($nickn < 5)
{
$risp = '<h2>Il Nickname deve contenre almeno 5 caratteri!</h2>';
}
else if ($nickn > 13)
{
$risp = '<h2>Il Nickname non può esere più lungo di 13 caratteri!</h2>';
}
else
{
$time = time() + 120;
mysql_query("INSERT INTO chat (id,nick,time) VALUES ('','$nickk','$time')") or die('Error: ' . mysql_error());
header("location: index.php");
}
}
}
}
Le condizioni non avevano un ordine logico e le ho modificate in modo che ne abbiano.
In secondo luogo, vedrai che se invii il form, nell'URL c'è il parametro log=ok e il nick rispetta gli standards, la query verrà eseguita.
:wink:
-
Grazie mille! ora funziona tutto :)