PHP Login - Abfrage negativ

humsdigga

Mitglied
Hallo Programmierer/innen und Helfer/innen,
Ich habe folgendes Problem. Ich bastel an einer Homepage (php). Bin nicht soo das ASS darin, da ich nur nebenbei/hobbimäßig an HP´s bastel.
Also ich habe im Prinzip 3 Dateien worum es sich handelt.
  • Die Logindatei, wo ich meine daten eingebe und verschicke. Alles okay.
  • Eine Abfragedatei, die prüft, ob der benutzer auch in der DB eingetragen ist. Alles okay. Login erfolgreich.
  • eine Geheimseite, die prüft ob der angemeldete benutzer auch "müller" heißt. Und hier sagt er mir, ich müsse mich erst einloggen.
Ich denke auch wichtig könnte es sein, dass meine Hauptdatei in 2 Datein geteilt ist, die den text/frame der homepage umschließt und den ich mit include einfüge.

So und nun die Quelltexte:

Logindatei:
PHP:
<?php
include ('css1.php');
?> 

<h1><b><font color=#5F5F5F>Login</font></b></h1>
 

 <div align="center">
<img src="gbeintrag.png" > <br><br>
</div>
  

<form action="/loginabfrage.php" target=_self method="post">
Dein Username:<br>
<input type="text" size="15" maxlength="50"
name="username"><br>

Dein Passwort:<br>
<input type="password" size="15" maxlength="50"
name="password"><br>

<input type="submit" value="Login">
</form>


   <?php
include ('css2.php');
?>

Die Abfragedatei:
PHP:
<?php
session_start();
?>

<?php
include ('css1.php');
?> 

<h1><b><font color=#5F5F5F>Login</font></b></h1>
 

 <div align="center">
<img src="http://58.58.funpic.de/test/gbeintrag.png" > <br><br>
</div>
 
<html>
<head>
<body bgcolor="#FFB9D4">
<?php
$verbindung = mysql_connect("localhost", "58" , "58")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("58") or die ("Datenbank konnte nicht ausgewählt werden");

$username = $_POST["username"];
$passwort = md5($_POST["password"]);

$abfrage = "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->passwort == $passwort)
    {
    $_SESSION["username"] = $row->username;
    echo "Login erfolgreich. <br> <a href=\"http://588.58.funpic.de/58/adminbereich.php\" >Zum Adminbereich</a>";
    }
else
    {
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
    }

?> </body></head></html>
   <?php
include ('css2.php');
?>

Die geheimdatei:
PHP:
<?php 
session_start();
?> 



 <?php
include ('css1.php');

if(!isset($_SESSION["username"] ) || $_SESSION["username"] != "müller" )
   {
   echo "Bitte erst <a href=\"http://58.58.funpic.de/58/login.php\">einloggen";
   exit;
   }
?>  



<a href="http://58.58.funpic.de/test/newseintrag.php">News eintragen</a><br>
<a href="">News</a>

 
 <?php
include ('css2.php');
?>

So in den CSS1 datein, die includet wird habe ich auch noch folgende Abfrage:
PHP:
<?php 
$verbindung = mysql_connect ("localhost",
"58", "58")
or die ("keine Verbindung möglich.
 Benutzername oder Passwort sind falsch");

mysql_select_db("58")
or die ("Die Datenbank existiert nicht.");
?>
 
Lass dir doch mal den Inhalt von $_SESSION ausgeben. Dann weisst du schon eher wo das Problem liegt.

var_dump(); bzw print_r(); sind da ganz schön hilfreich *g*

lg Samuel
 
Lass dir doch mal den Inhalt von $_SESSION ausgeben. Dann weisst du schon eher wo das Problem liegt.

var_dump(); bzw print_r(); sind da ganz schön hilfreich *g*

lg Samuel

var_dump(); bzw print_r(); soll ich in der loginabfrage einfügen oder wo?

er gibt mir dann folgenden fehler an:

Warning: Wrong parameter count for var_dump() in /usr/export/www/vhosts/funnetwork/hosting/58/test/loginabfrage.php on line 42
 
In deiner "geheim-Datei" nach session_start();

var_dump($_SESSION);

oder print_r($_SESSION);

reinschreiben. Beides bewirkt ungefähr das selbe *g* und zwar eine genauere Ausgabe über den Inhalt der Variable. Probier am besten beide Varianten aus und du siehst gleich wann welche Methode am sinnvollsten ist.

lg Samuel
 
In deiner "geheim-Datei" nach session_start();

var_dump($_SESSION);

oder print_r($_SESSION);

reinschreiben. Beides bewirkt ungefähr das selbe *g* und zwar eine genauere Ausgabe über den Inhalt der Variable. Probier am besten beide Varianten aus und du siehst gleich wann welche Methode am sinnvollsten ist.

lg Samuel

okay nun kommt bei "dump"
array(1) { ["username"]=> &NULL }
und bei "print"
Array ( [username] => )

PS: Wie schon gesagt, in der Abfragedatei sagt er mir aber Login erfolgreich.
 
Das sagt dann folgendes aus... es wurde kein Wert in $_SESSION['username'] reingespeichert.

Dies sollte ja bei:
PHP:
<?php
$_SESSION["username"] = $row->username; 
?>

passieren.

Als nächsten Schritt würd ich nun ein var_dump($row->username); empfehlen.
Und am besten eine Zeile bevor der "angebliche Wert" in die Session gespeichert wird.

lg Samuel
 
Das sagt dann folgendes aus... es wurde kein Wert in $_SESSION['username'] reingespeichert.

Dies sollte ja bei:
PHP:
<?php
$_SESSION["username"] = $row->username; 
?>

passieren.

Als nächsten Schritt würd ich nun ein var_dump($row->username); empfehlen.
Und am besten eine Zeile bevor der "angebliche Wert" in die Session gespeichert wird.

lg Samuel

sorry aber ich kann mit den befehlen nichts anfangen deswegen poste ich sie dir mal :-P

string(9) "müller"
sagt er mir jetzt. Edit: Also denke ich das der Wert schon da ist. In der Loginabfragedatei habe ich die Abfrage gestartet.
 
Zuletzt bearbeitet:
Dir fällt sicher auf das "müller" nicht aus 9 Zeichen besteht. Wird wohl am Sonderzeichen "ü" in Verbindung mit dem encoding zu tun haben.

Also am besten du machst aus müller mueller und testest das ganze nocheinmal.
Oder du beschäftigst dich mit dem encoding.
 
Dir fällt sicher auf das "müller" nicht aus 9 Zeichen besteht. Wird wohl am Sonderzeichen "ü" in Verbindung mit dem encoding zu tun haben.

Also am besten du machst aus müller mueller und testest das ganze nocheinmal.
Oder du beschäftigst dich mit dem encoding.

sorry , dass ich dich jetzt verunsichert habe, das mit den 9 zeichen passt schon, ich wusst nur nich ob ich wegen sicherheitsgründen den richtien usernamen hier posten soll.

Ich habe aber soeben was viel besseres entdeckt. Ich nutze momentan Mozilla 3.0.8.
Habe eben einen Login mit IE probiert wo es komischerweise funktionierte.
Aber in Mozilla habe ich eigentlch alle cookies aktzeptiert usw.

EDIT: Die HP ist auf Mozilla "gebaut", wird nur dort perfekt angezeigt. Und ich möchte auch nicht, dass ich die Codes für IE alle umschreiben muss.
 
Zuletzt bearbeitet:
PHP ist Serverseitig, es sollte eigentlich keinerlei Unterschied machen ob du sie nun im Firefox oder im IE anzeigst. Vom Inhalt der Variablen usw..
 
Zurück