Hallo Leute ich hab im Inet ein Login Script mit PHP und MYSQL gefunden,
nur leider kommt immer ein Fehler:
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 '. session_id() . ''' at line 1
Die MYSQL ist auf Version 5.5.25a. (Xampp)
Finde leider denn fehler nicht. Wäre gut wenn mir jemand sagen könnte wie es Funktioniert.
Hier noch die PHP Codes:
login.php
logout.php
sessionhelpers.inc.php
Seiten die geschützt werden sollen:
nur leider kommt immer ein Fehler:
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 '. session_id() . ''' at line 1
Die MYSQL ist auf Version 5.5.25a. (Xampp)
Finde leider denn fehler nicht. Wäre gut wenn mir jemand sagen könnte wie es Funktioniert.
Hier noch die PHP Codes:
login.php
PHP:
<?php
session_start();
include_once('sessionhelpers.inc.php');
if ( isset($_POST['login']) ) {
$userid = check_user($_POST['username'], $_POST['userpass']);
if ( $userid ) {
login($userid);
} else {
echo '<p>Ihre Anmeldedaten waren nicht korrekt!</p>';
}
}
if ( !logged_in() ) {
echo <<<END
<form method="post" action="login.php">
<label>Benutzername:</label> <input name="username" type="text"><br />
<label>Passwort:</label> <input name="userpass" type="password" id="userpass"><br />
<input name="login" type="submit" id="login" value="Einloggen">
</form>
END;
} else {
echo '<p><a href="soll-geschuetzt-werden.php">Testseite</a></p>';
echo '<p><a href="logout.php">Ausloggen</a></p>';
}
?>
logout.php
PHP:
<?php
session_start();
include_once('sessionhelpers.inc.php');
echo '<p>Sie sind ';
if ( !logged_in() ) {
echo 'nicht ';
}
echo 'eingeloggt.</p>';
logout();
echo '<p>Sie sind ';
if ( !logged_in() ) {
echo 'nicht ';
}
echo 'eingeloggt.</p>';
echo '<p><a href="login.php">Einloggen</a></p>';
?>
sessionhelpers.inc.php
PHP:
<?php
/**
* @return void
*/
function connect () {
mysql_connect ("localhost","root", "") or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
mysql_select_db("nate") or die ("Problem mit der Datenbankverbindung");
}
/**
* @param string $name
* @param string $pass
* @return boolean
*/
function check_user ( $name, $pass ) {
// magic quotes anpassen
if ( get_magic_quotes_gpc() ) {
$name = stripslashes($name);
$pass = stripslashes($pass);
}
// escapen von \, x00, n, r, , ', " und x1a
$name = mysql_real_escape_string($name);
// escapen von Backticks (`)
$name = preg_replace('/x60/', '\x60', $name);
// escapen von % und _
$name = str_replace('%', '%', $name);
$name = str_replace('_', '_', $name);
$sql = "SELECT UserId FROM users WHERE UserName = '' . $name . '' AND UserPass='' . md5($pass) . ''";
if ( !$result = mysql_query($sql) ) {
exit(mysql_error());
}
if ( mysql_num_rows($result) == 1 ) {
$user = mysql_fetch_assoc($result);
return ( $user['UserId'] );
} else {
return ( false );
}
}
/**
* @param int $userid
* @return void
*/
function login ( $userid ) {
$sql = "UPDATE users SET UserSession = '' . session_id() . '' WHERE UserId = ' . ((int)$userid)";
if ( !mysql_query($sql) ) {
exit(mysql_error());
}
}
/**
* @return boolean
*/
function logged_in () {
$sql = "SELECT UserId FROM users WHERE UserSession = '' . session_id() . ''";
if ( !$result = mysql_query($sql) ) {
exit(mysql_error());
}
return (mysql_num_rows($result) == 1);
}
/**
* @return void
*/
function logout () {
$sql = "UPDATE users SET UserSession = NULL WHERE UserSession = '' . session_id() . ''";
if ( mysql_query($sql) ) {
exit(mysql_error());
}
}
connect();
?>
PHP:
<?php
session_start();
include_once('sessionhelpers.inc.php');
echo 'Sie sind ';
if ( !logged_in() ) {
echo 'nicht ';
}
echo 'eingeloggt.<p />';
if ( !logged_in() ) {
echo '<p><a href="login.php">Anmelden</a></p>';
}
if ( logged_in() ) {
echo '<p>Geschützter Bereich</p>';
echo '<p><a href="logout.php">Ausloggen</a></p>';
}
?>