PHP Login Script mit Session

sHeN

Mitglied
Hi Leuds,

ich versuche mich gerade das erste mal mit der SESSION Funktion.
Leider geht es nicht. Auch wenn das PW richtig eingegeben ist funktioniert es nicht t.t
Ich vergleiche doch zwei Varibalen mit == oder?

Hier der Quelltext:

index.php
PHP:
 <? session_start(); ?>
 
<form name="form1" method="post" action="index2.php">
<input name="userlogin" type="text" id="pwlogin" value="user">
<input name="pwlogin" type="text" value="pw">
<input type="Submit" name="loginbutton" value="login"></form>

index2.php
PHP:
<? session_start(); ?>
 
<? $userpw = "abcd"; ?>
 
<? if ($pwlogin == $userpw) {
$user_is_login="1";
session_register("user_is_login");
session_register("userlogin");
session_register("pwlogin"); }
else echo "username or password wrong!";
?>


Hilfe :)
 
kk also das erste Prob ist das du die Werte gar nicht übergibst

PHP:
if ($pwlogin == $userpw)

$pwlogin hat bei dir keinen Wert, so würde es klappen

PHP:
 if($_POST['pwlogin'] == $userpw)
 
Na er übergibt sie schon nur ist register_globals glücklicherweise off.
Nur so noch als Hinweis, für Parameter die in der URL übergeben werden also beuspielsweise deinscript.php?parameter=wert greifst du statt über $_POST über $_GET zu. Um sowohl auf $_POST und $_GET zuzugreifen kannst du $_REQUEST benutzen

session_register kannst du dir sparen, du kannst auch eifnach direk
$_SESSION['namefürdasarrayelement'] = $inhalt;
nutzen.

Um dann dein Form noch schöner zu machen solltest du für das Passwort
den Input-type password nehmen...
 
Dann kommt folgender Fehler:

Parse error: parse error, unexpected T_ELSE in /www/htdocs/raptum/session/index2.php on line 9

geändert in:
PHP:
<? session_start(); ?>
<? $userpw = "abcd"; ?>
<? if($_POST['pwlogin'] == $userpw); {
$user_is_login="1";
session_register("user_is_login");
session_register("userlogin");
session_register("pwlogin"); }
else echo "username or password wrong!";
?>

@BenBen
Könntest du mir des bitte mal an hand meines Script zeigen wie du das meinst?
Ich hab noch nicht sehr viel Erfahrung in Session. Wäre echt Lieb :)
 
Zuletzt bearbeitet:
Ja er übergibt die werte ja aber per method="post" also kann er halt entweder über $_POST oder wie du schon sagtest $_REQUEST drauf zugreifen. Die SessionID hab ich immer in der Datenbank zu den jeweiligen Nutzer gespeichert.

So nun wieder zurück zum Prob ^^ was steht in Zeile 9 bei dir?
Fehlermeldung sagt mir so leider nichts.
 
Der fehler liegt am ; nach der if bedingung.
Mit meinem Kram was ich davor meinte sähre das script so aus:

PHP:
<?php

session_start();
$userpw = "abc";

if($_POST['pwlogin'] == $userpw) 
{
 $_SESSION['user_is_login'] = TRUE;
 $_SESSION['userlogin'] = $_POST['userlogin'];
}
else 
     echo "username or password wrong!";

?>

pwlogin hab ich weggelassen, weil wozu denn gross das Passwort speichern?
user_is_login hab ich mal auf TRUE gesetz (kommt aber 1 gleich).
 
Ja die mistigen Simikolons ^^ wo wir grad beim Thema sind ich habe bis jetzt wie gesagt die SessionID in na Datenbank beim entsprechenden User gespeichert.
Was genau macht die $_SESSION Methode so kurz zusammengfasst?

Weil bei mir sah die Loginüberprüfung bis jetzt so aus:

PHP:
  function usercheck($name,$passwort)
{
 $suche = "SELECT * FROM member WHERE Loginname = '".$name."' AND Passwort = '".$passwort."' LIMIT 1";
 $abfrage = mysql_query($suche) or die(mysql_error());
 if(mysql_num_rows($abfrage)==1)
 {
  $ergebnis = mysql_fetch_array($abfrage);
  $update = "UPDATE member SET SessionID = '".session_id()."' WHERE Loginname = '".$ergebnis['Loginname']."'";
  mysql_query($update);
 }
 else
 {
  return false;
 }
}
 
Zurück