Ich Problem mit SESSIONS; kann jemand mir helfen?

Freude

Mitglied
Ich habe Problem mit SESSIONS; kann jemand mir helfen?

Ich habe folgenden Script geschrieben, ich das Formular so lange ausgegeben, wenn ich das Kennwort vom SQL eingebe.

1.Frage:wie kann ich das umgehen, dass mich nicht unbedingt mit SQL passwort einloggen muss sondern mit Kunden Daten.
2.Frage:wie kann ich erreichen, dass nach betätigen des Login Buttons
die DB aufgerufen wird.
und noch was in DB habe die kundennumer in der Tabelle als Primär Schlüssel definiert die Frage dazu wo definiere ich das im Script?
Ich habe das so gemacht aber glaube dass ich denkfehler gemacht habe

BITTE UM HILFE
wenn ich irgendwo fatalen Fehler haben sollte bittte nicht lachen
Ich habe erst vor drei Wochen angefangen PHP zu lernen.
DANKE
PHP:
<?php
session_name("PHPSESSID");
// Sessionid wird festgelegt auf sID, ist der name uaf den die nummer folgt.
session_start();
// session 'tut' wird gestartet, beim reload wieder aufgenommen

$hostname = "...."; //  db_server_name

$username = "root"; // der Mysql-Username
$password = "";  // das Mysql-Password


$dbname = "Kunde"; // db  Name

$userstable = "kundenstamm"; // tabellenname


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

if(session_is_registered(login))
{ // wenn die Session Variabel $login registiert wurde...
echo "eingelogt:<br><br>";

echo $login[name]; // gibt den wert name an, aus dem array $login
echo "<br>";

echo $login[password]; // gibt den wert pass an, aus dem array $login
}

elseif($_name
== "name" && $_password == "pasword") { // wenn die variabel(aus dem Formular) $_name, Hans ist und $_pass lol ist...

$login[name] = $_name;
// Die Vari $_name wird in den Array $login unter dem Register [name] gespeichert

$login[password] = $_password; // Die Variable $pass wird in den Array $login unter dem Register  [pass] gespeichert

session_register(login); // HIER!, hier wir der komplette Array in der Session gepeichert

setcookie(session_name("PHPSESSID"), session_id(), time());// + 60*5);
 // Da der Stadartcookie nur bis zum ende der Sitzung gilt, wird hier
//die ID nochmal für 60*5 Sekunden gespeichertm also 5minuten ;-)
echo
"Daten wurden gespeichert<br>";
//echo "<a href='$PHP_SELF'>reload</a>";

}
else
{ // wenn keines der oben gestellten Bedingungen erfüllt wurde kommt das Formular

Print("
<FORM method='get' action='$PHP_SELF?'>
<TABLE
WIDTH='25%'>
<TR><TD>Name:</TD><TD>
<INPUT
TYPE='text' NAME='_name'>
</TD></TR><TR><TD>Password</TD><TD>
<INPUT
TYPE='PASSWORD' NAME='_password'>
</TD></TR><TR><TD>&nbsp;</TD><TD><DIV
ALIGN='RIGHT'>
<INPUT TYPE='submit' VALUE='Login'>
</DIV></TD></TR></TABLE>");
}
 function überprüfung($_name,$_password){
     $check=mysql_query("SELECT * FROM $userstable where kundennummer='$_password'
     AND Name='$_name'");
if(mysql_num_rows($check)) { // wenn die Anfrage erfolgreich war....
echo
"Eingelogt als:<br><br>Name: ";
echo $_name;

echo "<br>Password: ";
echo $_password;
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";
}
}

?>
 
Zuletzt bearbeitet:
Ich glaube das problem liegt darin das du versuchst ein array abzulegen
ich bin mir nicht sicher ob das geht
probier dochmal die daten aus dem array einzelnt abzuspeichern
also den wert einer variablen zuweisen und diese dann speichern
PHP:
$name = $login[name];
$password = $login[password];

session_register($name);
session_register($password);
und mach beim nächstenmal lieber den code
in vb php tags dann kann man das auch besser lesen :)
 
1.Frage:wie kann ich das umgehen, dass mich nicht unbedingt mit SQL passwort einloggen muss sondern mit Kunden Daten.

indem du die datenbankzugangsdaten hartcodiert in dein script eintraegst, die sollte keiner irgendwie angeben muessen.
dann erstellst du dir ein kunden tabelle in der du usernamen / passwort von kunden hinterlegst. bei einem login fragst du dann genau danach!

2.Frage:wie kann ich erreichen, dass nach betätigen des Login Buttons
die DB aufgerufen wird.

was meinst du mit "...die DB aufgerufen wird..." ?? etwas aus der db holen ? mysql_query($anfragequery);

und noch was in DB habe die kundennumer in der Tabelle als Primär Schlüssel definiert die Frage dazu wo definiere ich das im Script?

warum willst du das in deinem script definieren ? was macht das fuer einen sinn ?

Ich habe das so gemacht aber glaube dass ich denkfehler gemacht habe.

ein paar ja ;)
ich wuerde dir empfehlen dich ersteinmal in ruhe mit php/mysql zu beschaeftigen (INSERTS, UPDATES, u.s.w. ueben), danach mit sessions und nicht alles auf einmal. du hast auch eine function "überprüfung" die niemals aufgerufen wird .. komisch das php ueberhaupt umlaute in bezeichnern zulaesst ... kurz gesagt, viel durcheinander :-)

ist nur als konstruktive kritik gemeint, ich will dich hier jetzt nicht niedermachen ;)
 
Zurück