Sponsor-Board.de

Normale Version: Session Login funkt. nicht!
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Vorne Weg.
Das ist ein Login Script über: 5 Datein!
Das wären:
-admin.php

PHP-Code:
<?php
session_start
();
include 
"inc/session.php";
include 
"config/local_config.php";
?>
... 

-index.php

PHP-Code:
<?php
session_start
();
session_destroy();
$_SESSION = array();
include 
"config/local_config.php";
?>
...
            <form action="login.php" autocomplete="off" method="post">
                <h3>Login</h3>
                <p><input type="text" placeholder="Username" name="username"/></p>
                <p><input type="password" placeholder="Password" name="pw"/></p>
                <p><input type="submit" value="Login"/></p>
            <form>
... 


-login.php

PHP-Code:
<?php
session_start
();
include 
"config/local_config.php";

if(!isset(
$_POST["username"]))
{
    if(
$_POST["username"] == $admin_username && $_POST['pw'] == $admin_passwort)
    {
        
$_SESSION["username"] = $_POST["username"];
    }
}
include 
"inc/session.php";
?>
...
    <?php
        
echo "<p>Hallo " $_SESSION["username"] . "</p>";
     
?>
     <p><a href="admin.php" style="text-decoration: none;">Zum Adminbereich!</a> - <a href="index.php" style="text-decoration: none;">Logout!</a></p> 


-session.php

PHP-Code:
<?php
if(!isset($_SESSION["username"]))
{
    echo 
"<center><div style=\"border-radius: 5px; width: 400px; height: 100px; background-color: #B40000; border: 3px solid black;\"><b>Kein Zugang!</b><br />Inkorrekter Login. Bitte versuche es erneut!<br /><br /><b>Failed login!</b><br />Please try it again!</div></center>";
    exit;
}
?>


-local_config.php

PHP-Code:
<?php
...
// Administrationsänderungen!! Achtung hier befinden sich die Adminlogindaten!!!
$admin_username "admin"// Ändern, dies ist der Benutzername
$admin_passwort "123456"// Ändern, dies ist das Passwort
?>


Nun wenn ich mich mit meinen richtigen DAten einlogge bekomme ich trozdem die meldung aus der session.php! Egal ob richtig oder nicht :/
Weiß einer von euch warum?

Ich wollte nicht zu viel Posten da das mal ein Premium Script für 10€ werden soll desswegen hab ich einiges wegradiert.

PHP-Code:
if(!isset($_POST["username"]))
{
    if(
$_POST["username"] == $admin_username && $_POST['pw'] == $admin_passwort)
    {
        
$_SESSION["username"] = $_POST["username"];
    }

Was soll der mist? Erst prüfst du, ob $_POST["username"] NICHT existiert und dann prüfst du ob die Daten die darin stehen passen. Wo ist da die Logik?

Hier existriert durch die absendung des Formulares $_POST["username"]. Falls alles stimmt wird der aus dem Formular abgeschickte Name in den Session Array übernommen und steht währen der Session zu verfügung. Von einer beliebigen Seite innerhalb oder außerhalb der Website oder duch direckte eingabe im Browser gibt $_POST["username"] und name und passwort werden nicht geprüft. So sollte das eigtl. funkt. und so steht es bei mir in der anleitung.

mfg
da würd aber überprüft ob die der Wert für "username" im $_POST Array nicht vorhanden ist, eigl sollte es ja andersherum sein - nimm das Ausrufezeichen davor weg und lies dir was zu den Operatoren durch

Aaron schrieb:
da würd aber überprüft ob die der Wert für "username" im $_POST Array nicht vorhanden ist, eigl sollte es ja andersherum sein - nimm das Ausrufezeichen davor weg und lies dir was zu den Operatoren durch


wenn ichs so mache:

PHP-Code:
{
$_POST["username"] = $_SESSION["username"];


funkt.?

es geht hierum :

if(!isset($_POST["username"]))

!isset gibt true zurück, wenn ein Wert NICHT vorhanden ist, isset gibt true zurück, wenn ein Wert vorhanden ist

Aaron schrieb:
es geht hierum :

if(!isset($_POST["username"]))

!isset gibt true zurück, wenn ein Wert NICHT vorhanden ist, isset gibt true zurück, wenn ein Wert vorhanden ist


und mit was soll ich das vertauschen?
Danke schomal-!

if(!isset($_POST["username"]))

änders du zu

if(isset($_POST["username"]))

wie halt schon geschrieben ...
Referenz-URLs