• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Fehler bei Ausagbe

Loerbs

Mitglied
Hallo...

Leider komme ich nicht weiter.... Ich habe eine kleines php scipt geschrieben für ein ganz kleinen und einfachen Login für eine Person.
Nun soll nicht der echo test "echo "Sie haben sie erfolgreich eingeloggt!!!"; sonderen eine andere HTML Site aufgerufen werden die ein Verzeichnis höher liegt...
Wieso finde ich keine Lösung eigentlich doch ganz simpel oder? Radio Coastguard! Admin
Die andere html datei soll aber nur beim erfolgreichen Login angezeigt werden, und nich schon wenn man einfach den Pfad in der Andresszeile eingibt und somit das Login fenster überspringt...

Würde mich über eine Rückantowrt freuen und bedanke mich schon mal in vorraus für euere bemühungen vielen dank. :)

PHP:
<?php 

ini_set('display_errors', 1);
error_reporting(E_ALL);  


$benutzer = $_POST['user'];
$passwort = $_POST['pass'];
$loginbutton = $_POST['login'];


if ($loginbutton)
{
    if ($benutzer AND $passwort)
    {
        if ($benutzer=='Beispiel')
        {
            if ($passwort=='123456')
            
            {
                echo "Sie haben sie erfolgreich eingeloggt!!!";
            }
            else
                echo "Das Passwort und/oderBenutzers ist Falsch!";
        }
        else
            echo "Der Benutzername ist nicht vorhanden";
    }
    else
        echo "Bitte fülle alle Felder aus!";
}        

?>
 
Das Problem ist, dass man mit dieser Methode direkt auf deine weitergeleitete HTML-Seite gehen könnte. Was du brauchst, nennt sich Sessions:
Quakenet/#php Tutorial - de - Sessions

Diese Tutorial-Website solltest du dir ohnehin von Anfang an mal durchlesen. Das ist ziemlich interessant ;)

Übrigens: Auf der Hauptseite deine Website ist ein Rechtschreibfehler. " Schmeiß die Flasche in´s Wasser! " -> nicht "in´s", sondern "ins".
 
Ohne Session wirst du hier nicht weiterkommen.
So ein einfaches Login Script kannst dir unter: Command Board - PHP & MySQL - Registrierung + Login
anschauen. Das hab ich damals schnell geschrieben. Kannst du aber auch verwenden wenn du möchtest. Auf der Seite findest auch einen Download zum kompletten Script.

Die Login Namen und Passwörter werden dabei in einer Php Datei gespeichert. So das mehre Accounts möglich sind.

Hier ein kleiner Auszug davon:
PHP:
<?php
/**
 * @name login.php
 *
 * Ameldung / Login
 *
 * @author
 * @version 0.2
 * @copyright Copyright (c) 2013,
 */
defined('DOCROOT') or die('Kein direkter Script Zugriff erlaubt.');

// Formular abgesendet
if (isset($_POST["submit"]))
{
  $user     = isset($_POST["login"])    ? filter_input(INPUT_POST, "login", FILTER_SANITIZE_STRING) : ""; // Username
  $password = isset($_POST["password"]) ? hash('sha256',$_POST["password"])                         : ""; // Password
   
  // Laden der Password Datei
  $login =  file_exists(CONFIG.'userdatei.php') ? include_once(CONFIG.'userdatei.php'): $meldung = "Fehler beim Laden von ".CONFIG.'userdatei.php';

  if(is_array($login))
  {
    foreach ($login as $data)
    {
      if ($data['username'] == $user && $data['password'] == $password)
      {
        $_SESSION['user'] = $user;                                    // Session erstellen und Wert zuweisen
        header('Location: '.URL."?navi=intern");                      // Interne Seite umleiten Header
        break;                                                        // Weitere Suche abbrechen
      }
    }
  }
  $meldung.= "<p>Zugriff verweigert!</p>";
  
}

Die index.php
PHP:
<?php
/**
 * @name index.php
 *
 * Bootstrap
 *
 * @author splasch
 * @version 0.2
 * @copyright Copyright (c) 2013,splasch
 */
error_reporting(E_ALL | E_STRICT);                         // PHP Fehlermeldungen anzeigen
session_start();                                           // Session starten

// Definiere Absolute Pfad für die Konfiguration
define ('DIRSEP', DIRECTORY_SEPARATOR);                    // Kompatibele Slash Operatoren
define ('DOCROOT',dirname(__FILE__).DIRSEP);               // Start Verzeichniss
define ('VIEW'   ,realpath(DOCROOT."view")   .DIRSEP);     // Default View
define ('CONFIG' ,realpath(DOCROOT."config") .DIRSEP);     // Konfiguration Datein

$url     = str_replace(chr(92),'/',DOCROOT);
$url     = str_replace($_SERVER['DOCUMENT_ROOT'],'',$url);   
define ('URL' ,$url.'index.php');                          // Default URL

$content       = "reg.php";                                // Default Inhalt der Webseite
$layout        = "index.php";                              // Default Layout
$meldung       = "";                                       // Mitteilungen Ausgabe

// Auto Loader der Klassen Files
function __autoload($class_name)
{
  $filename = strtolower($class_name);
  $file     = DOCROOT .'classes' . DIRSEP . $filename. '.php';
  if (file_exists($file) == false)
  {
   return false;
  }
  include_once($file);
}

// Navigation                   
$navi = isset($_GET['navi']) ? $_GET['navi'] : "";            // Navigation links
$page = include(CONFIG.'navigation.php');                    // Navigation Liste laden (array)
 
if ( array_key_exists($navi, $page) )                         // Prüfen ob es den Link gibt
{
  $filename = VIEW.$page[$navi];                             // Verzeichnis mit Datei zusammenstellen

  if ( file_exists($filename) && is_readable($filename) )     // datei vorhanden und kann gelesen werden?
  {
     // Controller Datei 
     file_exists($page[$navi]) ? include_once($page[$navi]): $meldung = "Fehler beim Laden von ".$page[$navi];
     ob_start();
     include_once( $filename );                               // Inhalt einfügen
     $content = ob_get_contents();
     ob_end_clean(); 
  }
}else{
       ob_start();
       include_once(VIEW.$content);                          // Standard Inhalt
       $content = ob_get_contents();
       ob_end_clean();
     }

// Default Layout Laden
include_once(VIEW.$layout);
?>

Sollte etwas unklar sein dann einfach fragen.

Mfg Splasch
 
Zuletzt bearbeitet:
Vor allem ist für einen Anfänger viel zu viel Zeug drin, was er ohnehin am Anfang nicht verstehen wird.

Nils aka XraYSoLo
 
Zurück
Oben