Klasse erweitern

Ich möchte meine Klasse „Kunde“ um die Methode "anmelden erweitern. Sie soll einen Namen und ein Passwort entgegen nehmen. Für das Name-Passwort-Paar soll der Wert 1 als Kundennummer i dem Member $KdnNr der Kundenklasse gesetzt werden.
Ich suche nun schon etwa 14 tg. werde einfach nicht fündig. Könnt ihr mir helfen?
Hier meine Klasse Kunde:

<?php #fertig
class kunde { private $KndNr; public function \_\_construct() { $this-\>KndNr = time(); } public function getKundenNummer() { return $this-\>KndNr; } public function anzeigen($id) { $\_REQUEST[$id]++; # Anzahl der aktuell gewählten Artikel erhöhen #Array aller bestellbarer Artikel und der Anzahl der Vormerkungen #als hidden-Felder anlegen, diese in jedem "sub"-Formular benötigt #werden. foreach($this-\>artikelArray as $key =\> $val) { $tmp["key"] = "\n"; } print " \n"; #Für jeden Artikel ein Formular anlegen foreach ($this-\>artikelArray as $key =\> $value) { print " "; print "(".$\_REQUEST[$key].") ".$value['name']. "\n n"; print " \n"; #hidden-Felder aller Artikel ausgeben foreach ($tmp as $a)print " ".$a; print " \n"; print " \n"; print " \n \n \n"; } print "\n"; } } ?\>

Hallo

Kannst du noch mal ausführlich erklären, was die Methode ‚anlegen‘ machen soll? Ich kann dir irgendwie nicht folgen.

Gruß, sigterm

Ich habe eine Klasse „kunde“ die soll erweitert werden um die Methode anmelden, die einen Namen und ein Passwort entgegennimmt Für das Name-Passwort- Paar soll der Wert 1 als Kundennummer im Member $KndNr der Kundenklasse gesetzt werden Für alle anderen Angaben soll als Kundennummer wiede UNIX-Timestamp in die Kundennummer-Variable eingetragen werden

Hallo

Also es gibt bereits eine Tabelle oder so wo die Name-Passwort-Kombinationen der schon bekannten Kunden drin stehen? und wenn die übergebene Kombination in dieser Tabelle zu finden ist, dann wird $KndNr auf 1 gesetzt?

In dem Fall müsste man natürlich wissen wie diese Tabelle aussehen soll.

Gruß, sigterm

Für diese Datei müsste ich erstmal wissen wie ich die Klasse um dei Methode anmelden erweitere. dann kommt alles weitere.

<?php #fertig
class kunde { private $KndNr; public function \_\_construct() { $this-\>KndNr = time(); } public function getKundenNummer() { return $this-\>KndNr; } public function anzeigen($id) { $\_REQUEST[$id]++; # Anzahl der aktuell gewählten Artikel erhöhen #Array aller bestellbarer Artikel und der Anzahl der Vormerkungen #als hidden-Felder anlegen, diese in jedem "sub"-Formular benötigt #werden. foreach($this-\>artikelArray as $key =\> $val) { $tmp["key"] = "\n"; } print " \n"; #Für jeden Artikel ein Formular anlegen foreach ($this-\>artikelArray as $key =\> $value) { print " "; print "(".$\_REQUEST[$key].") ".$value['name']. "\n n"; print " \n"; #hidden-Felder aller Artikel ausgeben foreach ($tmp as $a)print " ".$a; print " \n"; print " \n"; print " \n \n \n"; } print "\n"; } } ?\>

Willst du den neuen Code direkt in die bestehende Klasse reinschreiben oder per Vererbung eine neue Klasse erstellen, die dann eine Methode mehr hat?

Gruß sigterm

Ich möchte es direkt im die Klasse schreiben

Dann wäre es meiner Meinung erst mal wichtig sich über die Speicherung der Nutzernamen und Passwörter Gedanken zu machen. Die neue Methode sähe dann in etwa so aus:

public function anmelden($name,$pw)
{
 if (Kombination\_gueltig($name, $pw))
 {
 $this-\>KndNr = 1;
 }
 else
 {
 $this-\>KndNr = time();
 }
}

Die Funktion Kombination_gueltig() gibt es in PHP natürlich nicht, aber was dort genau stehen muss hängt von der Art der Passwortspeicherung ab.
Den Teil mit dem else kann man sich auch sparen, weil in __constuct das Gleiche ja schon mal passiert.

Und: Wenn zwei Leute in der gleichen Sekunde die Seite aufrufen, dann bekommen sie auch die gleiche Kundennummer. Ist das so gewollt?

sigterm

Danke erstmal.Werde mich bestimmt nochmal melden.
Einen netten Abend für dich

Übrigens…

Wenn du noch so wenige PHP-Kenntnisse hast, dann solltest du deinen selbstprogrammierten Shop nirgends einsetzen, wo es um richtiges Geld oder um die Daten anderer Leute geht. Denn dein Script wird Sicherheitslücken haben. Und wenn es genug zu holen gibt, dann kommt auch einer und nutzt die aus.

Wenn ich mir heute ansehe, was ich am Anfang so programmiert hab, dann bin ich froh dass das nie wirklich online war.

Gruß sigterm

Wie gesagt ich bin am üben. Wenn es wirklich um Geld geht würde ich wohl auf Professionelle Software zurück greifen. Wenn ich nicht weiterkomme kann ich mich dann bei dir melden?

Wie gesagt ich bin am üben. Wenn es wirklich um Geld geht
würde ich wohl auf Professionelle Software zurück greifen.

Dann ist ja gut. Hier kommen nämlich mitunter Leute an, die sich gerade erst durch ein paar PHP-Tutorials gekämpft haben und dann denken, sie könnten eine funktionierende Verkaufswebsite bauen.

Wenn ich nicht weiterkomme kann ich mich dann bei dir melden?

Ja, meld dich ruhig.

Gruß, sigterm

Nun rufe ich HILFE.
Ich möchte ein PHP Programm für eine Webseite erstellen, das auf den Klassen „seite“ und der Klasse „kunde“ mit einem Anmeldeformular zur Eingabe einens 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. Wenn die Anmeldung erfolgreich ist soll ein Formular ausgegeben werden um die Datei artikeldaten.xml auf den Webserver zu übertragen.
Ich hoffe ich überfordere dich nicht. Hänge einfach mal die vorhandennen Datein an.
Kannst du mir helfen oder super denkanstöße geben?

Lieber Gruß
Karina

Datei class_kunde:

<?php class kunde<br />
{
 private $KndNr;

 public function \_\_construct()
 {
 $this-\>KndNr = time();
 }

 public function getKundenNummer()
 {
 return $this-\>KndNr;
 }
public function anmelden($name,$pw)
{
 if (Kombination\_gueltig($name, $pw))
 {
 $this-\>KndNr = 1;
 }
 else
 {
 $this-\>KndNr = time();
 }
}

public function anzeigen($id)
{
$\_REQUEST[$id]++; # Anzahl der aktuell gewählten Artikel erhöhen
 #Array aller bestellbarer Artikel und der Anzahl der Vormerkungen
 #als hidden-Felder anlegen, diese in jedem "sub"-Formular benötigt
 #werden.
 foreach($this-\>artikelArray as $key =\> $val)
{
 $tmp["key"] = "\n";
}

print " 

\n";
#Für jeden Artikel ein Formular anlegen
foreach ($this->artikelArray as $key => $value)
{
print " „;
print „(“.$_REQUEST[$key].“) „.$value[‚name‘].
„\n n“;
print " \n“;
#hidden-Felder aller Artikel ausgeben
foreach ($tmp as $a)print " „.$a;
print " \n“;
print " \n";
print " \n \n \n";
}
print „\n“;

}
}

?>

Datei class_seite

<?php class seite<br />{
 private $titeltext;

 public function kopf()
 {
 print ""-//W3C//DTD HTML 4.01//EN\"".
 " \"http://www.w3.org/TR/html4/strict.dtd\"\>\n";
 print "\n";
 print " \n";
 print " \n";
 if ($this-\>titeltext != "")
 print " ".$this-\>titeltext."\n";
 print " \n";
 print " \n";
 }

 public function setTitel($text)
 {
 $this-\>titeltext = $text;
 }

 public function inhalt($daten)
 {
 foreach ($daten as $value)
 {
 print $value."\n";
 }
 }

 public function fuss()
 {
 print " \n";
 print "\n";
 }
}
?\>

Datei artikeldaten.xml

<?xml version="1.0" encoding="utf-8"?>Der Herr der Ringe39.9Der kleine Hobbit19.9Grimms Märchen25.9Elric von Melnibonee29.9