|
|
User gesamt
|
:
|
2393939
|
User online
|
:
|
2
|
|
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
|
|
|
|
MyWebsolution.de Foren » Workshops » Loginskript Bitte um Hilfe!!!
Seite:
|
1
2
>
|
Posts pro Seite: 5
10
20
|
Autor
|
Thread
|
28.04.2009 21:24 Uhr
|
Loginskript Bitte um Hilfe!!!
|
hagen1977
|
Forenuser
|
|
registriert
|
27.04.2009
|
wohnt in
|
Hamburg
|
Beiträge
|
13
|
|
hi, ich bins nochmal... also erstmal ein großes lob für das login skript,toll das das hier so ausführlich behandelt wird!! aber leider komme ich nicht weiter und muss euch nochmal nerven ich habe gesehen das es hier im forum schon mal angesprochen wurde aber irgendwie werde ich daraus nicht schlau, bin mit meinen programmier kenntnissen am ende.
folgendes, ich habe mir soweit meine homepage eingerichtet mit dem loginskript und funktioniert soweit ganz gut, aber was ich noch nicht verstehe ist wie ich wenn ich mich eingeloggt habe unter login.php, sie haben sich erfogreich eingeloggt, weiter komme dann auf meine geschützten seiten?! hab zb das skript profil bearbeiten mit in meine seite eingefügt und dort kommt die nachricht sie sind nicht eingeloggt normalweise ist es ja so das wenn man sich einloggt, das man in einen geschützen bereich kommt wie zb profil bearbeiten weiß aber nicht wie ich das behandelt soll, hoffe ihr versteht das was ich meine, danke schon mal im voraus.....
|
|
|
29.04.2009 00:53 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Hallo hagen,
mach mal bitte eine Testausgabe via
var_dump($_SESSION);
um zu testen, ob der Wert $_SESSION['UserID'] bei dir gesetzt ist.
|
|
|
29.04.2009 01:16 Uhr
|
|
hagen1977
|
Forenuser
|
|
registriert
|
27.04.2009
|
wohnt in
|
Hamburg
|
Beiträge
|
13
|
|
oh gut, wie mache ich das den... wo muss ich das einfügen, sorry
Dieser Beitrag wurde am 29.04.2009 um 01:23:35 Uhr von hagen1977 zum 1. Mal editiert.
|
|
|
29.04.2009 14:41 Uhr
|
|
hagen1977
|
Forenuser
|
|
registriert
|
27.04.2009
|
wohnt in
|
Hamburg
|
Beiträge
|
13
|
|
ich kann ja nochmal mein skript posten in dem ich das loginskript eingearbeitet habe, vielleicht hilft das ja ob ich alles richtig gemacht habe...
PHP:
session_start ();
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = '********';
$MYSQL_PASS = '********';
$MYSQL_DATA = '********';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
// Prüfen, ob ein Autologin des Users stattfinden muss
if(isset($_COOKIE['Autologin']) AND !isset($_SESSION['UserID'])){
$sql = "SELECT
ID
FROM
User
WHERE
Autologin = '".mysql_real_escape_string($_COOKIE['Autologin'])."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
if(mysql_num_rows($result) == 1)
doLogin($row['ID'], '1');
}
// Online Status der User aktualisieren
if(isset($_SESSION['UserID'])){
$sql = "UPDATE
User
SET
Letzte_Aktion = '".time()."'
WHERE
ID = '".$_SESSION['UserID']."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
}
// User ohne Autologin ausloggen
$sql = "UPDATE
User
SET
SessionID = NULL,
Autologin = NULL,
IP = NULL
WHERE
'".(time()-60*20)."' > Letzte_Aktion AND
Autologin IS NULL
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// Kontrollieren, ob ein automatisch ausgeloggter User noch eine gültige Session besitzt
if(isset($_SESSION['UserID'])){
$sql = "SELECT
SessionID
FROM
User
WHERE
ID = '".$_SESSION['UserID']."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
if(!$row['SessionID']){
$_SESSION = array();
session_destroy();
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="reset.css" media="screen" />
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<title>eTuk - A Dirty Monochrome Community</title>
</head>
<body>
<div id="paper_left">
<div id="paper_right">
<div id="layout_wrapper">
<div id="layout_container">
<div id="layout_content">
<div id="site_title">
<h1><font color="#EAEB9A">Dein eTug Verzeichnis</font> </h1>
<h2>A Dirty Monochrome Community</h2>
</div>
<div id="header_image"></div>
<div class="navigation">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="sounds.php">Sounds</a></li>
<li><a href="videos.php">Videos</a></li>
<li><a href="photos.php">Photos</a></li>
<li><a href="profil.php">Profil</a></li>
<li><a href="logout.php">Logout</a></li>
</ul>
<div class="clearer"> </div>
</div>
<div id="main">
<div class="post">
<div class="post_top">
<div class="post_title"><h2>Dein Netzwerk für Kommunikation</h2></div>
</div>
<div class="pagenavigation">
</div>
<div class="post_body">
<blockquote>
<p>Dein Portal für Kommunikation und Austausch.</p>
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = '******';
$MYSQL_PASS = '******';
$MYSQL_DATA = '******';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
// Session starten
// Loggt einen User ein, ..
function doLogin($ID, $Autologin=false)
{
// .. indem die aktuelle Session ID in der Datenbank gespeichert wird
$sql = "UPDATE
User
SET
SessionID = '".mysql_real_escape_string(session_id())."',
Autologin = NULL,
IP = '".$_SERVER['REMOTE_ADDR']."',
Letzte_Aktion = '".mysql_real_escape_string(time())."',
Letzter_Login = '".mysql_real_escape_string(time())."'
WHERE
ID = '".$ID."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// Wenn 'eingeloggt bleiben' aktiviert wurde
if($Autologin){
// Zufallscode erzeugen
$part_one = substr(time()-rand(100, 100000),5,10);
$part_two = substr(time()-rand(100, 100000),-5);
$Login_ID = md5($part_one.$part_two);
// Code im Cookie speichern, 10 Jahre dürfte genügen
setcookie("Autologin", $Login_ID, time()+60*60*24*365*10);
$sql = "UPDATE
User
SET Autologin = '".$Login_ID."'
WHERE
ID = '".$ID."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
}
// Daten des Users in der Session speichern
$sql = "SELECT
Nickname
FROM
User
WHERE
ID = '".$ID."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
$_SESSION['UserID'] = $ID;
$_SESSION['Nickname'] = $row['Nickname'];
}
if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){
// Falls der Nickname und das Passwort übereinstimmen..
$sql = "SELECT
ID
FROM
User
WHERE
Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."' AND
Passwort = '".md5(trim($_POST['Passwort']))."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// wird die ID des Users geholt und der User damit eingeloggt
$row = mysql_fetch_assoc($result);
// Prüft, ob wirklich genau ein Datensatz gefunden wurde
if (mysql_num_rows($result)==1){
doLogin($row['ID'], isset($_POST['Autologin']));
echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
echo "Sie wurden erfolgreich eingeloggt.<br>\n".
"Zur <a href=\"index.php\">Startseite</a>\n";
}
else{
echo "Sie konnten nicht eingeloggt werden.<br>\n".
"Nickname oder Passwort fehlerhaft.<br>\n".
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Login-Formular</a>\n";
}
}
else{
echo "<form ".
" name=\"Login\" ".
" action=\"".$_SERVER['PHP_SELF']."\" ".
" method=\"post\" ".
" accept-charset=\"ISO-8859-1\">\n";
echo "Nickname :\n";
echo "<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n";
echo "<br>\n";
echo "Passwort :\n";
echo "<input type=\"password\" name=\"Passwort\">\n";
echo "<br>\n";
echo "eingeloggt bleiben :\n";
echo "<input type=\"checkbox\" name=\"Autologin\" value=\"1\">\n";
echo "<br>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Einloggen\">\n";
echo "<br>\n";
echo "<a href=\"passwort.php\">Passwort vergessen</a> oder noch nicht <a href=\"registrierung.php\">registriert</a>?\n";
echo "</form>\n";
}
?>
<p>Mit eTug kann man seine Freundschaften aufrecht erhalten und den Kontakt zu alten Bekannten und Kollegen pflegen. Lade Bilder hoch, schaue dir Videos an, pflege dein Netzwerk, tausche dich mit deinen Freunden aus. </p>
</blockquote>
<h2>Grüße alle Freunde die mich kennen.</h2>
<p>Starte hier meine erste offiziele Homepage. Grüße an Buelent!!!! </p>
<p>"Freakin da Funk!" Static & Groove get the mix banging with funk & hip hop heavy-hitters. From classics to sneak attacks, sample moments and forgotten gems, enjoy this special selection we put together to launch our FREAKIN DA FUNK 2009.</p>
</div>
</li>
<div id="footer">
<div class="left">© 2009 Website</div>
<div class="right">Design by Hightower Inc.</div>
<div class="clearer"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Dieser Beitrag wurde am 30.04.2009 um 00:26:38 Uhr von Flitze zum 1. Mal editiert.
|
|
|
29.04.2009 14:45 Uhr
|
|
hagen1977
|
Forenuser
|
|
registriert
|
27.04.2009
|
wohnt in
|
Hamburg
|
Beiträge
|
13
|
|
wennn ich zb auf eingeloggt bleiben klicke und abschicke kommt die fehlermeldung....
Warning: Cannot modify header information - headers already sent by (output started at /home/etukde/htdocs/index.php:7) in /home/etukde/htdocs/index.php on line 87
Willkommen hagen1977
|
|
|
29.04.2009 18:45 Uhr
|
|
hagen1977
|
Forenuser
|
|
registriert
|
27.04.2009
|
wohnt in
|
Hamburg
|
Beiträge
|
13
|
|
kann mir den keiner helfen, ich bin am verzweifeln...
|
|
|
30.04.2009 00:29 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Lager das Login-Formular mal aus. Wenn du den Auto-Login aktivierst, wird ein Cookie gesetzt. Das geht aber nur dann, wenn noch keine Ausgabe stattgefunden hat, was bei dir allerdings der Fall ist.
|
|
|
30.04.2009 00:37 Uhr
|
|
hagen1977
|
Forenuser
|
|
registriert
|
27.04.2009
|
wohnt in
|
Hamburg
|
Beiträge
|
13
|
|
ja genau, hab ich auch schon überlegt... aber wie kann ich es auslagern, sodas ich das login in die mitte meiner homepage setzten kann, wenn ich das login als erstes an meiner homepage einfüge passt es nicht mehr mit meiner homepage, ich weiß nicht weiter...
|
|
|
30.04.2009 15:05 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Es reicht,wenn du den Cookie-Part nach oben setzt,also diesen Abschnitt
PHP:
<?php
if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){
// Falls der Nickname und das Passwort übereinstimmen..
$sql = "SELECT
ID
FROM
User
WHERE
Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."' AND
Passwort = '".md5(trim($_POST['Passwort']))."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// wird die ID des Users geholt und der User damit eingeloggt
$row = mysql_fetch_assoc($result);
// Prüft, ob wirklich genau ein Datensatz gefunden wurde
if (mysql_num_rows($result)==1){
doLogin($row['ID'], isset($_POST['Autologin']));
echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
echo "Sie wurden erfolgreich eingeloggt.<br>\n".
"Zur <a href=\"index.php\">Startseite</a>\n";
}
else{
echo "Sie konnten nicht eingeloggt werden.<br>\n".
"Nickname oder Passwort fehlerhaft.<br>\n".
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Login-Formular</a>\n";
}
}
?>
Die Erfolgs/Misserfolgsausgabe würde ich dann aber rausnehmen. Stattdessen kannst du dir eine Variable definieren (z.B. $login_succes) die kannst du dann später im Programm abfragen und dort dann die Ausgabe anzeigen.
Dieser Beitrag wurde am 30.04.2009 um 15:06:26 Uhr von Flitze zum 2. Mal editiert.
|
|
|
30.04.2009 17:08 Uhr
|
|
hagen1977
|
Forenuser
|
|
registriert
|
27.04.2009
|
wohnt in
|
Hamburg
|
Beiträge
|
13
|
|
hi, flitze... danke erstmal für deine rasche antwort, aber ich muss dich nochmal nerven!! irgendwie bekomme ich das nicht hin mit der variable und $login_succes, vielleicht kannst du mir da nochmal helfen.. bis jetzt habe ich alles hinbekommen, ausser das mit dem autologin, ich bin leider ein newbie auf diesen gebiet!! sorry
|
|
|
Seite:
|
1
2
>
|
|
|
Powered by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
Designed by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
|
|
|
|
|