| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

25-07-2010, 18:16
|
|
Spunk95
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 95
|
|
Aufrufe, Fragen vorm Löschen und Kommentare über mehrere Seiten
Hey,
ich wusste nicht genau ob ich ins SQL oder PHP Forum posten sollte, wenn ich mich falsch entschieden hab, bitte nicht böse sein 
Habe 3 Fragen:
- Ich habe auf einer Seite eine Anzeige eingebaut, die ausgibt wie viele Aufrufe diese Seite hat. Der Code dazu:
PHP-Code:
$top ++;
$update = "UPDATE uploads SET top ='".$top."'";
Aber so wird natürlich bei jedem Aufruf und bei aktualisieren der Seite die Zahl aktualisiert. Ich würde es gerne auf 1 pro User beschränken, also das bei jedem User nur 1x die Anzeige geUPDATEted (^^) wird. Weiß jemand wie das geht?
- Ich habe eine Kommentar Funktion programmiert und die funktioniert auch sehr gut. Dann hab ich noch hinzugefügt, dass jeder seine eigenen Kommentare löschen und berbeiten kann, auch das hat funktoniert. Jetzt würde ich aber gerne den User nochmal fragen, ob er sein Kommentar wirklich löschen will. Geht das mit onclick ud alert('')? Dann müsste man den "ok" Button mit dem Löschlink verlinken und einen 2ten Button für "NEIN" hinzufügen, bei dem alter Fenster. Weiß aber nicht wie das geht
Oder so ein Kasten im Vordergrund und der Hintergrund wird dunkler, das wär auch stylisch
- Die letzte Frage hat auch mit den Kommentaren zu tun. Wie verteile ich die Kommentare am einfachsten auf mehrere Seiten?
Danke schonmal im Vorraus
|

25-07-2010, 18:45
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
Zitat:
Zitat von Spunk95
Ich würde es gerne auf 1 pro User beschränken, also das bei jedem User nur 1x die Anzeige geUPDATEted (^^) wird
|
Sind die User zu diesem Zeitpunkt eingeloggt? Dann kannst du einen Zeitstempel speichern und vor jeder Aktion prüfen, wie lange die letzte zurückliegt. Ohne Login machst du im Prinzip dasselbe, nur dass du dann alles auf Basis der IP-Adresse machst und diese selbstverständlich ebenfalls speichern musst.
Zitat:
Zitat von Spunk95
Geht das mit onclick ud alert('')? Dann müsste man den "ok" Button mit dem Löschlink verlinken und einen 2ten Button für "NEIN" hinzufügen, bei dem alter Fenster. Weiß aber nicht wie das geht 
|
Neben alert gibt es auch noch confirm.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

25-07-2010, 19:08
|
|
Spunk95
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 95
|
|
Danke AmicaNoctis
Den Confirm Befehl hab ich noch nicht ganz verstanden, aber damit werd ich gleich mal rumexperimentieren.
Zu dem ersten Problem: Teils teils, manche sind eingeloggt, manche nicht. Wo muss ich das mit der IP in der Datenbank speichern?
|

25-07-2010, 19:30
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.309
|
|
Zitat:
Zitat von Spunk95
Zu dem ersten Problem: Teils teils, manche sind eingeloggt, manche nicht. Wo muss ich das mit der IP in der Datenbank speichern?
|
Vergiss das mit der IP. Manche Provider (z.B. AOL) wechseln die alle 30 Sekunden. Arbeite statt dessen mit Sessions.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

25-07-2010, 19:53
|
|
Spunk95
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 95
|
|
Okay, dass tu ich eh schon. $_Session["user_ud"] ist bei mir die id des users. Muss ich das dann in der user Tabelle abspeichern? Oder reicht es in ner Variablen?
Danke schonmal
|

25-07-2010, 22:19
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
nee .. du speicherst in der Session eine weitere Variable , ob für diesen User das Update schon gezählt wurde .. etwa in dieser weise
PHP-Code:
if ($_SESSION['update']==FALSE) {
$_SESSION['update']=TRUE;
$top ++;
$update = "UPDATE uploads SET top ='".$top."'";
mysql.query($update); // oder wie du das halt an die Datenbank durchreichst
}
mit diesem Code wird top für diesen User nur einmal incrementiert...
im ProgrammTeil, der ausgeführt wird, wenn sich ein User einloggt müsste sich natürlich entsprechend einmal eine Zuweisung
PHP-Code:
$_SESSION['update']=FALSE;
finden, die nachweislich nur einmal ausgeführt wird
__________________
Wer LESEN kann, ist klar im Vorteil!
Geändert von eagle275 (25-07-2010 um 22:22 Uhr)
|

25-07-2010, 23:02
|
|
Spunk95
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 95
|
|
Vielen Dank eagle, werd ich gleich mal ausprobieren
Nochmal zu dem confirm problem:
Es klappt, aber wenn man auf abbrechen klickt kommt man ebenfalls auf den Löschlink (hier mal durch index.php ersetzt):
PHP-Code:
<a href="index.php" onClick="confirm('Bist Du sicher, dass Du den Eintrag Löschen willst?')"> <img src="style/img/delete.png"></a>
Geändert von Spunk95 (26-07-2010 um 10:58 Uhr)
|

25-07-2010, 23:18
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Natürlich; wenn du willst, dass die Default-Aktion eines Link-Klicks unterbunden wird, musst du false zurückgeben. (Bzw. in diesem Fall kann gleich das Ergebnis der confirm-Abfrage zurückgegeben werden, denn die liefert true oder false.)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

25-07-2010, 23:19
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Spunk95
Nochmal zu dem confirm problem:
Es klappt, aber wenn man auf abbrechen klickt kommt man ebenfalls auf den Löschlink (hier mal durch index.php ersetzt)
|
Code:
<a href="index.php" onclick="return confirm('Bist du sicher, dass du den Eintrag löschen willst?')">…</a>
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

25-07-2010, 23:30
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Eine Löschaktion mittels einem Link zu triggern ist sehr gewagt. Dazu fallen mir folgende 4 Szenarien ein:
1. Eine Suchmaschine schafft es irgendwie auf eine Seite mit Löschlinks und trampelt alle Links ab -> Schwupps, alle Daten sind weg.
2. JavaScript im Browser ist deaktiviert -> Die Sicherheitsabfrage fällt weg.
3. Der Benutzer hat ein Pre-Caching Proxy oder Browser-Plugin -> alle Links auf der Seite werden vorab geladen -> Ergebnis siehe 1.
4. Jemand postet getarnte Löschlinks auf seiner Webseite oder in einer E-Mail. Ein eingeloggter Admin geht auf so eine Seite -> Ergebnis siehe 1.
|

26-07-2010, 11:02
|
|
Spunk95
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 95
|
|
Zitat:
Zitat von h3ll
Eine Löschaktion mittels einem Link zu triggern ist sehr gewagt. Dazu fallen mir folgende 4 Szenarien ein:
1. Eine Suchmaschine schafft es irgendwie auf eine Seite mit Löschlinks und trampelt alle Links ab -> Schwupps, alle Daten sind weg.
2. JavaScript im Browser ist deaktiviert -> Die Sicherheitsabfrage fällt weg.
3. Der Benutzer hat ein Pre-Caching Proxy oder Browser-Plugin -> alle Links auf der Seite werden vorab geladen -> Ergebnis siehe 1.
4. Jemand postet getarnte Löschlinks auf seiner Webseite oder in einer E-Mail. Ein eingeloggter Admin geht auf so eine Seite -> Ergebnis siehe 1.
|
Okay, da hast du Recht. Wie mach ichs denn besser? ^^
@AmicaNoctis: Habs editiert. Das andere hab ich nicht so verstanden, werd mir den Link aber mal durchlesen
@wahsaga: Wie mache ich das denn? Bzw, jetzt hat h3ll ja gesagt, ich solls lieber nicht so machen ^^
|

26-07-2010, 11:30
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
Löschen nur über Formular-Buttons .. Suchmaschinen "trampeln" da nicht drauf .... außerdem kann dann das mit gespeicherten versteckten Löschlinks auch nicht klappen.. und Buttons funktionieren auch bestens ohne JavaScript (im Falle von <input type="submit" ......>)
alles was du nun tun kannst, wäre noch eine Sicherheitsabfrage, so dass ein Klick aus "versehen" nicht gleich zum Datenverlust führt - wobei du das noch koppeln kannst , indem "gelöschte" Daten in eine Backup-Tabelle verschoben werden und erst dann aus der Haupt-Tabelle verschwinden ....
gerade im geschäftlichen Umfeld wär ich mit dem Löschen von Daten eher vorsichtig - Finanzamt lässt grüßen (bestimmte Daten MÜSSEN x Jahre zuverlässig archiviert vorhanden sein, sonst gibts unter Umständen Haue von den Finanz- und Steuerwächtern)
__________________
Wer LESEN kann, ist klar im Vorteil!
|

26-07-2010, 11:37
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Man muss die Daten übrigens nicht wirklich löschen. Es würde auch reichen einen Datensatz einfach als gelöscht zu markieren. So kann man ihn jederzeit und problemlos wiederherstellen.
|

26-07-2010, 15:04
|
|
Spunk95
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 95
|
|
Hmm, es handelt sich ja um Kommentare, muss man die aufbewahren? ^^
okay, dann lass ich sie einfach als gelöscht markieren über denk Link. Aber wäre da eine "Wirklich löschen?" Abfrage nicht auch sinnvoll? Da hab ich noch nicht verstanden, wie ich das jetzt am besten hinbekomme
Danke schonmal für die schenellen Antworten
|

26-07-2010, 15:07
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitat:
|
Aber wäre da eine "Wirklich löschen?" Abfrage nicht auch sinnvoll? Da hab ich noch nicht verstanden, wie ich das jetzt am besten hinbekomme
|
Das hatten wir doch schon weiter oben im Thread...
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|