Servus Leute!
Zuallererst einmal DANKE, dass es dieses Forum gibt,
es hat mir bisher sehr viel geholfen, zb beim Programmieren einer Browserweiche.
Was mache ich?
Ich habe vor Monaten angefangen, eine Seite für meine Band zu programmieren,
da unsere MySpace-Seite das 08-15 Standardprofil hat,
dachte ich mir, ich fange gleich richtig an,
etwas HTML kannste ja.
Naja.
Aus diesem wurde etwas mehr und ich kürze das mal ab und komme gleich zu meinem Problem:
Ich bin dabei eine Wartungsseite zu schreiben.
Diese ist versteckt auffindbar (in meinem Beispiel über index.php?s=pomosh).
Die durch den Link angesteuerte PHP-Datei hat folgenden Code:
(nicht wundern, ich nutze ein MYSQL-Skript und hab auf der index.php ein Objekt namens $db angelegt)
Das Problem hierbei ist:
Ich öffne index.php?s=pomosh und es werden mir beide programmierte Fehlermeldungen angezeigt. Ich dachte mir, es wäre eleganter,
direkt zu fragen, ob eine Session gesetzt ist, dann zur eigentlichen Wartungsseite weiterzuleiten (siehe den //header.. Eintrag, der den üblichen Fehler aufwarf), auf der ich dann z.B: neue News eintragen kann, die auf der Index.php ausgegeben werden.
Desweiteren wird in meiner Tabelle die Session-ID nicht gespeichert.
Dort steht jetzt lustigerweise nur noch "Array" und das letzte Anmelde-Datum speichert das Skript mittlerweile auch nicht mehr.
Ich möchte gerne von euch wissen, wo meine Fehler sind,
und warum die SessionID nicht gespeichert wird.
Denn nach dem Einloggen, befinde ich mich direkt auf der Index.php.
Ich würdem ich auch sehr drüber freuen,
wenn ihr mir nen Hinweis gibt, wie ich die "Session vorhanden?"-Prüfung eleganter programmieren kann.
Vielen Dank schon mal für alles!
Aureon
Ps:
Hier noch der Code der Seite,
die in der Indexdatei per require_once geladen wird,
wenn s=pabot ist:
Zuallererst einmal DANKE, dass es dieses Forum gibt,
es hat mir bisher sehr viel geholfen, zb beim Programmieren einer Browserweiche.
Was mache ich?
Ich habe vor Monaten angefangen, eine Seite für meine Band zu programmieren,
da unsere MySpace-Seite das 08-15 Standardprofil hat,
dachte ich mir, ich fange gleich richtig an,
etwas HTML kannste ja.
Naja.
Aus diesem wurde etwas mehr und ich kürze das mal ab und komme gleich zu meinem Problem:
Ich bin dabei eine Wartungsseite zu schreiben.
Diese ist versteckt auffindbar (in meinem Beispiel über index.php?s=pomosh).
Die durch den Link angesteuerte PHP-Datei hat folgenden Code:
(nicht wundern, ich nutze ein MYSQL-Skript und hab auf der index.php ein Objekt namens $db angelegt)
PHP:
<?php
session_start();
if ($_SESSION['login'] == 1){
echo "bist eingeloggt";
echo '<a href="media/pictures/albums/Blubb/logout.php">Log out</a>';
//Header('Location:media/pictures/albums/Blubb/dataservice.php');
}
else{
echo'<h3 style="text-align:center;text-decoration:underline;">Wartungsseite</h3>
<p style="font-weight:bold";>Authentifizieren Sie sich!</p>
<br></br>
<form name="login" action="index.php?s=pabot" method="post"lang="de">
<b>Loginname:</b>
<p><input name="user" type="text" value="" /></p>
<b>Passwort:</b>
<p><input name="pw" type="password" value="" /></p>
<input name="submit" type="submit" value="Log in" />
</form>';
//Anmeldedaten aus dem Formular speichern
$user = $_POST['user'];
$pw = $_POST['pw'];
//Admin_user aus der Datenbank rausholen
$request = "SELECT * FROM user WHERE user_name='$user'";
$result = $db->db_query($request);
$userArr = $db->db_fetch_array($result);
//Abfragen
//Nichts eingegeben
if ($user == "" OR $pw == ""){
echo '<b style="color:red;"><br>Login-Informationen nicht komplett, bitte Felder ausfüllen!</br></b>';
}
//Falsches Passwort
if ($user == $userArr['user_name'] AND md5($pw) != $userArr['password']){
echo '<b style="color:red;"><br>Der Benutzername oder das Passwort ist fehlerhaft!</br></b>';
}
//Alles richtig
elseif ($user == $userArr['user_name'] AND md5($pw) == $userArr['password']){
//Speichere die SID in der Tabelle an der jeweiligen Position
$_SESSION['login'] = 1;
$_SESSION['user'] = $db->db_fetch_array($_result, MYSQL_ASSOC);
$SID_querystring = "UPDATE user SET sessionID='$_SESSION' WHERE user_name='$user'";
$db->db_query($SID_querystring);
echo mysql_error();
//letzten Login updaten
$login_update_query = "UPDATE user SET last_login=NOW() WHERE user_name='$user'";
$db->db_query($login_update_query);
echo "<b>Login erfolgreich, Weiterleitung zur Wartungsseite aktiv, Session-ID gesetzt.</b>";
}
}
?>
Das Problem hierbei ist:
Ich öffne index.php?s=pomosh und es werden mir beide programmierte Fehlermeldungen angezeigt. Ich dachte mir, es wäre eleganter,
direkt zu fragen, ob eine Session gesetzt ist, dann zur eigentlichen Wartungsseite weiterzuleiten (siehe den //header.. Eintrag, der den üblichen Fehler aufwarf), auf der ich dann z.B: neue News eintragen kann, die auf der Index.php ausgegeben werden.
Desweiteren wird in meiner Tabelle die Session-ID nicht gespeichert.
Dort steht jetzt lustigerweise nur noch "Array" und das letzte Anmelde-Datum speichert das Skript mittlerweile auch nicht mehr.
Ich möchte gerne von euch wissen, wo meine Fehler sind,
und warum die SessionID nicht gespeichert wird.
Denn nach dem Einloggen, befinde ich mich direkt auf der Index.php.
Ich würdem ich auch sehr drüber freuen,
wenn ihr mir nen Hinweis gibt, wie ich die "Session vorhanden?"-Prüfung eleganter programmieren kann.
Vielen Dank schon mal für alles!
Aureon
Ps:
Hier noch der Code der Seite,
die in der Indexdatei per require_once geladen wird,
wenn s=pabot ist:
PHP:
<?php session_start();
if($_SESSION['login'] == 0){
echo "<br></br><br></br><b>Sie müssen sich erst einloggen, um Zugang zu diesem Bereich zu erhalten!</b><br></br><br></br><br></br><br></br>";
}
else{
echo '<!-- Hier befinden sich alle "Wartungsfunktionen" -->
<h3 style="text-align:center;text-decoration:underline;">Back_end - Wartungsbereich</h3>
<br></br>
<b>Sie sind angemeldet, was wollen Sie tun?</b>
<br></br><br></br><br></br>';
echo '<b><ul style="margin-left: 5px">
<li><a href="index.php?s=pomosh&a=1">Artikel hinzufügen oder bearbeiten</a></li>
<li><a href="index.php?s=pomosh&a=2">Bilder hochladen</a></li>
<li><a href="index.php?s=pomosh&a=3">Gigs eintragen oder bearbeiten</a></li></b>
</ul>';
$a ="";
if(isset($_REQUEST['a'])) { $a = $_REQUEST['a'];}
$a = $_GET['a'];
switch($a){
case(1):
echo 'Artikel blubb';
break;
case(2):
echo 'Bilder blubb';
break;
case(3):
echo 'Gigs blubb';
break;
default:
break;
}
echo "<br></br><br></br>";
echo '<a href="logout.php">Log out</a>';
}
?>