PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Session bzw. weitergabe von 2 Variablen


Damaskus
17.06.2004, 23:22:14
Moin,
hab bei folgenden Script das Problem, dass ich über ne Session 2 Variablen weitergeben will. Es geht einmal um "$login1" und "$password1". Der Inhalt der Variablen wird über ein Eingabefeld bestimmt.
Soll ein Login Script werden.

Hat jemand nen Lösungsvorschlag?!
Es kann auch die ganze Datei umgebaut werden.
Einzige bedingung ist, dass nach erfolgreicher überprüfung von Passwort und Username auf die Datei senden.php weitergeleitet wird und dort das Passwort und der Username zur Verfügung steht.


<?php
include("dblib.inc"); //login zur DB

session_start();

function ueberpruefePasswort($login1, $passwort1)
{
global $link;
$ergebnis = mysql_query
("SELECT login, passwort FROM chatuser WHERE login = '$login1' AND passwort = '$passwort1' LIMIT 0 , 30 ");
if (! $ergebnis)
die ("ueberpruefePasswort fatal error" . mysql_error());
if (mysql_num_rows($ergebnis))
return mysql_fetch_array($ergebnis);
return false;
} ;

$nachricht = "";
if (isset($aktion) && $aktion == "login") {
if (empty($form[login1]) || empty($form[passwort1]))
$nachricht .= "Sie müssen alle Felder ausfüllen<br>n";
elseif (! ($ds = ueberpruefePasswort($form[login1], $form[passwort1])))
$nachricht .= "Falsches Passwort, Versuchen sie es noch einmal!<br>n";
if ($nachricht == ""); // kein Fehler {
header("Location: senden.php?=SID");
} ;

?>
<html>
<head>
<title></title>
</head>
<body bgcolor="#CACACA">
<center>
<?php
if ($nachricht != "") {
print " <p><b>$nachricht</b></p>";
}

?>
<form action="login.php">
<input type="hidden" name="aktion" value="login">
<input type="hidden" name="<?php print session_name() ?>"
value="<?php print session_id() ?>">
Benutzername:
<input type="text" name="form[login1]"
value="<?php print$form[login1]?>";">

Passwort:
<input type="password" name="form[passwort1]" value="">
<input type="submit" value="Anmelden">

</form>
</center>
</body>
</html>

PhiL_phpnoob
18.06.2004, 12:36:24
Hi,

Also ich würde das alles etwas umbauen und einfacher gestalten:


<?
session_start();

include("dblib.inc"); //login zur DB

if (isset($_POST[login]))
{

$ergebnis = mysql_query("SELECT login, passwort FROM chatuser WHERE login = '$_POST[login1]' AND passwort = '$_POST[$passwort1]' LIMIT 0 , 30 ");
$row = mysql_fetch_array($ergebnis);

if (empty($_POST[login1]) || empty($_POST[passwort1]))
{
$nachricht .= "Sie müssen alle Felder ausfüllen<br>n";
}

if (!isset($nachricht))
{ // kein Fehler

$username1 = $row["login"];
$password1 = $row["passwort"];

if(($_POST[login1] == $username) && ($password == $_POST[passwort1]))
{
// SESSION WIRD GESETZT WENN LOGIN ERFOLGREICH MIT WEITERLEITUNG
$_SESSION[logged_in] = $logged_in;
$_SESSION[username] = $username;
$_SESSION[password] = $password;

$logged_in = '1';

header("Location: senden.php");
exit;
}
else
{
$nachricht .= "Benutzername oder Passwort falsch!<br>n";
}

}
}
?>

<html>
<body bgcolor="#CACACA">
<center>
<?
if (isset($nachricht))
{
print " <p><b>$nachricht</b></p>";
}

?>
<form action="login.php" method="post">
<input type="hidden" name="login" value="1">
Benutzername:
<input type="text" name="login1" value="">

Passwort:
<input type="password" name="passwort1" value="">
<input type="submit" value="Anmelden">

</form>
</center>
</body>
</html>


so sollte es funktionieren.
lass doch bitte das mit $form weg, ist nur unnötig.
Du bekommst alle Werte des Formulars mit $_POST[feldname]

Damaskus
19.06.2004, 21:42:22
Also erstmal Danke, dass du dich dem Problem angenommen hast. So ist es auch wirklich einfacher als ich das gemacht hab.
Nur funktioniert das Script nicht richtig. Es wirft mir immer die Meldung "Benutzername oder Passwort falsch!" aus.
Den Fehler bei der Mysql abfrage hab ich schon korrigiert.

Damaskus
19.06.2004, 21:52:16
OK hab den Fehler!
Nochmals Danke!