[ERRORE] Resource id #8

Cosa è questo errore che non lo mai visto:

Resource id #8You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #8' at line 1

Sto faccendo solo un controllino se l'utente esiste o non esiste e stampo la scritta " utente e password non validi".

Bo. non so come fare il controllo me potete aiutarmi ?.

grazie.

user_reg, è lo stato attivo o non attivo.

ecco il codice:

<?php

include("inc.php");

if($_POST['submit'])
{if($_POST['somma'] == $_SESSION['add1'] + $_SESSION['add2']) {


   $username = $_POST['username'];
   $password = $_POST['password'];
      
      $sql = mysql_query("SELECT * " .
            "FROM user " .
            "WHERE user_username = '$username' " .
            "AND user_password = '$password' " .
            "AND user_reg = 1 ");
   echo $sql;
      
      $query = mysql_query($sql) or die(mysql_error());
      $row = mysql_fetch_array($query); 
      if (!is_array($row))
         {
            echo "Oops! Non trovato username e password!";
   
         }else{   
               $_SESSION['log'] = 1;
               $_SESSION['username'] = $row['user_username'];

      
   }
         }else {
      echo 'Somma errata';
   }
}else{
   $_SESSION['add1'] = rand(1,100);
   $_SESSION['add2'] = rand(1,100);
   ?>
<script language="JavaScript">

function validazione(){
with(document.modulo) {
   if(username.value=="") {
   alert("Inserire il nome");
   username.focus();
   return false;
   }
   if(password.value=="") {
   alert("Inserire la password");
   password.focus();
   return false;
   }
}
alert("Il modulo è completo, grazie");
return true;
}   </script>   

<form action="<?=$_SERVER['PHP_SELF']?>" method="post" name="modulo"  onSubmit="return validazione();">
<p>Username: <input type="text" name="username" /></p>
<p>Password:<input type="text" name="password" /></p>
<p><?php echo $_SESSION['add1'], " + ", $_SESSION['add2'], " = "?> <input type="text" name="somma" /></p>
<input type="submit" name="submit" value="login" />
</form>
<?php }
mysql_close($con); ?>
inviato 8 anni fa
luigi
modificato 8 anni fa
X 0 X

La query mi sembra corretta, quindi non ho idea su dove sia l'errore di sintassi dello statement SQL.

Comunque quel codice è a rischio SQL Injection! Infatti passi i dati direttamente da $_POST nella query

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

La query mi sembra corretta, quindi non ho idea su dove sia l'errore di sintassi dello statement SQL.

Comunque quel codice è a rischio SQL Injection! Infatti passi i dati direttamente da $_POST nella query

 :bye:

si ma c'è un modo diverso per fargli dire che l'utente e password non esistono?

ma un if e else può starci?.

se si , mi protesti fare un'esempio.

per l'SQL injection . quel codice ora è una prova.

ma poi metto lo script che ho trovato qui:

http://antirez.com/post/33

ed te lo riporto qua: (Questo va bene per diffendersi da SQL Injection?.

function mysqlCreateQuery() {
    return mysqlCreateQueryVector(func_get_args());
}

function mysqlCreateQueryVector($argv)
{
    # Build the query escaping where needed
    $argc = count($argv);
    $q = $query;
    for ($i = 0; $i < $argc; $i++) {
        if ($i&1) {
            if (is_array($argv[$i])) {
                $aux = "";
                foreach($argv[$i] as $x)
                    $aux .= "'".mysql_escape_string($x)."',";
                $q .= trim($aux,",");
            } else {
                $q .= "'".mysql_escape_string($argv[$i])."' ";
            }
        } else {
            $q .= $argv[$i];
        }
    }
    return $q;
}
risposto 8 anni fa
luigi
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda