Problem mit Array und Variablenbergabe

CHAKKA1992

Mitglied
Hallo an alle,
ich bastle gerade ein Internen Bereich für meine Klassen-HP. Da ich mich nicht sehr gut in PHP auskenne, möchte ich ungern mit SESSIONS arbeiten. Deshalb habe ich ein kleines "Loginsystem" gemacht:
Ich arbeite mit 2 Frames. Im oberen ist der Login, und die Links.
Im Unteren werden die Variablen ausgewertet, und je nachdem eine Seite ausgegeben.
Script oben:
PHP:
<?php
if($_POST['OK']=='OK')
{
$ID=$_POST['ID'];
$PWIN=$_POST['PW'];

$PWSOLL = array();
$PWSOLL['1']='11111';
$PWSOLL['2']='22222';
$PWSOLL['3']='33333';
$PWSOLL['4']='44444';
$PWSOLL['5']='55555';
$PWSOLL['6']='66666';
$PWSOLL['7']='77777';
//...

if($PWIN=$PWSOLL[$ID])
{
echo('LOGIN ERFOLGREICH');
$LOGIN=TRUE;
}
else
{
echo('FEHLER BEIM LOGIN');
$LOGIN=FALSE;
}
}
if($_POST['LOGOUT']=='LOGOUT')
{
$LOGIN=FALSE;
echo('Sie wurden erfolgreich abgemeldet.');
}
?>
Und hier das untere Script: In der Datei config.php sind nur die Links und das Array definiert. Ich habe sie vorsichtshalber als Anhang beigefügt.
PHP:
<?php
include('config.php');
 if($LOGIN=TRUE)
 {
	if(isset($_GET['section']) AND isset($dateien[$_GET['section']])) 
	{ 
	 //Ist eine $_GET Variable vorhanden wird PHP angewiesen  
	 //zu prüfen ob die Datei existiert und diese dann zu laden 
  
	 if(!file_exists($dateien[$_GET['section']])) echo "Die Datei ist nicht vorhanden.";
	
	 include $dateien[$_GET['section']]; 
 }
 else
 {
 echo('SIE SIND NICHT EINGELOGGT');
 }
} 
else 
{ 
 //Wenn keine Variable oder Definition vorhanden ist 
 //lade die Fehlerseite bzw. die Indexseite 
 include $dateien['error'];  
} 
?>

Nun komme ich aber nicht weiter. Mit dem Passwortabgleich Funktioniert etwas nicht, da egal welche eingabe gemacht wird, immer der Login erfolgeich wird. Und im Unteren Script auf der Seite wird immer etwas angezeigt, auch wenn man nicht Eingeloggt ist. Da muss etwas mit den variablen nicht stimmen.

Kann mir jemand helfen? Für weiter Fragen zu meinem problem bin ich immer offen.

MFG
chakka1992

PS: Es tut mir Leid für den Rechtschreibfehler im Betreff, aber dies kann ich leider nicht mehr ändern ;-)
 
Zuletzt bearbeitet:
Tutorials das nächste mal bitte genauer durchlesen ...
Für einen Vergleich brauchst du zwei der Istgleich Zeichen ... ( == )

PHP:
<?php
if($_POST['OK']=='OK')
{
$ID=$_POST['ID'];
$PWIN=$_POST['PW'];

$PWSOLL[1]="11111";
$PWSOLL[2]="22222";
$PWSOLL[3]="33333";
$PWSOLL[4]="44444";
$PWSOLL[5]="55555";
$PWSOLL[6]="66666";
$PWSOLL[7]="77777";
//...

if($PWIN == "$PWSOLL[$ID]")
{
echo('LOGIN ERFOLGREICH');
$LOGIN="TRUE";
}
else
{
echo('FEHLER BEIM LOGIN');
$LOGIN="FALSE";
}
}
if($_POST['LOGOUT']=='LOGOUT')
{
$LOGIN="FALSE";
echo('Sie wurden erfolgreich abgemeldet.');
}
?>

Unten dürfte genau das selbe Problem sein ...

PHP:
<?php
include('config.php');
 if($LOGIN == "TRUE")
 {
    if(isset($_GET['section']) AND isset($dateien[$_GET['section']])) 
    { 
     //Ist eine $_GET Variable vorhanden wird PHP angewiesen  
     //zu prüfen ob die Datei existiert und diese dann zu laden 
  
     if(!file_exists($dateien[$_GET['section']])){
     include $dateien[$_GET['section']];
}else{
    echo "Die Datei ist nicht vorhanden.";
    }

} 
else 
{ 
 //Wenn keine Variable oder Definition vorhanden ist 
 //lade die Fehlerseite bzw. die Indexseite 
 include $dateien['error'];  
} 

 }
 else
 {
 echo('SIE SIND NICHT EINGELOGGT');
 }

?>


//edit:
Kleine Logische Fragen von mir:
1. Warum passt du in bestimmten "Teilen" deines Scriptes nicht auf ...
Beispiel;
if(!file_exists($dateien[$_GET['section']])) echo "Die Datei ist nicht vorhanden.";
include $dateien[$_GET['section']];
Soweit ich sehe ist in der if-Funktion ein Fehler ... und wenn die der nicht da wäre, würdest du ausgeben, das die Datei nicht vorhanden ist -.- Auserdem hört die if-Funktion nicht auf ...

2. Du Prüfst ob ein link mit Get existiert und wenn nicht gibst du aus, man ist nicht eingeloggt
Hoffe es gefällt dir wie ich es mal verändert habe ... ansonsten einfach dein Prüfungen mit nem 2ten = ergänzen

P.S.: Mit Session gehts sehr leicht ...
Wo dass Problem sein würde verstehe ich nicht.
Die Variablen würden so lange "aktiv" bleiben, wie die Sitzung besteht (Browser nicht geschlossen wird) oder du sie eben löscht.
Erstellen kannst solche Session-Cookies wie folgt

PHP:
$_SESSION['login'] = "mein text";
Ausgeben etc. dann so
PHP:
echo $_SESSION['login'];
und löschen geht so
PHP:
unset $_SESSION['login'];
 
Zuletzt bearbeitet:
Vielen Dank für die Hilfe! Ich befasse mich noch nicht sehr lange mit PHP, diesen Leichtinnsfehler, hätt ich selbst auch irgendwann einmal gemerkt, aber trotzdem Danke. Und zum Thema Sessions: Ich habe schon so oft Beiträge zum Thema "Problem mit Sessions" gelesen, dass ich mir gedacht habe, ich lasse es lieber :)

MFG
chakka1992
 
War nur ein Vorschlag -.- hättest einfach nur fragen müssen und ein fertiges Loginscript mit Sessions bekommen ...

Findest auch zu genüge im Netz ;-)
Aber naja -.- Viel Spaß noch beim Codeschreiben.
Hoff wir sehen dann das Ergebnis :)
 
Zurück