-
22.09.11 10:31 #1
- Registriert seit
- Dec 2008
- Beiträge
- 11
Hallo ihr Lieben,
ich bin mittlerweile wirklich am verzweifeln und ich finde meinen Fehler nicht
Folgende Ausgangslage bzw. folgende Dateien sind vorhanden:
seite.php (die Hauptseite)
class_kunde.php (die Klasse)
texte.php (die Texte inkl. eines Formulars, die auf seite.php ausgegeben werden.
Folgende Codes gibt es:
seite.php
Diese Datei soll entsprechend der ID entweder Text 5 (Login-Formular) oder Text 6 (Admin-Bereich) anzeigen.
PHP-Code:if($_SESSION['id'] !=1)
{
$art->inhalt($text[5]);
}
else
{
$art->inhalt($text[6]);
}
Dazu soll der Username "Admin" mit dem Passwort "Hallo" die Kundennummer 1 zugewiesen bekommen, die anderen, nennen wir sie Kunden, sollen den Timestamp erhalten als Kundennummer.
Ausschnitt aus der texte.php
So, wenn jetzt der Admin sich einloggt, soll er automatisch die Kundennummer 1 angewiesen bekommen, das habe ich so geschrieben:PHP-Code:$text[5][0]="<form action=\"seite.php\" method=\"post\">
<p><input name=\"username\" /> Name <input type=\"password\" name=\"pw\" /> Passwort <input type=\"submit\" value=\"Login\" /></form>";
$text[6][0]="<h1>Admin-Bereich</h1>";
class_kunde.php:
Ich weiß nicht wo mein Fehler ist, dass 1. die Anmeldung funktioniert (und ich den Adminbereich erreiche) und 2. die Kundennummer 1 ausgegeben wird, wenn der Admin einloggt.PHP-Code:<?php
class kunde
{
private $KndNr;
public function __construct()
{
if (!isset ($_SESSION['id']))
{
$this->KndNr = $_SESSION['id'];
}
else
$_SESSION['id'] = $_SESSION['id'];
}
public function anmelden($username, $pw)
{
if ($_GET["username"] == $username && $_GET["pw"] == $pw)
{
$this->KndNr = 1;
}
else
{
if (!isset ($_SESSION['id']))
{
$this->KndNr = time();
}
else
{
$this->KndNr = $_SESSION['id'];
}
}
}
public function __destruct()
{
$_SESSION['id'] = $this->KndNr;
print $_SESSION['id'];
}
public function getKundenNummer()
{
return $this->KndNr;
}
}
?>
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt und wäre über Ideen und Hinweise sehr sehr dankbar.
Gruß
Partizan
-
22.09.11 11:42 #2
Versuch mal nach dem speichern der Session testweise
auszugeben, um zu sehen welche und ob überhaupt Sessions vorhanden sind.PHP-Code:print_r($_SESSION);
Hast du error_reporting(E_ALL); aktiviert um keine Fehlermeldungen zu unterdrücken?
-
22.09.11 12:15 #3
- Registriert seit
- Dec 2008
- Beiträge
- 11
Hallo Eagle-PsyX,
wo setze ich den Code zur Ausgabe der Session am Besten hin?
Error-Reporting habe ich bisher nicht eingesetzt, wo setze ich dort den Wert, bei seite.php ?
-
22.09.11 18:14 #4
- Registriert seit
- Dec 2008
- Beiträge
- 11
Wenn die Seite aufgerufen wird, wird folgendes ausgeworfen:
Array ( [korb] => Array ( ) )
Wenn ich versuche mit dem Admin einzuloggen erhalte ich danach nur das hier:
Array ( [korb] => Array ( ) [id] => )
Aus irgendeinem Grund wird wohl garkeine ID angelegt geschweige denn die KndNr erstellt und auf 1 gestellt..... *seufz*
-
27.09.11 17:10 #5
- Registriert seit
- Dec 2008
- Beiträge
- 11
ich kriege einfach keine id angezeigt.... hat jemand einen Tipp ?
-
ich habe mich noch nicht viel mit php auseinander gesetzt, aber fehlt da nict irgendwo ein session_start(); ?
-
Bin da auch gerade nicht sicher ober er es hat, in den Quelltexten is aufjedenfall nichr vorhanden.
Überall wo die Session benuzt schreib gaaanz oben, noch vor html und so
und noch was:PHP-Code:<?php
session_start();
?>
braucht diese Funktionen nicht einen return wert? z.B. die Session =DPHP-Code:public function anmelden($username, $pw)
{
if ($_GET["username"] == $username && $_GET["pw"] == $pw)
{
$this->KndNr = 1;
}
else
{
if (!isset ($_SESSION['id']))
{
$this->KndNr = time();
}
else
{
$this->KndNr = $_SESSION['id'];
}
}
}
-
05.10.11 11:54 #8
- Registriert seit
- Dec 2008
- Beiträge
- 11
Hallo ihr Lieben,
ich habe den Code schon etwas weiterentwickelt, ich kriege mittlerweile auch den Unix-Timestamp in die 'id' übertragen, leider schaffe ich es nicht, wenn ich Benutzername & Passwort richtig eingebe, den Unix-Timestamp mit dem Wert "1" zu überschreiben.
Hat jemand eine Idee bzw. findet meinen Fehler****?
class_kunde.php
das Formular, das aus einer texte.php erstellt wird:PHP-Code:<?php
class kunde
{
protected $KndNr;
private $benutzer = "Admin";
private $kennwort = "Hallo";
public function __construct()
{
$this->KndNr = (isset($_SESSION['id'])) ? $_SESSION['id'] : time();
}
public function anmelden($benutzer, $kennwort)
{
if($_POST['benutzerausformular'] == $benutzer &&
$_POST['kennwortausformular'] == $kennwort)
{
$this->KndNr = 1;
}
}
public function getKundenNummer()
{
return $this->KndNr;
}
public function __destruct()
{
$_SESSION['id'] = $this->KndNr;
}
}
?>
seite.php (sobald der Wert auf 1 gesetzt wird, soll das Formular ersetzt werden durch den Admin-Bereich).PHP-Code:$text[5][0]="<form action=\"seite.php\" method=\"post\">
<p><input name=\"benutzerausformular\" /> Name </p>
<p><input type=\"password\" name=\"kennwortausformular\" /> Passwort</p>
<p><input type=\"submit\" value=\"Login\" /></p>
</form>";
Ich danke denen, die bereits helfen (bzw. geholfen haben) und denen, die mir hoffentlich noch etwas weiterhelfenPHP-Code:<?php
require_once("class_webshop.php");
require_once("texte.php");
$art = new webshop("artikeldaten.xml");
if(isset($_REQUEST['pdf']))
{
$art->pdfliste();
}
$art->setTitel("Webshop");
$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)
{
$art->inhalt($text[5]);
}
else
{
$art->inhalt($text[6]);
}
print_r($_POST);
print "<br />";
print_r($_SESSION);
}
$art->fuss();
?>
Euer Partizan
-
Hallo Ihr Lieben,
das Script von Partizan funktioniert so bei mir nicht.
Was mir aufgefallen war ist, dass wenn ich in der seite.php:
austausche gegen:PHP-Code:if($_SESSION['id'] != 1)
{
$art->inhalt($text[5]);
}
else
{
$art->inhalt($text[6]);
}
kommt nur noch die id 1PHP-Code:if($_SESSION['id'] = 1)
{
$art->inhalt($text[6]);
}
else
{
$art->inhalt($text[5]);
}
Ist jemand vielleicht schon weitergekommen?
-
15.10.11 16:20 #10
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Habe genau das gleiche Problem (selbes Script), hat noch jemand vielleicht was rausgefunden?
-
Wie saftmeister beschrieben hat
$_SESSION['id'] = 1 ist nicht $_SESSION['id'] == 1---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hab mich missverständlich ausgedrückt,
habe dieses Script:
und diese FunktionPHP-Code:if($_SESSION['id'] != 1)
{
$art->inhalt($text[5]); // Anmeldeformular
}
else
{
$art->inhalt($text[6]); // Admin-Bereich
}
Stehe aber vor dem Selben Problem, dass wenn ich mich übers Formular anmelde, ich nicht in den Amdin-Bereich komme.PHP-Code:public function anmelden($bn, $pw)
{
if($_POST['bn'] == 'Admin' && $_POST['pw'] == 'Hallo')
{
$this->KndNr = 1;
}
-
19.10.11 15:14 #14
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
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?
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Also hier mal das komplette Hauptprogramm
PHP-Code:<?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();
?>
Das Formular wird aus einer PHP-Datei generiert, in der ich auch die anderen Texte speichere
und hier die class_kunde.php, da steht die Funktion anmeldenPHP-Code:$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>";
Vielleicht ist es jetzt im Zusammenhang ersichtlicher.PHP-Code:<?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;
}
}
?>
Ich glaube, dass es daran liegt, dass ich die Funktion im Hauptprogramm falsch aufrufe, aber kann mich natürlich auch irren.
Ähnliche Themen
-
Csharp Session Management
Von StefanR im Forum .NET Web und KommunikationAntworten: 1Letzter Beitrag: 14.09.09, 11:01 -
Komplexes Session/Cookie Management
Von nullpunkt im Forum PHPAntworten: 6Letzter Beitrag: 23.04.05, 20:23 -
Problem mit Session-Management
Von Moritz123 im Forum PHPAntworten: 2Letzter Beitrag: 01.12.04, 12:57 -
tutorial workaholic session-management
Von fragemann im Forum PHPAntworten: 10Letzter Beitrag: 02.06.03, 12:56



4Danke

Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren