PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : fehler bei login quellcode


schueler
19.12.2005, 19:12:31
hi,
hab folgendes problem,
bin dabei einen login bereich zu programmieren, aber bekomm bei der passwort prüfung fehler angezeigt.

bin noch ein anfänger und kann den grund nicht erkennen, hoffe jemand kann mir da weiter helfen.
der code sieht folgendermassen aus:

so sieht der login teil aus:

<center>
<?php
print "Willkommen im Bereich Intern";
print ", diese Seite ist nur für Mitglieder.";
?>
<br>
<?php
print "Bitte loggen Sie sich ein.";
?>
<br>

<form action="login_pruefung.php" method="post">
Benutzername:
<br>
<input name="Benutzername" size="20" type="password"><br>
Passwort:
<br>
<input name="Passwort" size="20" type="password"><br>
<input name="Send" type="submit" value="Login">
</center
</form>


so die login pruefung:


<?php

$zugangsname = "1";
$zugangspasswort = "2";

if ($_REQUEST['Send'] && $_REQUEST ['Passwort']==$zugangsname && $REQUEST['Benutzername']==$zugangspasswort)
{
session_start();
session_register("SESSION_Passwort");
session_register("SESSION_Benutzername");
$SESSION_Passwort=$zugangspasswort;
$SESSION_Benutzername=$zugangsname;
}
?>


<?php

if($SESSION_Passwort==$zugangspasswort && $SESSION_Benutzername==$zugangsname)
{
print "Ihre Eingaben sind korrekt!<br>Hier gelangen Sie zur Seite <a href=\"inern.php\">Inern</a>.";
}
else
{
print "Sie sind nicht berechtigt die Seite zu betreten!";
}
?>


und so die seite die geschützt wird:


<?php

session_start();

?>

<?php

$zugangsname = "1";
$zugangspasswort = "2";

if ($SESSION_Benutzername==$zugangsname and $SESSION_Passwort==$zugangspasswort)
{
//hier die daten eintragen, die angezeigt werden sollen
}
else
{
print "Sie haben keine Berechtigung auf diese Seite zuzugreifen!<br>Bitte loggen Sie sich <a href=\"passwort3\">hier</a> ein.";
}

?>


die fehlermeldung kommt schon nach der eingabe von benutzername und passwort, also auf der pruefung seite

zeigt mir folgendes an:

Notice: Undefined index: Send in d:\Software\e-novative\www\test_seiten2\login_pruefung.php on line 6

Notice: Undefined variable: SESSION_Passwort in d:\Software\e-novative\www\test_seiten2\login_pruefung.php on line 19

die erste seite (login teil) funktioniert. die pruefung nicht.

weiss nicht woran das liegt.
wäre nicht schlecht, wenn mir jemand helfen koennte.

danke im voraus

vt1816
19.12.2005, 19:33:50
Bitte benutze den [ PHP ]-Tag, kommentiere den Quelltext und rücke entsprechend ein, so wirds sich wahrscheinlich keiner ansehen.

schueler
19.12.2005, 22:02:02
wuerd ich ja gern, weiss aber nicht wie.
wie mach ich das?

änderung von feuervogel


<?php
// nun die ausgabe
echo "hallo da draußen";
?>

Marilu
19.12.2005, 22:23:24
Schau dir mal die Syntax für Sessions an, z. B. hier (http://tut.php-q.net/sessions.html).

session_register() ist schon lange out, und $SESSION_Passwort gibt's gar nicht; es muss $_SESSION['Passwort'] heißen.

feuervogel
19.12.2005, 22:53:47
ich hab deinen beitrag mal so geändert, wie es gemeint war. kannst auf "bearbeiten" klicken und es dir anschauen.

schueler
20.12.2005, 15:59:04
danke fuer den tipp,
wie man den php code hier richtig ausgibt.

schueler
20.12.2005, 16:19:57
session_register() ist schon lange out, und $SESSION_Passwort gibt's gar nicht; es muss $_SESSION['Passwort'] heißen.

hi marilu,
danke für dein tipp, hab die session soweit geändert, aber bekomm immer noch angezeigt, dass _session eine undefinierte variable ist.

und was schreibt man statt session_register() jetzt, wenn dieser befehl out ist?

waer sehr dankbar für weitere tipps, komm naehmlich nicht vom fleck.

Marilu
20.12.2005, 18:49:53
und was schreibt man statt session_register() jetzt, wenn dieser befehl out ist? Z. B.: $_SESSION['bla'] = 'blabla'; (Großschreibung beachten).

Wenn Du immer noch Fehlermeldungen bekommst, poste nochmal den Quelltext.

schueler
21.12.2005, 16:34:05
hi leute,
ich bins wieder.

das programm läuft jetzt so weit, aber vom sinn her ist es noch nicht ganz richtig,
und zwar lässt es mich mit jedem beliebigen passwort und benutzernamen durch, gibt aus "eingabe korrekt" usw., will aber das ich auf die seite zugreifen darf, wenn das passwort und der benutzername stimmen.

ich setzt mal den quellcode wieder rein, vielleicht seht ihr den fehler (die fehler).

login teil (maske) :

<center>
<?php
print "Willkommen im Bereich Intern";
print ", diese Seite ist nur für Mitglieder.";
?>
<br>
<?php
print "Bitte loggen Sie sich ein.";
?>
<br>

<form action="login_pruefung1.php" method="post">
Benutzername:
<br>
<input name="Benutzername" size="20" type="text"><br>
Passwort:
<br>
<input name="Passwort" size="20" type="password"><br>
<input name="Send" type="submit" value="Login">
</center
</form>


pruefung-seite:

<?php

$zugangsname = "1";
$zugangspasswort = "2";
$_SESSION['Passwort'] = '2';
$_SESSION['Benutzername'] = '1';

if ($_REQUEST['Send'] && $_REQUEST ['Passwort']==$zugangsname && $_REQUEST['Benutzername']==$zugangspasswort)
{
session_start();

$_SESSION['Passwort']=$zugangspasswort;
$_SESSION['Benutzername']=$zugangsname;
}

?>


<?php

if($_SESSION['Passwort']==$zugangspasswort && $_SESSION['Benutzername']==$zugangsname)
{
print "Ihre Eingaben sind korrekt!<br>Hier gelangen Sie zur Seite <a href=\"intern.php\">Intern</a>.";
}
else
{
print "Sie sind nicht berechtigt die Seite zu betreten!";
}
?>


geschuetzte seite (intern):

<?php

session_start();

?>

<?php


$_SESSION['Benutzername'] = '1';
$_SESSION['Passwort'] = '2';
$zugangsname = "1";
$zugangspasswort = "2";


if ($_SESSION['Benutzername']==$zugangsname && $_SESSION['Passwort']==$zugangspasswort)
{
//hier die daten eintragen, die angezeigt werden sollen
}
else
{
print "Sie haben keine Berechtigung auf diese Seite zuzugreifen!<br>Bitte loggen Sie sich <a href=\"passwort3\">hier</a> ein.";
}

?>


bekomm keine fehler mehr angezeigt, laeuft aber immer noch nicht korrekt.

waer sehr dankbar für hilfe.

Marilu
21.12.2005, 18:53:23
Mir fällt zuerst auf, dass auf Du auf Deiner Prüfungsseite Session-Zuweisungen hast, bevor Du session_start() aufrufst. Ändere das mal, dann sehen wir weiter.

schueler
22.12.2005, 13:00:18
hab session_start() an den anfang gesetzt, trotzdem besteht das poblem immer noch, dass ich mit jedem x beliebigen benutzernamen und passwort durchkom.

oder war es nicht korrekt, session_start() einfach an den anfang zu setzen?

Marilu
22.12.2005, 13:41:45
Vielleich hilft Dir dies (http://de3.php.net/manual/de/function.session-start.php) weiter.

Was Du noch machen kannst: Übergib auf der Prüfungsseite die Request-Variablen an lokale, die Du vor der If-Abfrage dann abfragen und vergleichen kannst.

Opendix
22.12.2005, 15:39:59
Hi schueler
Ist doch klar, das deine if abfrage:

if ($_SESSION['Benutzername']==$zugangsname && $_SESSION['Passwort']==$zugangspasswort)
{
//blablabla
}


immer korrekt ist wenn du vor der if dies machst:


$_SESSION['Benutzername'] = '1';
$_SESSION['Passwort'] = '2';
$zugangsname = "1";
$zugangspasswort = "2";


den hier weist du den $_SESSION-variabeln ja immer den wert zu, den du als richtig anerkennst!
Hoffe habe nun nichts übersehen… hab nur schnell durchgeschaut und das mir grad so aufgefallen… ansonsten kannst ja den post ignorieren *g*

schueler
24.01.2006, 18:32:39
hi leute,
ich bins wieder.
nach dem meine festplatte ihren geist aufgegeben hatte und ich wieder auf dem alten stand der dinge bin, nehm ich die arbeit wieder auf.

hab da ein problem;
ich blick das mit den session_ setzen nicht ganz, währ echt cool wenn mir da jemand helfen könnte.

also ich hab darüber schon gelesen, ist mir aber noch nicht ganz klar.
vielleicht hilfts, wenn mir jemand des mit seinen eigenen worten erklärt.


bin dankbar für jede hilfe.

gruß schueler

p.s wenn ihr fehler im oberen quellcode entdeckt, sagt bitte bescheid.

schueler
29.01.2006, 22:07:03
hi an alle,
ich hätt da mal ne frage,
woran kann es liegen, wenn man mit dem include (dateiname.dateityp) ein fehler angezeigt bekommt?

xabbuh
29.01.2006, 22:33:14
woran kann es liegen, wenn man mit dem include (dateiname.dateityp) ein fehler angezeigt bekommt?
Woran kann es liegen, dass du uns die exakte Fehlermeldung verschweigst?

schueler
30.01.2006, 17:00:59
Woran kann es liegen, dass du uns die exakte Fehlermeldung verschweigst?

ich wollt einfach mal allgemein fragen, wusste nicht das es so wichtig wäre.
hier die exakte fehlermeldung:
Parse error: syntax error, unexpected '?' in d:\Software\e-novative\www\cvjm1\test.odt on line 2

feuervogel
30.01.2006, 17:46:50
ich wollt einfach mal allgemein fragen, wusste nicht das es so wichtig wäre. mein auto hat vier räder und es fährt nicht. wieso?
hier die exakte fehlermeldung:
Parse error: syntax error, unexpected '?' in d:\Software\e-novative\www\cvjm1\test.odt on line 2
und nun noch die betreffende zeile. wahrscheinlich hast du versucht, werte an das inkludierte script mittels anhängen von ?key=value an den dateinamen versucht. dies ist aber falsch.

schueler
02.02.2006, 16:02:08
hi an alle,

ich probiers mal anders mit meinem projekt. will es jetzt so machen, das ich mit zwei verschiedenen passwörtern auf die geschützte seite gelangen kann.
ich hab des so weit mit einem passwort fertig, bekomm aber noch ein fehler angezeigt.
schick mal den code von der prüfen-seite und die fehlerbeschreibung, wäre froh wenn mir jemand helfen könnte.


<?php

$Zugangspasswort = "1";

if($_REQUEST['Send'] && $_REQUEST['Passwort']==$Zugangspasswort)
{
session_start();
session_register('SESSION_Passwort');
$_SESSION['Passwort']=$Zugangspasswort;
}

?>

<html>
<head>
<title>Passwortgeschützter Bereich</title>
</head>
<body>

<?php

if($_SESSION['Passwort']==$Zugangspasswort)
{
echo"Sie sind erfolgreich eingeloggt!<br>Hier gelangen Sie zur Seite <a href=\"intern.php\">Intern</a>.";
}
else
{
echo"Sie sind nicht berechtigt die Seite zu betreten!";
}

?>

</body>
</html>


und die fehlermeldung sieht folgendermassen aus:

Notice: Undefined variable: _SESSION in d:\Software\e-novative\www\cvjm1\login-pruefung.php on line 22
Sie sind nicht berechtigt die Seite zu betreten!

Opendix
02.02.2006, 16:06:51
zitat von php.net:

Achtung

Wenn Sie $_SESSION (oder $HTTP_SESSION_VARS) verwenden, sollten Sie nicht session_register(), session_is_registered() und session_unregister() verwenden.

=> lass session_register weg :)

schueler
02.02.2006, 16:16:17
hi opendix,

danke erstmal für deine antwort.
habs sofort ausprobiert, bekomm aber noch immer den selben fehler angezeigt.
ich hab die zeile in der stand session_register('SESSION_Passwort'); einfach gelöscht, hat aber nichts gebracht.

Reinfi
02.02.2006, 17:39:37
setze das session_start(); an den Anfang deiner Datei, weil sonst hast du keine Variablen in der Session, wenn du nicht das Formular abgesendet hast!

schueler
02.02.2006, 19:01:37
hallo reinfi,

danke für dein post. habs mal ausprobiert, aber wenn ich das mache, lässt er mich mit jedem x beliebigen passwort durch. ist aber nicht der sinn der sache.

weiss vielleicht jemand eine andere lösung. hab in self php rumgesucht, aber bin bis jetzt noch nicht auf die lösung gestossen.

noch eine fage hätte ich, kann ein phpcode mit frontpage kombiniert werden, wenn ja wie? denn über die übliche gestalltung zeigt er mir nicht alles bzw. überflüssiges an, wie z.b teile vom phpcode.

danke im voraus