Nach Login Tutorial Fehler: You have an error in your SQL syntax; check the manual...

Neo2400

Mitglied
Hi Leute. Hab grad das schöne Login-Tutorial mit MYSQL nachgemacht,
( http://www.tutorials.de/forum/php-tutorials/289098-login-mit-php-und-mysql.html )

Soweit auch gut verstanden!
Jetzt bekomm ich die Fehlermeldung:

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

Die kommt genau dann, wenn ich mich mit den korrekten Daten eingeloggt hab.

Hier der Code:

Code:
<?php
##$pfad = "index.php?site=$site";
##session_start(); // Probleme?
echo "<div id='caption1'>Interner Bereich</div>";

include("sessionhelpers.inc.php");

if (isset($_POST['login']))
{

    $userid=check_user($_POST['username'], $_POST['userpass']);
    if ($userid!=false) {
    login($userid);
    echo mysql_error();
    }

    else
        echo "Ihre Anmeldedaten waren nicht korrekt!";
}

if (!logged_in())

echo '

<div id="caption2">Login<br></div>

<form method="post" action="admin.php">
 <table border="0" cellpadding="3" celllspacing="0">
  <tr>
      <td class="h-rechts">Benutzername: </td>
      <td><input type="text" name="username" size="25"></td>
  </tr>
  <tr>
      <td class="h-rechts">Passwort: </td>
      <td><input type="password" name="userpass" id="userpass" size="25"></td>
  </tr>
  <tr>
  <td></td>
   <td><input type="submit" name="login" id="login" value="Einloggen"</td>
  </tr>
</table>
</form>
';

else
{
    echo "Login erfolgreich! Willkommen ".$_POST['username']."!";
    echo '<a href="logout.php">Ausloggen</a>';
}


echo '<p /><a href=logged_in.php">Check</a>';

?>


Das ganze Script hab ich in meine Mehrfachseite integriert (index.php?action=admin usw....)
Jetzt hab ich die admin.php Datei einzeln ausgeführt und es dementsprechend angepasst. Dennoch bekomm ich ein und dieselbe Fehlermeldung. Ich weis echt net was in Zeile 3 falsch sein soll oder wo der Fehler liegt!
 
Die Datenbankabfrage schlug fehl. Lass dir mal direkt danach die MySQL-Fehlermeldung (mysql_error()-Funktion) ausgeben.
 
Wo genau muss ich den mysql_error() ausgeben?

Habe ihn ja im moment an der Stelle, nachdem er die Funktion "login()" aufruft.
Und dann hat er halt diesen Fehler ausgegeben, der oben schon steht...You have an error.....
 
Der Fehler wird doch schon ausgegeben, schöner wäre zu wissen bei welchem DB Zugriff der Fehler ausgegeben wird. Sieht so aus als sei eine dem SQL String übergebene Variable leer. Das evtl. mal checken...
 
Da liegt doch die Fehlerausgabe *G*
Hab das ganze jetzt überprüft. Ich bekomme den Wert 1 zurück, wenn ich mich mit den korrekten Daten einlogge.
Also die Verbindung zur Datenbank besteht also!

Nur kann ich immer noch nix anfangen mit "syntax to use near '' at line 3"....

Ist vielleicht hier irgendwas falsch bei den Variablen und der Zeichensetzung?

Code:
<?php

function connect()
{include("server.php");
$con = mysql_connect($host,$user,$pw) or die(mysql_error());
mysql_select_db($db,$con) or die(mysql_error());
}


function check_user($name,$pass)
{
 $sql="SELECT UserID FROM users WHERE UserName='".$name."' AND UserPass=MD5('".$pass."') LIMIT 1";
 $result = mysql_query($sql) or die (mysql_error());

 if (mysql_num_rows($result)==1)
 {
     $user = mysql_fetch_assoc($result);
     return $user['UserID'];
 }
 else
     return false;
}

function login($userid)
{
$sql = "UPDATE users
       SET UserSession='".session_id()."'
       WHERE UserID=".$$userid;
       mysql_query($sql);
}

function logged_in()
{
         $sql = "SELECT UserID FROM users WHERE UserSession ='".session_id()."' LIMIT 1";
         $result = mysql_query($sql);
                   return ( mysql_num_rows($result)==1);
}

function logout()
{
$sql = "UPDATE users
       SET UserSession=NULL
       WHERE UserSession='".session_id()."'";
       mysql_query($sql);
}

connect();
?>

---------
Fehler gefunden, war ein $ zuviel in der function login();
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück