SELFPHP: Version 5.8.1 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche


International PHP Conference


WebTech Conference



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



PHP Summit


Software Architecture Summit


:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 
HTML5 Days


JavaScript Days


:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Deine Leidenschaft ist die Unterwasserfoto-grafie?


Dann ist Qozido genau das Richtige für Dich!

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!

www.qozido.de

 


Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 13.06.2009, 13:02:06
mimatete mimatete ist offline
Anfänger
 
Registriert seit: Jun 2009
Beiträge: 9
mimatete befindet sich auf einem aufstrebenden Ast
doppelte einträge im gästebuch nach browseraktualisierung (oder F5) vermeiden

Hallo liebe Experten!

Mein Gästebuch, wohl bemerkt ohne DB, mach endlich, was es soll, sogar in Farbe (www.meinphp.mimatete.de/p3.php). Es macht aber sogar mehr - und zwar wenn man ein Beitrag abschickt und dann die Seite aktualisiert (per Schalter des Browsers oder F5, ich habe Firefox) schreibt das Prog den letzten Beitrag noch Mal ins Buch (dabei sind die Imput-Felder schon leer).
Ich habe folgendes Versucht (nicht gleichzeitig):
den Abschnitt mit
"öffne Datei mit Option 'a', schreibe ein Satz mit Tilden dazwischen, schließe Datei"
habe ich

1. zwischen IF (isset($_POST["Senden"])) und unset($_POST["Senden"]); gestellt
2. zwischen if (($_POST["Senden"])=="Abschicken") und $_POST["Senden"] =""; gestellt

(es handelt sich um die SUBMIT-schaltfläche mit dem Namen SENDEN und dem Wert ABSCHICKEN)

Ich glaube, dass man das Schreiben in die Datei unterbinden kann. Ziel ist: NUR dann schreiben, wenn die Daten per diese besondere Schaltfläche gesendet werden und nicht mit F5.
Bitte um ein Wink. Ich habe keinen Code eingefügt, weil Ihr Menschen und NICHT Parser seid. Mein Problem ist wirklich gut beschrieben.
Danke
mimatete
Mit Zitat antworten
  #2  
Alt 13.06.2009, 13:09:15
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Beiträge: 2.225
DokuLeseHemmung befindet sich auf einem aufstrebenden Ast
AW: doppelte einträge im gästebuch nach browseraktualisierung (oder F5) vermeiden

Erzeuge eine zufalls "TAN" speichere sie in Session und gib sie als verstecktes Formfeld mit. Vor dem Speichern prüfe die gültikeit der TAN. Nach dem Speichern lösche die TAN in Session.
Mit Zitat antworten
  #3  
Alt 14.06.2009, 13:16:24
mimatete mimatete ist offline
Anfänger
 
Registriert seit: Jun 2009
Beiträge: 9
mimatete befindet sich auf einem aufstrebenden Ast
AW: doppelte einträge im gästebuch nach browseraktualisierung (oder F5) vermeiden

Herzlichen Dank.

Folgendes habe ich gemacht:
1. gleich am Anfang des Formulars folgene Zeile eingefügt:
<input type="hidden" name="istweg" value=1>

2. vor dem öffnen der Datei mit den Einträgen:
if ($_POST["istweg"] == 1)

3. Nach dem Schließen der Datei zwei Varianten ausprobiert:
  • unset($_POST["istweg"]);
  • $_POST["istweg"] = "";

Leider ist das Programm sehr stur und wiederholt die Ausgabe weiter. Jede Aktualisierung bring eine neue Zeile in die Datei. Hmmmm.....
Ich habe auch nach dem eine Zeile in die Datei geschrieben wurde die entsprechende Variable auf NIX gesetzt. Wo befinden sich die Daten, die wiederholt reigeschrieben werden? im Cache? Ich habe zwar sehr viel über Computer gelernt, aber dieses Verhalten war nicht dabei :(
Hat noch jemand eine Idee?
Stört es, dass die Plausibilitätskontrolle von JS realisiert wird? Ich habe gelesen, dass es ohne Probleme geht und sogar empfohlen wird.

Danke
mimatete
Mit Zitat antworten
  #4  
Alt 14.06.2009, 13:22:33
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Beiträge: 2.225
DokuLeseHemmung befindet sich auf einem aufstrebenden Ast
AW: doppelte einträge im gästebuch nach browseraktualisierung (oder F5) vermeiden

Zitat:
Wo befinden sich die Daten, die wiederholt reigeschrieben werden? im Cache?
Im Browser Cache!
Und da kommst du mit PHP nicht dran.
Es ist also sinnfrei, im Post Array rumzurühren.
Mit Zitat antworten
  #5  
Alt 15.06.2009, 10:01:26
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 28
Beiträge: 899
Indyk befindet sich auf einem aufstrebenden Ast
Indyk eine Nachricht über ICQ schicken
AW: doppelte einträge im gästebuch nach browseraktualisierung (oder F5) vermeiden

Hallo mimatete,

du hast zwei gebräuchliche lösungen zu auswahl, einmal die von DokuLeseHemmung vorgeschlagene token lösung, und zum anderen kannst du den user nach der formularverarbeitung weiterleiten, ich zitiere:
Zitat:
Zitat von Besser PHP Programmieren, Kapitel 9 Praxis-Lösungen für den Programmieralltag
Eine Zweite Möglichkeit, mit dem Problem umzugehen, ist, den Benutzer einfach zu "forwarden". Das heißt, dass der User, nachdem die Daten gespeichert wurden, mit Hilfe der Funktion header() umgeleitet wird. Auch damit kann man die Seite "reaload-sicher" machen, da das Versenden der Daten dann nicht mehr in der History des Browsers bleibt; es wird durch die Weiterleitung ersetzt.
Mit Zitat antworten
  #6  
Alt 15.06.2009, 17:02:52
mimatete mimatete ist offline
Anfänger
 
Registriert seit: Jun 2009
Beiträge: 9
mimatete befindet sich auf einem aufstrebenden Ast
AW: doppelte einträge im gästebuch nach browseraktualisierung (oder F5) vermeiden

Ach, Ihr lieben Experten,

ich habe nicht nur die 2 Möglichkeiten.

Jetzt gehen "Eingabe" und "Auswertung + Darstellung" getrennte Wege und sind in Frames eingebetet. Ich weiss, dass man Frames nicht mag. Aber jetzt ist mein GB sehr schön und funktioniert (http://www.meinphp.mimatete.de/GB2/gb2.htm).

Wenn man programmiert darf man sich nicht so versteifen auf 2 oder 3 Lösungen.
Vielle Wege führen ins Ziel, auch wenn sie manchmal sehr komisch aussehen.

Ich werde versuchen Euch nicht mehr zu beanspruchen. Ihr seid mir ... zu trocken. Vielleicht, weil Ihr (alle?) Männer seid. Es ist wirklich nicht angenehm von Euch beratschlagt zu werden (mit eine einzige Ausnahme - DokuLeseHemmung). Ich habe keine Komplexe oder Vorurteile, vielleicht bin ich in meiner Krankheit ein wenig dünnhäutig geworden.
Nicht alle Programmierer sind gefühllose Eremiten. Und nicht alle sind Männer ;o)

mimatete
Mit Zitat antworten
  #7  
Alt 15.06.2009, 17:12:37
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 28
Beiträge: 899
Indyk befindet sich auf einem aufstrebenden Ast
Indyk eine Nachricht über ICQ schicken
AW: doppelte einträge im gästebuch nach browseraktualisierung (oder F5) vermeiden

Hallo mimatete,

Zitat:
du hast zwei gebräuchliche lösungen zu auswahl
Damit meinte ich das es 2 Wege gibt die sich bewehrt haben und auf die oft zurück gegriffen wird. Da steht in keinster weise das es nicht möglich ist diese Problematik auf 1000000 anderen wegen zu lösen.

Das man frames nicht benutzt hat seine Gründe, die dir anscheinend nicht wichtiger sind als deine exotische lösung.

Tut mir leid wenn wir versuchen schnell und kompetent zu helfen und keinen kaffe und kuchen verteilen.
Mit Zitat antworten
  #8  
Alt 15.06.2009, 17:46:18
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Beiträge: 2.225
DokuLeseHemmung befindet sich auf einem aufstrebenden Ast
AW: doppelte einträge im gästebuch nach browseraktualisierung (oder F5) vermeiden

Danke für die Blumen.
(Nicht alle sehen das so)
Eigentlich bin ich hier dafür "berühmt", dass ich "Denkblockierte" ordendlich zusammenfalte.
(habe hier fast mehr Feinde als Freunde)

Aber das mit dem M/W Gedöns ist mir wurscht. Ich antworte als Neutrum(zumindest versuche ich es).

Zum Thema:
Auch meines bescheidenen Wissens nach, gibts nur diese 2 genannten praktikablen Möglichkeiten. Wie du das per Frames abgehandelt hast, KA. Kann ich mir auch nicht vorstellen.

PS:
Ich habe es gerade mal getestet...
Doppelte Einträge sind über F5 problemlos möglich.

Mache meine Beiträge ruhig weg.....(zumindest den doppelten)

Geändert von DokuLeseHemmung (15.06.2009 um 17:47:18 Uhr)
Mit Zitat antworten
  #9  
Alt 16.06.2009, 04:19:58
Big-Gremlin Big-Gremlin ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 27
Beiträge: 46
Big-Gremlin befindet sich auf einem aufstrebenden Ast
AW: doppelte einträge im gästebuch nach browseraktualisierung (oder F5) vermeiden

@DokuLeseHemmung

zusammenfalten??? naja...ich finde nur, dass du teils eine seltsame Art zu antworten hast wenn man nicht gleich auf den Punkt kommt Oo

wie auch immer....das mit den Frames klappt bei mir auch nich so ganz...kenne auch nur die 2 besagten Lösungen...wobei ich eher zur zweiten tendiere.... man muss bei header() halt nur aufpassen, dass keine Ausgabe vorher kommt
Mit Zitat antworten
  #10  
Alt 16.06.2009, 08:27:31
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Beiträge: 1.941
cortex befindet sich auf einem aufstrebenden Ast
AW: doppelte einträge im gästebuch nach browseraktualisierung (oder F5) vermeiden

Zitat:
Zitat von mimatete Beitrag anzeigen
Ich weiss, dass man Frames nicht mag
nein - frames sind lediglich keine antwort auf (d)ein problem. aber nun... jeder, wie er / sie es mag.

Zitat:
Zitat von mimatete Beitrag anzeigen
Wenn man programmiert darf man sich nicht so versteifen [...]
mich persönlich beschleicht ein sehr eigenartiges gefühl, wenn ein user im anfänger-stadium zuerst einmal (grundlegende) hilfe benötigt und plötzlich kluge sprüche macht.

Zitat:
Zitat von mimatete Beitrag anzeigen
Es ist wirklich nicht angenehm von Euch beratschlagt zu werden [...]
die hand, die einen füttert, beisst man nicht. ist dir das schon einmal zu ohren gekommen?

Zitat:
Zitat von mimatete Beitrag anzeigen
Ich habe keine Komplexe oder Vorurteile, vielleicht bin ich in meiner Krankheit ein wenig dünnhäutig geworden.
ach gottchen... und deswegen schwingst du dich zum botschafter - sorry: zur botschafterin - der sensibilität auf und wirfst uns sowas hier an den kopf: Nicht alle Programmierer sind gefühllose Eremiten. verleiht dir deine gesundheitliche beeinträchtigung das recht, uns zu be- / verurteilen...? welche rolle spielt es, dass du (möglicherweise) weiblich bist?

mädchen... du gibst mir kraft am frühen morgen.

cx

Geändert von cortex (16.06.2009 um 08:39:34 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Doppelte einträge aus einem Mehrdimensionalen Array aussortieren und löschen PHoenix_KM PHP für Fortgeschrittene und Experten 2 17.04.2008 18:19:53
Doppelte Einträge vermeiden matze-pe PHP für Fortgeschrittene und Experten 2 12.02.2007 12:08:55
Doppelte Einträge vermeiden... Mike² MySQL 19 23.07.2006 00:22:38
doppelte Einträge in MySQL unterbinden? mad-boy PHP für Fortgeschrittene und Experten 12 31.08.2002 12:51:53
doppelte einträge vermeiden EraTor PHP für Fortgeschrittene und Experten 1 01.04.2002 08:39:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:24:31 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.


© 2001-2014 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt