Benutzer Login

Freude

Mitglied
Hallo Leute,
mir ist immer noch manches nicht klar

undzwar wenn ich mich einlogge werde ich nicht zu der Seite, auf der die ganzen Informationen drin sind, weitergeleitet.
Wo könnte mein Fehler legen?könntet Ihr mal mir helfen,
DANKE
PHP:
<?php
ob_start(); // Öffnet einen Puffer, damit der Header erst am schluss gesendet
//wird...keine cookie probleme ?>

<?
//////////////////////////
//Session
//Einstellungen///
//////////////////////////
session_name("sID");
// Session-id-name ... wir imer vergeben/wieder aufgenommen
session_start("tut");
// Session Name ... wir imer vergeben/wieder aufgenommen

//////////////////////////
//Einstellungen
//Mysql/////
//////////////////////////
$hostname = "MSG-SV-1000"; //
//db server name
$username = "root"; // der Mysql-Username
$password = "";
// das Mysql-Password

$dbname = "Kunde"; // db  Name

$userstable = "kundenstamm"; // tabellenname

$mc
= mysql_pconnect($hostname, $username, $password); // öffnet eine permanente Verbindung
//zum db-Server
mysql_select_db($dbname, $mc); // wählt die Database aus

//////////////////////////
//Funktionen definieren
///
//////////////////////////
function formular($fehler) {
//die Funktion formular mit der Variabel $fehler, die ist dazu da, wenn z.B dass
//PW falsch ist...
Print("
<FORM method='get' action='$PHP_SELF?'>

<TABLE WIDTH='25%' ALIGN='CENTER' BORDER='0' CELLPADDING='0' CELLSPACING='1'>

<TR BGCOLOR='#f0e68c' VALIGN='MIDDLE'><TD COLSPAN='2' HEIGHT='20'>

<B>$fehler</B></TR><TR
BGCOLOR='#f0e68c'>
<TD  WIDTH='144'>Name:</TD><TD
BGCOLOR='#f0e68c' WIDTH='136'>
<INPUT TYPE='text'
NAME='_name' SIZE='25'></TD></TR>
<TR BGCOLOR='#f0e68c'><TD
>Password:</TD><TD>
<INPUT
TYPE='PASSWORD' NAME='_pass' SIZE='25'></TD></TR><TR
BGCOLOR='#f0e68c'>
<TD >&nbsp;</TD><TD>

<INPUT TYPE='submit' VALUE='Login' NAME='submit'></TD></TR></TABLE>");
}

function
testpw($id, $username, $password) {
global $userstable;
$check = mysql_query("SELECT
* FROM $userstable WHERE id='$id' AND nickname='$username' AND password='$password'");
// Es wird eine Anfrage an die database gesendet, wo die daten der database entsprechen...

if(mysql_num_rows($check)) { // wenn die Anfrage erfolgreich war....
echo
"Eingelogt als:<br><br>Nickname: ";
echo $username;

echo "<br>Passoword: ";
echo $password;
echo "<br>Deine
ID: ";
echo $id;
echo "<br><br><A HREF='$PHP_SELF?mode=logout'>Logout</A>";

} // ende if
elseif(!mysql_num_rows($checkt)) { // wenn nicht wird die session zerstört

echo "No way, netter Versuch";
session_destroy("tut");

} //ende elseif
} //ende Function

if($mode == "logout")
{
session_destroy("tut");
setcookie(session_name(), session_id(), time() - 60*10);  // setzt cookie auf MINUS 10min..sodass der keks gelöscht wird


formular("Bitte neu einloggen!"); // Formular wird neu geldaen
}
elseif(session_is_registered("login"))
{
testpw($login[id], $login[nickname], $login[password]); // führt die
//Funktion mit den Variabeln aus der Session aus.
}

elseif(isset($_name)
&& isset($_pass)) {
$get = mysql_query("select * from $userstable where
nickname='$_name' AND password='$_pass'"); // Es wird eine Anfrage an die
//database gesendet, wo die daten der database entsprechen...
if(mysql_num_rows($get))
{ // wenn die Anfrage erfolgreich war....
$login = mysql_fetch_array($get);

session_register(login); //Registriert den array
setcookie(session_name(),
session_id(), time() + 60*10); // setzt cookie auf 10min
echo "Eingelogt
als:<br><br>Nickname: ";
echo $login[nickname];
echo
"<br>Password: ";
echo $login[password];
echo "<br>Deine
ID: ";
echo $login[id];
echo "<br><br><A HREF='$PHP_SELF?mode=logout'>Logout</A>";

} // end if $get...
elseif(!mysql_num_rows($get)) {
formular("Username
oder Password falsch!");
} // end elseif $get...
} // end isset...
else
{
formular("Loginsystem");
}
?>
<?
  ob_end_flush();     //beendet den puffer(wg. cookies) und gibt die daten aus..
?>
 
Zuletzt bearbeitet:
kann ja nicht funktionieren, denn session_start erwartet keine parameter.

nur session_name("name") und session_start, dann jede seite die mit dem login geschützt werden soll mit den zeilen session_name("name"); und session_start(); beginnen.

dann is ob_start() nicht zwingend notwenig, da von der session nen cookie versendet wird, falls nicht als parameter in der url weitergegeben wird. du musst nur die "wichtigen" logindaten mit session_register regestrieren und dann nur nochabfragen ob die daten regestriert sind oder nicht (session_is_registered("variablenname")) wenn nicht regestriert, dann ist man nicht eingeloggt, wenn regestriert, ist man eingeloggt (irgendwo logisch oder?!)

das ist etwas einfacher als mit ob_start und ob_sonstwas
 
Zurück