Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Wie saftmeister beschrieben hat
$_SESSION['id'] = 1 ist nicht $_SESSION['id'] == 1
if($_SESSION['id'] != 1)
{
$art->inhalt($text[5]); // Anmeldeformular
}
else
{
$art->inhalt($text[6]); // Admin-Bereich
}
public function anmelden($bn, $pw)
{
if($_POST['bn'] == 'Admin' && $_POST['pw'] == 'Hallo')
{
$this->KndNr = 1;
}
Wo wird die Funktion "anmelden" in deinem Source-Code aufgerufen? Wie sieht dein Login-Formular aus? Du prüfst in deiner Funktion nicht die Parameter die an die Funktion übergeben wurden, sondern gegen statische Strings - hast du das beim testen berücksichtigt?
<?php
require_once("class_webshop04.php");
require_once("texte04.php");
require_once("class_kunde.php");
$art = new webshop("artikeldaten.xml");
if(isset($_REQUEST['pdf']))
{
$art->pdfliste();
}
$art->setTitel("Webshop 03");
$art->kopf();
if(isset($_REQUEST['wk']))
{
$art->inhalt($text[3]);
$art->auswahl();
$art->inhalt($text[2]);
}
elseif(isset($_REQUEST['order']))
{
$art->bestellen($art->getKundenNummer());
$art->inhalt($text[4]);
}
else
{
if(!empty($_REQUEST['id']))
{
$art->waehlen($_REQUEST['id']);
}
$art->inhalt($text[0]);
$art->anzeigen();
$art->inhalt($text[1]);
if($_SESSION['id'] != 1) // Function Anmelden
{
$art->inhalt($text[5]);
print "Sie sind als Kunde eingeloggt<br />";
}
else
{
$art->inhalt($text[6]);
}
}
$art->fuss();
?>
$text[5][0]="<form action=\"programm46.php\" method=\"post\">
<p><input name=\"bn\" /> Name </p>
<p><input type=\"password\" name=\"pw\" /> Passwort</p>
<p><input type=\"submit\" value=\"Login\" /></p>
</form>";
$text[6][0]="<html><body><p><h1>Admin-Bereich</p></body></html>";
<?php
class kunde
{
private $KndNr;
private $bn = "Admin";
private $pw = "Hallo";
public function __construct()
{
session_start();
$this->KndNr = (isset($_SESSION['id'])) ? $_SESSION['id'] : time();
}
public function anmelden($bn, $pw)
{
if($_POST['bn'] == 'Admin' && $_POST['pw'] == 'Hallo')
{
$this->KndNr = 1;
}
}
public function getKundenNummer()
{
return $this->KndNr;
}
public function __destruct()
{
$_SESSION['id'] = $this->KndNr;
}
}
?>
require_once("class_kunde.php");
// Prüfen, ob ein Login stattgefunden hat
$kunde = new kunde();
if( isset( $_POST['bn'] ) && isset( $_POST['pw'] ) )
{
$kunde->anmelden( $_POST['bn'], $_POST['pw'] );
}
Hmm, soweit ich das richtig sehe, wird die Funktion überhaupt nicht aufgerufen. Und das ist vmtl. auch das Problem des Thread-Erstellers. Ich würde mal so vorgehen (ohne Garantie): Unterhalb von require_once("class_kunde.php"); baut man folgende Zeilen ein:
PHP:require_once("class_kunde.php"); // Prüfen, ob ein Login stattgefunden hat $kunde = new kunde(); if( isset( $_POST['bn'] ) && isset( $_POST['pw'] ) ) { $kunde->anmelden( $_POST['bn'], $_POST['pw'] ); }
public function anmelden($bn, $pw)
{
if($_POST['bn'] == 'Admin' && $_POST['pw'] == 'Hallo')
{
$this->KndNr = 1;
}
$_SESSION['id'] = $this->KndNr;
}
Hat sich erledigt, ich musste $_SESSION['id'] durch eine get-function ersetzen.