PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Loginscript funktioniert wieder mal nicht =(


-=Sirius=-
25.09.2007, 20:00:15
Hallo,
also das ist mein Code:

EDIT: GEÄNDERTER CODE


<?php
error_reporting(E_ALL);

//Daten aus Senden
$name = $_POST['benutzername'];
$pass = $_POST['passwort'];

$benutzerarray = array("
'fisi' => 'md5('b9acdea2da5f11854dd76c09b522c77f'),
'fiae' => 'md5('b9acdea2da5f11854dd76c09b522c77f'),
'itsys' => 'md5('b9acdea2da5f11854dd76c09b522c77f')
");

if(isset($_POST['submit']) AND $_POST['submit']=='Login')
{
$post_user = $_POST['username'];
$post_pass = $_POST['passwort'];
};
if(in_array($name,$benutzerarray))
{
if($benutzerarray[$name] == md5($pass))
{
if($_SESSION['user_name']=='fisi')
{
header ('Location: fist/index.php');
}
else
{
if($_SESSION['user_name']=='fiae')
{
header ('Location: fiae/index.php');
}
else
{
header ('Location: itsys/index.php');
};
};
}
else
{
echo 'Logindaten falsch, bitte geben Sie die Benutzername und Passwort erneut ein.';
};
};
?>




nur leider funktioniert das nicht, es kommt immer folgender fehler:


Parse error: parse error, unexpected '{' in E:\Programme\xampp\htdocs\sites\bewerbungshomepage\login.php on line 19

hab leider auch nur von überall Codeschnippsel zusammengefügt und auch Hilfe von anderen Personen bekommen.

Kann mir bitte jdm. helfen ?
Danke ;)

mfg
Sirius

feuervogel
25.09.2007, 20:05:51
if(isset($_POST['submit']) AND $_POST['submit']=="Login"); {
$post_user = $_POST['username'];
$post_pass = $_POST['passwort'];
}

was sucht da in der ersten zeile da ; hinter der )?

-=Sirius=-
25.09.2007, 20:39:50
wahrscheinz mit nei gerutscht ;)

aber ist nicht der auslöser dieser fehlermeldung =(



------> neuer geänderter code oben

jetzt kommt kein fehler mehr, sondern die seite bleibt einfach weiß =(

habs gefunden... sind ja massenhaft unterschiedlich variablen O_O
frag mich blos wie die jetzt dareingekommen sind... vorher warn die glaub ich net da -.-

aber wie überprüft man das jetzt richtig ... weiß ich nämlich nicht ??? :(

feuervogel
25.09.2007, 23:48:56
wahrscheinz mit nei gerutscht ;)

aber ist nicht der auslöser dieser fehlermeldung =(



------> neuer geänderter code oben

jetzt kommt kein fehler mehr, sondern die seite bleibt einfach weiß =(

habs gefunden... sind ja massenhaft unterschiedlich variablen O_O
frag mich blos wie die jetzt dareingekommen sind... vorher warn die glaub ich net da -.-

aber wie überprüft man das jetzt richtig ... weiß ich nämlich nicht ??? :(

Indem nicht einfach alles von irgendwo her zusammenkopiert sondern sich mal selbst Gedanken macht und anfangs kleine Brötchen backt.

zusätzlich noch das gehirn anstrengen hilft auch:

warum bleibt die seite weiß? weil keine ausgabe erzeugt wird. die ausgabe wird in der if-anweisung erzeugt. die if-bedinung in_array($name,$benutzerarray) ist also immer false. woran könnte das liegen? naja, in_array überprüft, ob ein wert element eines arrays ist. kann der inhalt von $name im array $benutzerarray vorkommen? nein, denn $name wird nirgends mit inhalt gefüllt.

und wieso du den schließenden klammern der if-blöcke ein ; folgen lässt, ist mir auch nicht klar.

-=Sirius=-
26.09.2007, 16:03:16
die variable $name bekommt doch an dieser stelle einen wert:
$name = $_POST['benutzername'];

oder etwar nicht ?


dann wird die if-anweisung falsch sein ?
aber ich weiß net warum ^^

feuervogel
26.09.2007, 16:38:35
die variable $name bekommt doch an dieser stelle einen wert:
$name = $_POST['benutzername'];



oh, das habe ich übersehen, sorry.

was gibst du denn beim feld für den benutzernamen ein?

sicherlich nicht

'fisi' => 'md5('b9acdea2da5f11854dd76c09b522c77f'),
'fiae' => 'md5('b9acdea2da5f11854dd76c09b522c77f'),
'itsys' => 'md5('b9acdea2da5f11854dd76c09b522c77f')

oder? denn das ist das einzige element von dem array und damit die bedinung der if-anweisung wahr wird, müsste das also der wert von $name sein.

rarios
26.09.2007, 16:50:06
hmm Du hast glaube ich Deinen von irgendwoher kopierten Code nicht so ganz verstanden oder?
also erstmal 1. hast Du oben stehen:
$name = $_POST['benutzername'];
$pass = $_POST['passwort'];
dann kommt auf einmal:
$post_user = $_POST['username'];
$post_pass = $_POST['passwort'];
Also entweder Dein Formular hat gleich 2 Felder wo man einen Benutzernamen eintragen muss und zusätzlich ein Passwortfeld oder Du hast einfach verschiedene Scripte zusammengebastelt.

2. in_array($name,$benutzerarray)
naja Du hast zwar die variable $name aber nicht im array sondern außerhalb!

3. lass die md5-Verschlüsselung ruhen! Dein Script ist eh eine totale Sicherheitslücke...

defabricator
26.09.2007, 16:55:46
Ich glaube auch, Du solltest Dich nochmal mit den basics beschäftigen.
Und dann schau dir genau an, was das Skript Zeile für Zeile macht.
- Such die Anweisungen raus.
- Was macht jede einzelne Anweisung?
- Was bewirkt das jeweils im Kontext ?
- Macht das Sinn?
- Was brauchst Du an der Stelle?

-=Sirius=-
28.09.2007, 15:34:31
hab jetzt ein neues script... allerdings hat mir das jdm. geschrieben...
ich muss irgendwan mal nen php kurs besuchen :(

schaut jetzt folgendermaßen aus:

<?php
session_start ();
if(isset($_POST["submit"])){
error_reporting(E_ALL);
//Daten aus Senden

if(isset($_POST['benutzername']))
$name = $_POST['benutzername'];
$pass = md5($_POST['passwort']);
switch($name)
{
case "fisi":
if($pass=="b9acdea2da5f11854dd76c09b522c77f")
{
$_SESSION['fisi']= true;
header ('LOCATION: fisi/index.php');
}
else{
header ('LOCATION: nixda.seite');
}
break;
case "fiae":
if($pass=="b9acdea2da5f11854dd76c09b522c77f")
{
$_SESSION['fiae']= true;
header ('Location: fiae/index.php');
}
else{
header ('LOCATION: nixda.seite');
}
break;
case "itsys":
if($pass=="b9acdea2da5f11854dd76c09b522c77f")
{
$_SESSION['itsys']= true;
header ('Location: itsys/index.php');
}
else{
header ('LOCATION: nixda.seite');
}
break;
default:
echo "Ne du";
}

}

?>

defabricator
29.09.2007, 06:08:08
Dein erster Ansatz kann zum Beispiel so umgesetzt werden<?php
error_reporting(E_ALL);
session_start ();
if(isset($_POST['benutzername']) && isset($_POST['passwort']))
{
$benutzer = array(
"fisi" => md5('testpass'), // "b9acdea2da5f11854dd76c09b522c77f",
"fiae" => "b9acdea2da5f11854dd76c09b522c77f",
"itsys" => "b9acdea2da5f11854dd76c09b522c77f",
);

if ( isset($benutzer[ $_POST['benutzername'] ])
&& $benutzer[ $_POST['benutzername'] ]===md5($_POST['passwort']))
{
$_SESSION['user'] = $_POST['benutzername'];
header('Location: '.$_POST['benutzername'].'/');
}
else {
die('ne du');
}
}
else
{
echo '<html><body><form method="post">
b:<input type="text" name="benutzername" />
<br />
p:<input type="password" name="passwort" />
<br />
<input type="submit" />
</form></html>';
}
?>

-=Sirius=-
29.09.2007, 12:59:01
Danke,
aber da fehlt ja noch wenn fisi eingeloggt ist das er weitergeleitet wird nach:
fisi/index.php
usw. ...

aber thema kann geschlossen werden, weil mein letztes gepostets geht!

Danke euch allen nochmal ;)

mfg
Sirius