Hallo alle zusammen.
Zurzeit bearbeite ich eine Aufgabe die meinem Lernheft behandelt wird. Nun habe ich ein Problem und komme einfach nicht weiter. Ich hoffe mir kann jemand helfen. Es werden vier Aufgaben verlangt.
Folgende Aufgaben sind gegeben:
1. Erweitern Sie die Klasse „kunde“ um die Methode „anmelden“, die einen Namen und ein Passwort entgegennimmt.
Für das Name-Passwort-Paar -„Admin“/„Hallo“ soll der Wert 1 als Kundennummer in dem Member „$KndNr“ der Kundenklasse gesetzt werden.
Für alle anderen Angaben soll als Kundennummer wieder der Unix-Timestamp in die Kundennummer-Variable eingetragen werden.
2. Erweitern Sie den Konstruktor und den Destruktor der „kunden“-Klasse zum Lesen und Setzen der Session-Variablen „$_SESSION['id']“ nach dem Vorbild der Klasse „sitzungsSeite“.
In dieser Session-Variablen muss die Kundennummer aus dem „kunden“-Objekt abgelegt werden.
Die Klasse "sitzungsSeite" wurde im Lernheft erstellt(INFO) hat aber mit den eigentlichen Aufgaben nichts zu tun.
3. Erstellen Sie ein PHP-Programm für eine Webseite, basierend auf den Klassen „seite“ und der soeben weiterentwickelten Klasse „kunde“ mit einem Anmeldeformular zur Eingabe eines Namens und eines Passwortes. Die Seite soll angezeigt werden, wenn der Administrator noch nicht angemeldet ist bzw. wenn die Methode „getKundennummer()“ den Wert 1 liefert. Bei erfolgreicher Anmeldung des Administrators soll ein Formular ausgegeben werden, um eine Datei – letztlich die Datei „artikeldaten.xml“ – auf den Webserver übertragen zu können.
4.Integrieren Sie in das PHP-Programm der Aufgabe 3 eine (klassische) Funktion (keine Methode einer Klasse), in der die übertragene Datei (aus Aufgabe 3) auf ihren Typ („text/xml“) geprüft und abgespeichert wird, wenn kein Fehler auftritt. Eine Seite mit einer Fehler- oder Erfolgsmeldung muss ausgegeben werden.
So nun zu meinem Problem:
Ich habe meine Klasse "Kunde" , "Seite" , "Index" ( Also mein Hauptprogramm.) und eine Klasse "pruefen" erstellt. Es wird mir auch alles ganz gut angezeigt. Ich kann mich als Admin anmelden und die übertragene Datei (Aufgabe 4) prüfen lassen. Funktioniert einwandfrei! Gebe ich allerdings nicht den richtigen benutzer Namen und das richtige Passwort an, werde ich trotzdem auf die Upload Seite verwiesen, was ja nicht sinn der Sache sein soll. Ich werde al die notwendigen Skripte mitschicken in der Hoffnung jemand hat die Zeit und Lust mir zu helfen. DANKE
Das erste Skript ist meine index.php,
das zweite ist die Klasse "Kunde",
dritte die Klasse "Seite",
vierte ist die pruefen.php
Zurzeit bearbeite ich eine Aufgabe die meinem Lernheft behandelt wird. Nun habe ich ein Problem und komme einfach nicht weiter. Ich hoffe mir kann jemand helfen. Es werden vier Aufgaben verlangt.
Folgende Aufgaben sind gegeben:
1. Erweitern Sie die Klasse „kunde“ um die Methode „anmelden“, die einen Namen und ein Passwort entgegennimmt.
Für das Name-Passwort-Paar -„Admin“/„Hallo“ soll der Wert 1 als Kundennummer in dem Member „$KndNr“ der Kundenklasse gesetzt werden.
Für alle anderen Angaben soll als Kundennummer wieder der Unix-Timestamp in die Kundennummer-Variable eingetragen werden.
2. Erweitern Sie den Konstruktor und den Destruktor der „kunden“-Klasse zum Lesen und Setzen der Session-Variablen „$_SESSION['id']“ nach dem Vorbild der Klasse „sitzungsSeite“.
In dieser Session-Variablen muss die Kundennummer aus dem „kunden“-Objekt abgelegt werden.
Die Klasse "sitzungsSeite" wurde im Lernheft erstellt(INFO) hat aber mit den eigentlichen Aufgaben nichts zu tun.
3. Erstellen Sie ein PHP-Programm für eine Webseite, basierend auf den Klassen „seite“ und der soeben weiterentwickelten Klasse „kunde“ mit einem Anmeldeformular zur Eingabe eines Namens und eines Passwortes. Die Seite soll angezeigt werden, wenn der Administrator noch nicht angemeldet ist bzw. wenn die Methode „getKundennummer()“ den Wert 1 liefert. Bei erfolgreicher Anmeldung des Administrators soll ein Formular ausgegeben werden, um eine Datei – letztlich die Datei „artikeldaten.xml“ – auf den Webserver übertragen zu können.
4.Integrieren Sie in das PHP-Programm der Aufgabe 3 eine (klassische) Funktion (keine Methode einer Klasse), in der die übertragene Datei (aus Aufgabe 3) auf ihren Typ („text/xml“) geprüft und abgespeichert wird, wenn kein Fehler auftritt. Eine Seite mit einer Fehler- oder Erfolgsmeldung muss ausgegeben werden.
So nun zu meinem Problem:
Ich habe meine Klasse "Kunde" , "Seite" , "Index" ( Also mein Hauptprogramm.) und eine Klasse "pruefen" erstellt. Es wird mir auch alles ganz gut angezeigt. Ich kann mich als Admin anmelden und die übertragene Datei (Aufgabe 4) prüfen lassen. Funktioniert einwandfrei! Gebe ich allerdings nicht den richtigen benutzer Namen und das richtige Passwort an, werde ich trotzdem auf die Upload Seite verwiesen, was ja nicht sinn der Sache sein soll. Ich werde al die notwendigen Skripte mitschicken in der Hoffnung jemand hat die Zeit und Lust mir zu helfen. DANKE
Das erste Skript ist meine index.php,
das zweite ist die Klasse "Kunde",
dritte die Klasse "Seite",
vierte ist die pruefen.php
PHP-Code:
require_once ("class_kunde_esa.php");
session_start();
session_destroy();
require_once ("class_seite_esa.php");
$kunde = new kunde;
if (isset($_POST['benutzer']) && isset($_POST['password']))
{
$kunde->anmelden($_POST['benutzer'] , $_POST['password']);
}
if (isset($_POST['benutzer']) && isset($_POST['password']))
{
print "<h1>Willkommen</h1>";
print "<h3>Datei hochladen:</h3>";
print "<form action='pruefen_esa.php' method='post' enctype='multipart/form-data'>";
print "<p><input type='file' name='artikeldaten' size='25' /></p>";
print "<p><input type='submit' value='Senden' /></p></form>";
}
else
{
print "<h1>Login Bereich</h1>";
print "<form action='index_esa.php' method='post'>";
print "<p><input name='benutzer' /> Benutzer</p>";
print "<p><input type='password' name='password' /> Passwort</p>";
print "<p><input type='submit' value='Login' /></p>";
print "</form>";
}
PHP-Code:
class kunde
{
private $KndNr;
public function __construct()
{
session_start();
if(!isset($_SESSION['id']))
{
$_SESSION['id'] = $this->KndNr;
}
}
public function getKundenNummer()
{
return $this->KndNr;
}
public function anmelden($name, $password)
{
if($_POST['benutzer'] == "Admin" && $_POST['password'] == "Hallo")
{
$this->KndNr = 1;
}
else
{
$this->KndNr = time();
}
}
public function destruct()
{
$_SESSION['id'] = $this->KndNr;
}
}
PHP-Code:
class seite
{
private $titeltext;
public function kopf()
{
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"".
" \"http://www.w3.org/TR/html4/strict.dtd\">\n";
print "<html>\n";
print "<head>\n";
print "<meta http-equiv=\"content-type\"".
"content=\"text/html; charset=utf-8\">\n";
if ($this->titeltext != "")
print "<title>".$this->titeltext."</title>\n";
print "</head>\n";
print "<body>\n";
}
public function setTitel($text)
{
$this->titeltext = $text;
}
public function inhalt($daten)
{
foreach ($daten as $value)
{
print $value."\n";
}
}
public function fuss()
{
print "</body>\n";
print "</html>\n";
}
}
PHP-Code:
print "<p>Zur Kontrolle:<br />";
print "Dateiname: "
. $_FILES["artikeldaten"] ["name"] . "<br />";
print "Dateityp: "
. $_FILES["artikeldaten"] ["type"] . "<br />";
print "Abgelegter Dateiname: "
. $_FILES["artikeldaten"] ['tmp_name'] . "<br />";
print "Dateigroeße: "
. $_FILES["artikeldaten"] ["size"] . "<br />";
$id = explode(".",$_FILES["artikeldaten"]["name"]);
$text = $id[count($id)-1];
print "Dateiendung: $text<br />";
if($_FILES["artikeldaten"]["size"]>0 && $text=="xml")
{
copy($_FILES["artikeldaten"]["tmp_name"],"artikeldaten.xml");
print "<p><font size=5>Datei wurde erfolgreich übertragen!</font><br />";
}
else
{
print "<p><font size=5>ERROR: Keine XML-Datei oder Datei nicht vorhanden!</font>";
}
Kommentar