Headymaster
Erfahrenes Mitglied
Hallo!
Also habe für meine Seite ein Registratios, sowie ein Loginscript.
Also die registration:
Login:
Und auszug aus Script.... der überprüft, ob eine Seesion gesetzt ist, also der User eingeloggt ist oder net und dem zufolge den Login anzeigt oder das User_Menu:
So es gibt 2 Probleme.
1. Wenn ich dden Registerlink aufrufen will.....also index.php?id=1&do=register.....dann sagt er mir dass der Login fehlgeschlagen ist obwohl ich kein Login ausgeführt ahabe sonder nur zum Registerformular will....aber ich komme net hin.....
2. wenn ich mich einlogge, dann sagt er mir zwar der Login wäre erfolgreich gewesen und leitet mich auf die hauptseite weiter....aber der switch von der Loginanzeige zur User_Menu Anzeige funktioniert nicht...sprich es wird immer noch angezeigt, dass man net eingeloggt ist, also ein Formular ist noch da über das man sich einloggen kann.
Habt ihr Fehler gefunden oder irgend ne Idee woran es liegen könnte?
Würde mich über Hilfe freuen.
MFG Niels
Also habe für meine Seite ein Registratios, sowie ein Loginscript.
Also die registration:
PHP:
<?php
if ($_GET['do'] == "register")
{
// Mit if(isset) prüfenm, ob der "senden-Button" gedrückt wurde und dann alle Formulardaten überprüfen
if(isset($_POST['register']))
{
if(empty($_POST['login_name']) OR empty($_POST['nickname']) OR empty($_POST['password']) OR empty($_POST['password_2'])
OR empty($_POST['email1']) OR empty($_POST['email1_2']))
{
$fehler = "Sie haben nicht alle Felder ausgefüllt!";
}
else
{
if($_POST['password'] === $_POST['password_2'])
{
// Hier nen captcha einbauen
if($_POST['email1'] === $_POST['email1_2'])
{
if (preg_match("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$^", $_POST['email1']))
{
// User in die Datenbank schreiben
$user_add_task = ("INSERT INTO user
(login_name, nickname, password, email1, status)
VALUES
('".mysql_real_escape_string($_POST['login_name'])."',
'".mysql_real_escape_string($_POST['nickname'])."',
'".md5($_POST['password'])."',
'".mysql_real_escape_string($_POST['email1'])."',
'inactive')");
$user_add = mysql_query($user_add_task);
// Wenn das schreiben der daten in die Datenbank erfolgreich war, dem User eine Mail schicken mit bestätigungscode usw.
if(!$user_add)
{
$fehler = mysql_error();
}
else
{
// Mail senden mit zugangsdaten und Aktivierungslink
$message = "Vielen Dank für die Registration!";
$reg_mail = mail($_POST['email1'], "Zugangsdaten", $message, "From:nilson");
if(!$reg_mail)
{
$fehler = "Zugangsdaten konnten nicht gesendet werden. Bitte kontaktieren Sie einen Admin!";
}
else
{
// Weiterleitung nach erfolgreicher Registration
$_GET['fehler'] = 2;
include("error/index.php");
$fehler = showtpl("error/error_msg", array("CSS" => "inc/templates/css/css.css",
"msg" => "$error_msg",
"redirect_url" => "index.php?id=3&do=news_show"));
}
}
}
else
{
$fehler = "Die angegebene eMail-Adresse ist ungültig!";
}
}
else
{
$fehler = "Die eMail-Adressen stimmen nicht überein!";
}
}
else
{
$fehler = "Die Passwörter stimmen nicht überein!";
}
}
}
$index = showtpl("user/register", array("CSS" => "inc/templates/css/css.css",
"fehler" => "$fehler"));
}
?>
Login:
PHP:
<?php
if($_POST['do'] = "login")
{
session_start();
$loginuser = "SELECT id, login_name, password FROM user WHERE login_name='".mysql_real_escape_string($_POST['login'])."' AND
password='".md5($_POST['password'])."'";
$logindo = mysql_query($loginuser);
$loginwrite = mysql_num_rows($logindo);
if($loginwrite > 0)
{
// Session-Variablen übergeben
$_SESSION['user_id'] = $loginwrite['id'];
$_SESSION['user_login'] = $loginwrite['login_name'];
$_SESSION['user_pwd'] = $loginwrite['password'];
session_write_close();
$_GET['fehler'] = 3;
include("error/index.php");
$index = showtpl("error/error_msg", array("CSS" => "inc/templates/css/css.css",
"msg" => "$error_msg",
"redirect_url" => "index.php?id=3&do=news_show"));
}
else
{
$_GET['fehler'] = 4;
include("error/index.php");
$index = showtpl("error/error_msg", array("CSS" => "inc/templates/css/css.css",
"msg" => "$error_msg",
"redirect_url" => "index.php?id=3&do=news_show"));
}
}
?>
Und auszug aus Script.... der überprüft, ob eine Seesion gesetzt ist, also der User eingeloggt ist oder net und dem zufolge den Login anzeigt oder das User_Menu:
PHP:
<?php
// funktion zum Überprüfen des cookies oder der Session-Variablen
function checkuser()
{
if(isset($_SESSION['user_id']) && isset($_SESSION['user_pwd']))
{
$checkuserlevel = mysql_query("SELECT rights FROM user
WHERE
id = '".$_SESSION['user_id']."'
AND password = '".$_SESSION['user_pwd']."'");
$userlevel = mysql_fetch_assoc($checkuserlevel);
return $userlevel['level'];
}
else
{
return false;
}
}
//.......weiterer PHP CODE
// UserNavigation auslesen oder Loginbereich laden
if (checkuser() >= "1")
{
$user_menu = showtpl("index/user", array("CSS" => "inc/templates/standard/css/css.css",
"Title" => "$title",
"u_lobby" => "index.php?id=23",
"u_lobby_n" => "UserLobby",
"u_profil" => "index.php?id=abc",
"u_profil_n" => "UserProfil",
"u_admin" => "index.php?id=!!",
"u_admin_n" => "AdminPanel"));
}
else
{
$user_menu = showtpl("index/login", array ("CSS" => "inc/templates/standard/css/css.css",
"lostpw" => "index.php?id=1&do=lostpw",
"register" => "index.php?id=1&do=register"));
}
?>
So es gibt 2 Probleme.
1. Wenn ich dden Registerlink aufrufen will.....also index.php?id=1&do=register.....dann sagt er mir dass der Login fehlgeschlagen ist obwohl ich kein Login ausgeführt ahabe sonder nur zum Registerformular will....aber ich komme net hin.....
2. wenn ich mich einlogge, dann sagt er mir zwar der Login wäre erfolgreich gewesen und leitet mich auf die hauptseite weiter....aber der switch von der Loginanzeige zur User_Menu Anzeige funktioniert nicht...sprich es wird immer noch angezeigt, dass man net eingeloggt ist, also ein Formular ist noch da über das man sich einloggen kann.
Habt ihr Fehler gefunden oder irgend ne Idee woran es liegen könnte?
Würde mich über Hilfe freuen.
MFG Niels