Funktion(en) (speichern)

nicinurc

Grünschnabel
Ähm also ich iii hab da ein Problem. Ich hab mit PHP ein Gästebuch mit allem(captcha..usw) drum und dran programmiert.
Jetzt soll ich es Objektorientiert machen. Hab schon die Klassen und so festgelgt, bis jetzt kann ich mit den Klassen nur anzeigen lassen, jedoch nicht speichern, wie mach ich das, und wo, aaaaaaaaaa ? hilfe (also ich habe eine Gaestebuch-, Eintrag-, Formular-, Captcha und Index.class.php)
Die main() ist in Gaestebuch.class.php und sonst hab ich in den Klassen halt die Funktionen ausgeben(), getAusgabe() und generiere(). Aber die Einträge die gemacht werden, sollen auch gespeichert wreden-.
 
Indem du dementsprechende Methoden schreibst die die Formulareingaben in die Datenbank speichern?

Also quasi dann nach abschicken des Formulars mit der Methode z.B.
PHP:
save_gb_entry($name,$nachricht)
speichern.

Ich muss auch sagen, dass ich glaub, dass ich deiner Frage nicht so richtig folgen kann.
 
Also ich glaube so ganz kann ich dir nicht folgen: Also hier kommt meine Klasse Eintrag.class.php


<?php
class Eintrag {
// Klassenvariablen
var $name;
var $email;
var $homepage;
var $herkunft;
var $text;
var $id;
var $datum;
var $uhrzeit;
var $eintraege = array();


//Konstruktor
function Eintrag($id="") {

if ($id !=""){ //wenn id nicht gleich leer
$abfrage = "SELECT * FROM gaestebuch WHERE id=".$id; //hole id aus der datenbank
$ergebnis = mysql_query($abfrage);
if ($row=mysql_fetch_object($ergebnis)) { //dann greife auf die Eigenschaften des Objektes
$this->name=$row->name;
$this->email=$row->email;
$this->homepage=$row->homepage;
$this->herkunft=$row->herkunft;
$this->eintrag=$row->text;
//print_r($this);
return true;
}else {
return false;
}
/*
$timestamp=time();
$datum=date("d.m.Y" .$timestamp);
$uhrzeit=date("H:i","-" .$timestamp);

$this->datum=$datum;
$this->uhrzeit=$uhrzeit;
*/}
}
function speichern() {

}
//-----------------------------------------------------------------------------------------------
function getAusgabe() { //ausgeben
return $this->name;
return $this->email;
return $this->homepage;
return $this->herkunft;
return $this->text;
}
} // Ende Class Eintrag()
?>


Hier fehlt halt nur noch die Funktion speichern() {
hab aber keine ahunung wie ich das anstellen soll, hab schon etliche sachen ausprobiert.
 
PHP:
function getAusgabe() { //ausgeben
return $this->name;
return $this->email;
return $this->homepage;
return $this->herkunft;
return $this->text;
}

Also soweit ich weiß, funktioniert das nicht...
Da dürfte nur der erste return benutzt werden, der Rest wird ignoriert.
 
ja, hab jetzt die Funktion speicher() aber da stimmt glaub ich noch immer was nicht und die funtion getAusgabe hab ich jetzt.

<?php
class Eintrag {
// Klassenvariablen
var $name,$email, $homepage, $herkunft,$text,$id,$datum,$uhrzeit;

//Konstruktor
function Eintrag($id="") {

if ($id !=""){ //wenn id nicht gleich leer
$abfrage = "SELECT * FROM gaestebuch WHERE id=".$id; //hole id aus der datenbank
$ergebnis = mysql_query($abfrage);
if ($row=mysql_fetch_object($ergebnis)) { //dann greife auf die Eigenschaften des Objektes
$this->name=$row->name;
$this->email=$row->email;
$this->homepage=$row->homepage;
$this->herkunft=$row->herkunft;
$this->eintrag=$row->eintrag;
//print_r($this);
return true;
}else {
return false;
}
/*
$timestamp=time();
$datum=date("d.m.Y" .$timestamp);
$uhrzeit=date("H:i","-" .$timestamp);

$this->datum=$datum;
$this->uhrzeit=$uhrzeit;
*/}
}
function speichern() {
$sql = "INSERT INTO gaestebuch SET name='".$this->name."', email = '".$this->email."', ";
$sql.= "homepage='".$this->homepage."', herkunft='".$this->herkunft."', text='".$this->eintrag."'";
mysql_query($sql);
}

//-----------------------------------------------------------------------------------------------
function getAusgabe() { //ausgeben
return $this->name."-".$this->email."-".$this->homepage."".$this->herkunft."-".$this->eintrag.'</br>';
}


} // Ende Class Eintrag()
?>
 
Für die Funktion speichern() solltest du die Werte aus dem Formular übergeben.
Sprich Nachricht, Name was du eben dort so hast in deinem Gästebuchformular.
Deine ganzen Variablen mit $this->name etc. werden ja gefüllt, wenn du einen Gästebucheintrag ausgeben möchtest....


PHP:
function speichern($name, $email, $homepage, $herkunft, $text) {
$sql = "INSERT INTO gaestebuch SET name='".$name."', email = '".$email."', ";
$sql.= "homepage='".$homepage."', herkunft='".$herkunft."', text='".$eintrag."'";
mysql_query($sql);
}
 
Und wie mach ich das, dass ich die Werte aus dem Formular übergebe, (hab grad erst mit oop angefangen, fällt mir schon etwas schwer, so der dirkete einstieg ) ?
please helllpp
 
Du schickst dein Forumlar ja ab.
Danach hast du alle benötigten Daten im Array $_POST, gesetz dem Fall du überträgst mittels POST.


So danach machst du ein Object deiner Klasse u. rufst die Funktion auf.
$_POST['Formularfeldname'];
PHP:
$guestbook = new Eintrag();
$guestbook->speichern($_POST['name'], $_POST['email'], $_POST['homepage'], $_POST['herkunft'], $_POST['text']);
 
Zurück