Guten Morgen,
ich habe 1-2 Fragen zu einen Logonscript was ich bei mir einsetze. Ich werde erstmal kurz die Dateien posten:
Das Script so funktioniert in Moment! Ich glaube sogar das stammt ursprünglich von hier...
Das ist die login.php
Hier ist die session.php die jede Seite schützen soll:
Hier die logout.php
Und zum schluss die wo die funktionen drin sind. login_funktionen.php
So, jetzt habe ich das Problem, wenn man auf der Loginseite keine Daten oder falsche Daten eingibt dann erscheint nur die Logonseite nochmal. Es es sollte ja eigentlich "../index_01.php?pw=false" aufgerufen werden.
Verstehe ich das richtig? Weil er bekommt doch von der Funktion check_user() den Wert "False" übermittelt.
Habe auch schon mit einer Bedingung in der Funktion check_user() versucht den $name == "" zu prüfen.
Wenn ja dann return ( false );
Das nimmt er nicht.
Zum anderen habe ich bei meinen alten Loginscript was sehr einfach war mittels der Session noch ein paar daten übermittelt
$_SESSION["nickname"] = $_POST['nick'];
$_SESSION["db_id"] = $userid;
Somit konnte ich auf diese Werte von jeder Seite aus zugreifen. Möchte jetzt aber nicht so viel in die Session schreiben.
Was gibt es auser GET noch für eine alternative die 2 Werte irgendwie mit in jede Seite zu übernehmen.
Was haltet ihr von den Loginscript? Ich hatte vorher ein einfaches von: LINK
Sorry für den vielen Text aber mache mir halt gedanken für ein schönes Loginscript!
Danke schon einmal im vorraus für eure Antworten.
Gruß,
David
ich habe 1-2 Fragen zu einen Logonscript was ich bei mir einsetze. Ich werde erstmal kurz die Dateien posten:
Das Script so funktioniert in Moment! Ich glaube sogar das stammt ursprünglich von hier...
Das ist die login.php
PHP-Code:
<?php
session_start();
include_once('../config/login_funktionen.php');
if ( isset($_POST['login']) )
{
$userid = check_user($_POST['nick'], $_POST['pw']);
if ($userid!=false)
{
login($userid);
$_SESSION["nickname"] = $_POST['nick'];
$_SESSION["db_id"] = $userid;
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
}
else
{
echo "<script LANGUAGE=\"JavaScript\">";
echo "top.index.location.href='../index_01.php?pw=false'";
echo "</script>";
}
}
if ( !logged_in() ) // Wenn nicht eingeloggt
{
echo "<script LANGUAGE=\"JavaScript\">";
echo "top.index.location.href='../index_01.php?pw=false'";
echo "</script>";
}
else
{
echo "<script LANGUAGE=\"JavaScript\">";
echo "top.index.location.href='../home.php'";
echo "</script>";
}
?>
PHP-Code:
<?php
session_start();
include_once('login_funktionen.php');
if ( !logged_in() )
{
if (strstr($_SERVER['REQUEST_URI'], 'config') == true)//Prüfen ob sich der Server noch im Ordner "Config" befindet oder nicht
{
echo "<script LANGUAGE=\"JavaScript\">";
echo "top.index.location.href='index_01.php?login=no'";
echo "</script>";
exit;
}
else
{
echo "<script LANGUAGE=\"JavaScript\">";
echo "top.index.location.href='index_01.php?login=no'";
echo "</script>";
exit;
}
}
else
{
$user_login = $_SESSION["nickname"];
$user_id = $_SESSION["db_id"];
}
?>
PHP-Code:
<?php
session_start();
include_once('../config/login_funktionen.php');
if ( !logged_in() )
{
echo "<script LANGUAGE=\"JavaScript\">";
echo "top.location.href='../'";
echo "</script>";
}
echo "<script LANGUAGE=\"JavaScript\">";
echo "top.location.href='../'";
echo "</script>";
logout();
?>
PHP-Code:
<?php
function connect ()
{
$con = mysql_connect('localhost', 'root', 'root') or exit(mysql_error());
mysql_select_db('eventpage', $con) or exit(mysql_error());
}
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 % und _
$name = str_replace('%', '\%', $name);
$name = str_replace('_', '\_', $name);
$sql = 'SELECT id FROM event_user_login WHERE nick = \'' . $name . '\' AND pw = \'' . md5($pass) . '\'';
if ( !$result = mysql_query($sql) ) {
exit(mysql_error());
}
if ( mysql_num_rows($result) == 1 ) {
$user = mysql_fetch_assoc($result);
return ( $user['id'] );
} else {
return ( false );
}
}
function login ( $userid )
{
$sql = 'UPDATE event_user_login SET UserSession = \'' . session_id() . '\' WHERE id = ' . ((int)$userid);
if ( !mysql_query($sql) ) {
exit(mysql_error());
}
}
function logged_in ()
{
$sql = 'SELECT id FROM event_user_login WHERE UserSession = \'' . session_id() . '\'';
if ( !$result = mysql_query($sql) ) {
exit(mysql_error());
}
return (mysql_num_rows($result) == 1);
}
function logout ()
{
$sql = 'UPDATE event_user_login SET UserSession = NULL WHERE UserSession = \'' . session_id() . '\'';
if ( mysql_query($sql) ) {
exit(mysql_error());
}
}
connect();
?>
So, jetzt habe ich das Problem, wenn man auf der Loginseite keine Daten oder falsche Daten eingibt dann erscheint nur die Logonseite nochmal. Es es sollte ja eigentlich "../index_01.php?pw=false" aufgerufen werden.
Verstehe ich das richtig? Weil er bekommt doch von der Funktion check_user() den Wert "False" übermittelt.
Habe auch schon mit einer Bedingung in der Funktion check_user() versucht den $name == "" zu prüfen.
Wenn ja dann return ( false );
Das nimmt er nicht.
Zum anderen habe ich bei meinen alten Loginscript was sehr einfach war mittels der Session noch ein paar daten übermittelt
$_SESSION["nickname"] = $_POST['nick'];
$_SESSION["db_id"] = $userid;
Somit konnte ich auf diese Werte von jeder Seite aus zugreifen. Möchte jetzt aber nicht so viel in die Session schreiben.
Was gibt es auser GET noch für eine alternative die 2 Werte irgendwie mit in jede Seite zu übernehmen.
Was haltet ihr von den Loginscript? Ich hatte vorher ein einfaches von: LINK
Sorry für den vielen Text aber mache mir halt gedanken für ein schönes Loginscript!
Danke schon einmal im vorraus für eure Antworten.
Gruß,
David
Kommentar