editieren/löschen Funktion für eigene HP verwenden
-
- Mitglied
- Beiträge: 119
- Registriert: 26.03.2004 16:39
editieren/löschen Funktion für eigene HP verwenden
Hallo,
ich möchte für meine Site ein kleines "Schwarzes Brett" bauen. Dabei sollen nur die User die angemeldet sind, inserieren können. Das läßt sich ja ganz gut mit der dem Artikel aus der Doku realisieren.
Als zusätzliche Funktion, sollen die User, die inseriert haben, ihr Inserat editieren bzw. auch wieder löschen können. Dazu wollte ich die Funktion des Forums nutzen, wo auch nur der User sein Beitrag editieren kann, der ihn auch geschrieben hat.
Wer kann mir da auf die Sprünge helfen? Ich habe bereits in der viewtopic.php nach dem entsprechenden Code gesucht, aber so richtig schlau bin ich nicht draus geworden.
ich möchte für meine Site ein kleines "Schwarzes Brett" bauen. Dabei sollen nur die User die angemeldet sind, inserieren können. Das läßt sich ja ganz gut mit der dem Artikel aus der Doku realisieren.
Als zusätzliche Funktion, sollen die User, die inseriert haben, ihr Inserat editieren bzw. auch wieder löschen können. Dazu wollte ich die Funktion des Forums nutzen, wo auch nur der User sein Beitrag editieren kann, der ihn auch geschrieben hat.
Wer kann mir da auf die Sprünge helfen? Ich habe bereits in der viewtopic.php nach dem entsprechenden Code gesucht, aber so richtig schlau bin ich nicht draus geworden.
-
- Mitglied
- Beiträge: 119
- Registriert: 26.03.2004 16:39
ok nochmal anders ausgedrückt;
Wie kann ich die Funktionen "editieren/löschen" aus dem Forum für meine eigene Seite einbauen? Wie gesagt, die Seite ist nach der Doku in das Forum integriert und die User können Inserate aufgeben. Diese sollen nun durch den entsprechenden User bearbeitet (editiert/gelöscht) werden können.
Vielen Dank und beste Grüße
Wie kann ich die Funktionen "editieren/löschen" aus dem Forum für meine eigene Seite einbauen? Wie gesagt, die Seite ist nach der Doku in das Forum integriert und die User können Inserate aufgeben. Diese sollen nun durch den entsprechenden User bearbeitet (editiert/gelöscht) werden können.
Vielen Dank und beste Grüße
-
- Mitglied
- Beiträge: 119
- Registriert: 26.03.2004 16:39
Eigentlich meinte ich nur die Vorlage, wie man ne Seite einbaut:
http://www.phpbb.de/doku/kb/artikel.php ... ht=include
Da steht ja auch beschrieben, wie man die Sache regelt, wenn die User eingeloggt sind und wenn nicht.
Die Inserate, werden einfach in ne DB geschrieben, wo auch phpBB drin ist. Ich habe einfach nur ein neues Feld angelegt, wo die Inserate rein geschrieben werden.
Mir geht es eigentlich nur um den php Code, wo die Regelung steht, ob ein User seinen Artikel bearbeiten/löschen kann.
http://www.phpbb.de/doku/kb/artikel.php ... ht=include
Da steht ja auch beschrieben, wie man die Sache regelt, wenn die User eingeloggt sind und wenn nicht.
Die Inserate, werden einfach in ne DB geschrieben, wo auch phpBB drin ist. Ich habe einfach nur ein neues Feld angelegt, wo die Inserate rein geschrieben werden.
Mir geht es eigentlich nur um den php Code, wo die Regelung steht, ob ein User seinen Artikel bearbeiten/löschen kann.
-
- Mitglied
- Beiträge: 119
- Registriert: 26.03.2004 16:39
Ok, also ich bin in Sachen php noch nicht so fit, deshalb hab ich noch ein paar Fragen.
Ich habe mir jetzt eine Tabelle angelegt, wo ich alle diversen Sachen des Inserats rein schreibe (es geht hier als erstes um "Gesuche", also ich werde das noch weiter ausbauen, aber ich fang halt erst mal mit den Gesuchen an
). Dort drin steht z.B Beschreibung, Preis von/bis, Zustand und dann halt auch der User. Dafür gibt es im Formular ein Feld, indem, wenn der User angemeldet ist, sein Username erscheint.
Ich muss also die ID des Userers, der das Inserat aufgegeben hat, aus der DB abfragen und mittels $userdata['user_id'] vergleichen ???
$userdata['user_id'] ermittelt also dir ID des User, oder wie?
Wie würde denn die Abfrage der User-ID lauten, die ich dann mit $userdata['user_id'] vergleiche?
Select form phpbb_users where user id = $userdata['user_id'] ???
Beste Grüße
Ich habe mir jetzt eine Tabelle angelegt, wo ich alle diversen Sachen des Inserats rein schreibe (es geht hier als erstes um "Gesuche", also ich werde das noch weiter ausbauen, aber ich fang halt erst mal mit den Gesuchen an

Ich muss also die ID des Userers, der das Inserat aufgegeben hat, aus der DB abfragen und mittels $userdata['user_id'] vergleichen ???
$userdata['user_id'] ermittelt also dir ID des User, oder wie?
Wie würde denn die Abfrage der User-ID lauten, die ich dann mit $userdata['user_id'] vergleiche?
Select form phpbb_users where user id = $userdata['user_id'] ???
Beste Grüße
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
Keine Ahnung was du bezweckst....Groovecommander hat geschrieben: Ich muss also die ID des Userers, der das Inserat aufgegeben hat, aus der DB abfragen und mittels $userdata['user_id'] vergleichen ???
$userdata['user_id'] ermittelt also dir ID des User, oder wie?
Wie würde denn die Abfrage der User-ID lauten, die ich dann mit $userdata['user_id'] vergleiche?
Select form phpbb_users where user id = $userdata['user_id'] ???
Beste Grüße
Ich kann Tables verknüpfen z.B.
$userdata['user_id'] -> ist ein Hundsgewöhnliches Array mit einem String-Indize
Und das bekommt im eigentlichen Sinne ja irgendwo seine Daten her sonst wäre es sinnigerweise leer
-
- Mitglied
- Beiträge: 119
- Registriert: 26.03.2004 16:39
Bei einem Formular schickt man doch die eingegebenen Daten an eine Datei, die dann die Daten verarbeitet und z.B in eine DB schreibt.
Wie kann ich das Array ($userdata[user_id]) an das Script schicken, das die Formulareingaben verarbeitet ? Es soll halt mit dem Formular geschickt werden, wenn das irgendwie möglich ist.
Wie kann ich das Array ($userdata[user_id]) an das Script schicken, das die Formulareingaben verarbeitet ? Es soll halt mit dem Formular geschickt werden, wenn das irgendwie möglich ist.
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
Für solche Fällen werden Sessions verwendet, welche so klein wie möglich sein sollte....Groovecommander hat geschrieben:Bei einem Formular schickt man doch die eingegebenen Daten an eine Datei, die dann die Daten verarbeitet und z.B in eine DB schreibt.
Wie kann ich das Array ($userdata[user_id]) an das Script schicken, das die Formulareingaben verarbeitet ? Es soll halt mit dem Formular geschickt werden, wenn das irgendwie möglich ist.
Also bevor dir Blutgerinsel alle Möglichkeiten hier auflistet die dich auf umwegen zum Ziel bringt, möchte ich noch schnell mein Senf dazugeben 
Da du nach dieser Vorlage arbeitest ist es einfach dir eine Hilfestellung zu geben.
Als erstes solltest du eine Seite (z. B. inserate_edit.php) erstellen und nur den Link zu dieser Seite anzeigen lassen, wenn der User auch angemeldet ist. Das kannste wie folgt bewerkstelligen:
in der Templates sie das dann so aus:
So und wenn er nun seine Einträge editieren möchte, wäre eine gute Idee seine eingtragenen Inserate anzeigen zu lassen (und zwar nur seine).
Dies kannste mit so einer SQL-Anweisung machen:
So mit haste im Array $inserate alle Daten die du in der Datenbank gesichert hast enthalten. Als Index stehen nun die Feldnamen wie userid, title oder sowas zur Verfügung.
Nun solltest du bei der Stelle wo //Anweisung steht, deinen Code schreiben um die einzelnen Einträge auszugeben.
Nun solltest du bei jedem deiner Inserate einen Link haben der eine Variable mit der GET-Methode (z. B. inserate_edit.php?mode=edit, in diesem Beispiel ist mode die Variable und edit der Inhalt der Variable, mit $HTTP_GET_VARS['mode'] kannste abfragen ob diese gesetzt ist und wenn ja, ob sie edit oder evtl. del beinhaltet) übergibt.
Tipp:
fürs editieren machste am einfachsten mode=edit
und fürs löscehn machst du mode=del
und die ID des Inserates mit übergeben wie zum Beispiel: id=$inserate['id']
Einen GET-String zu Bilden mit den oberen Daten sollte dann so aussehen:
? bedeutet für den Browser, das alles was danach folgt, Daten für das Script sind
zwei Variablen tust du mit einem & (in HTML &) von einander trennen.
Wenn nun der User auf einen der Links klickt, solltest du dafür in der selben PHP-Datei eine if-Abfrage haben wie folgt:
Bei beiden Methoden verwendest du nun Formulare mit der POST Methode und kannst dann deine if - else Anweisung noch erweitern:
Um nun diese Variablen nun via HTML zu übergeben verwendest du die hidden-Tags:
Ich hoffe das hat dir weitergeholfen.
wenn was net klar sein sollte oder auf bestimmte Sachen weiter eingehen möchtest: Frag
Alle Angaben wie MySQL Tabelle phpbb_inserate müsstest du dann eh angleichen.
Mfg
MrMind

das Array brauchste net weiter zu geben, da alle deine Seiten die du erstellst so aussehen sollten. Somit wird das Array $userdata immer wieder ersetllt.Bei einem Formular schickt man doch die eingegebenen Daten an eine Datei, die dann die Daten verarbeitet und z.B in eine DB schreibt.
Wie kann ich das Array ($userdata[user_id]) an das Script schicken, das die Formulareingaben verarbeitet ? Es soll halt mit dem Formular geschickt werden, wenn das irgendwie möglich ist.
Da du nach dieser Vorlage arbeitest ist es einfach dir eine Hilfestellung zu geben.
Als erstes solltest du eine Seite (z. B. inserate_edit.php) erstellen und nur den Link zu dieser Seite anzeigen lassen, wenn der User auch angemeldet ist. Das kannste wie folgt bewerkstelligen:
Code: Alles auswählen
if( $userdata['user_id'] != ANONYMUS )
{
assign_block_vars('inserat_edit', array('LINK' => '<a href="inserate_edit.php">Inserate bearbeiten</a>'));
}
Code: Alles auswählen
<!-- BEGIN inserat_edit -->
{LINK}
<!-- END inserat_edit -->
Dies kannste mit so einer SQL-Anweisung machen:
Code: Alles auswählen
$sql = "SELECT * FROM phpbb_inserate WHERE userid = '" . $userdata['user_id'] . "'";
$result = $db->sql_query($sql);
while( $inserate = $db->sql_fetchrow($result) )
{
//Anweisung
}
Nun solltest du bei der Stelle wo //Anweisung steht, deinen Code schreiben um die einzelnen Einträge auszugeben.
Nun solltest du bei jedem deiner Inserate einen Link haben der eine Variable mit der GET-Methode (z. B. inserate_edit.php?mode=edit, in diesem Beispiel ist mode die Variable und edit der Inhalt der Variable, mit $HTTP_GET_VARS['mode'] kannste abfragen ob diese gesetzt ist und wenn ja, ob sie edit oder evtl. del beinhaltet) übergibt.
Tipp:
fürs editieren machste am einfachsten mode=edit
und fürs löscehn machst du mode=del
und die ID des Inserates mit übergeben wie zum Beispiel: id=$inserate['id']
Einen GET-String zu Bilden mit den oberen Daten sollte dann so aussehen:
Code: Alles auswählen
inserate_edit.php?mode=edit&id=$inserate['id']
zwei Variablen tust du mit einem & (in HTML &) von einander trennen.
Wenn nun der User auf einen der Links klickt, solltest du dafür in der selben PHP-Datei eine if-Abfrage haben wie folgt:
Code: Alles auswählen
if( $HTTP_GET_VARS['mode'] == 'edit' )
{
/*
Anweisung: Ein Formular ausgeben um das Inserat zu editieren
*/
}
else if( $HTTP_GET_VARS['mode'] == 'del' )
{
/*
Anweisung: Eine Sicherheitsabfrage ob der User das Inserat wirklich löschen möchte
*/
}
else
{
//Hier die Anweisung um die Liste auszugeben
}
Code: Alles auswählen
//Zwischen else if{} und else einfügen:
else if( $HTTP_POST_VARS['mode'] == 'save' )
{
// Anweisung um den editierten Beitrag in der Datenbank Upzudaten
}
else if( HTTP_POST_VARS['mode'] == 'y_del' )
{
// Anweisung um den Beitrag nach dem einstimmen des Users zu löschen
}
Code: Alles auswählen
<input type="hidden" name="mode" value="save" \>
wenn was net klar sein sollte oder auf bestimmte Sachen weiter eingehen möchtest: Frag

Alle Angaben wie MySQL Tabelle phpbb_inserate müsstest du dann eh angleichen.
Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Coder unter Linux