Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Eingabeformular nach Senden in MYSQL Datenbank sendet beim Drücken des Browser Aktualisierungsbutton den Datensatz nochmal

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

01.10.2009, aktualisiert 11.10.2009, 7245 Aufrufe, 6 Kommentare

Datensätze aus einem Eingabeformular werden erneut in eine Datenbank geschrieben, wenn das Formular nicht geschlossen wird und im Browser der Aktualisierungsbutton gedrückt wird. Wie verhindere ich das?

Hallo Forum,

wie im Vorwort bereits beschrieben, will ich verhindern, daß nach Absenden eines Datensatzes in die MySQL Datenbank der Datensatz mehrfach gespeichert wird, falls jemand den Aktualisierungsbutton drückt.

Versuche, die benutzen Variablen am Ende mit unset zu löschen, brachten kein Ergebnis. Der Browser scheint sich die Eingaben irgendwie zu merken.

Gibt es einen php Befehl zum Löschen des Caches oder eine andere sichere Methode, um dies zu verhindern?

Vielen Dank für jede Idee

Schöne Grüße
Christof
Mitglied: vonbredowp
01.10.2009 um 14:47 Uhr
Hallo Christof!

Auf die Schnelle:


Gib dem Benutzer / Besucher eine Session ID und gib ihm eine extra Var. , im Sinne von "hat_eingetragen" = true
Bitte warten ..
Mitglied: filippg
01.10.2009 um 14:53 Uhr
Hallo,

wenn der Nutzer "Aktualisieren" drückt werden die letzten Formulardaten nochmal gesendet - daher wird ein "unset" in PHP auch nicht helfen. Eine Methode, dem Browser das "nochmal senden" zu verbieten gibt es auch nicht direkt.
Eine Möglichkeit: du baust in das Formular ein verstecktes Feld ein (etwa "PostID"), das als Wert einen Identifier hat (etwa Datum+Uhrzeit+Zufallszahl). Wenn ein Datensatz gespeichert wird, wird dieser Wert mit in die DB geschrieben. Und vor jedem Speicher eines Datensatzes prüfst du, ob die PostID schon in der DB vorhanden ist. Wenn ja wird das speichern verweigert. Alternativ zur Speicherung in der DB kann man das auch über die PHP Session-Verwaltung lösen. Der Ansatz bleibt aber letztlich immer der gleiche: Du musst dafür sorgen, dass dieses Formular eindeutig identifizierbar ist und dann serverseitig schauen, ob es schon verarbeitet wurde.

Gruß

Filipp
Bitte warten ..
Mitglied: gechger
01.10.2009 um 15:07 Uhr
Grüß Dich,

eine ähnliche Idee hatte ich auch schon. Beim Aufrufen des Formulares wollte ich ein VAriable setzen:
$send="0";
Beim Versenden des Formulares sollte $send="1", drin stehen.

Der User hat nun aber die Möglichkeit, ohne das Formular zu verlassen, mehrere Datensätze hintereinander einzugeben. $send steht dann aber auf "1" und das Senden eines weiteren Datensatzes würde verhindert.
Er müßte dann immer das Formular verlassen und neu laden.

Unschön.

Ich denke, die Idee mit dem Leeren des Cache ist geschickter.

Aber schönen Dank für die Idee
Bitte warten ..
Mitglied: vonbredowp
01.10.2009 um 15:15 Uhr
eine ähnliche Idee hatte ich auch schon. Beim Aufrufen des
Formulares wollte ich ein VAriable setzen:


Nein, ich denke da verstehst du etwas falsch ;)

Das Session Management wird vom Server übernommen.

Schau dir kurz die drei Seiten dazu an:

http://tut.php-q.net/de/sessions.html
http://de3.php.net/manual/en/features.sessions.php
http://www.selfphp.de/praxisbuch/praxisbuch.php?group=35


Du kannst natürlich auch die IP als "Identifier" nehmen.
Bedeutet, dein Skript überprüft ob die IP schon was eingetragen hat oder nicht ;)
Bitte warten ..
Mitglied: gechger
01.10.2009 um 15:26 Uhr
Hallo Fillip,

das scheint die Idee zu sein, die ich gesucht habe.
Eine weitere Spalte in der Datenbank tut ja nicht weh. Datum und Zufallswert sollte genügen.

Vielen Dank

Schöne Grüße
Christof
Bitte warten ..
Mitglied: Guenni
01.10.2009 um 17:20 Uhr
Hi Christof,

ich rufe in einem solchen Fall die Funktion header auf, nachdem

der DB-Eintrag erfolgt ist:

Das Skript wird neu geladen und die POST-Daten sind nicht mehr da.

01.
<?php 
02.
 
03.
if(isset($_POST['Name_des_Submitbuttons'])){ 
04.
 . . . 
05.
 
06.
 ToDo 
07.
 
08.
 . . . 
09.
 
10.
 header("location:Name_des_Skript"); 
11.
12.
?>
Gruß
Günni
Bitte warten ..
Ähnliche Inhalte
PHP

MySQL Update eines Datensatz mit Variable

gelöst Frage von Jens4everPHP4 Kommentare

Hallo zusammen, ich habe jetzt 2 h gesucht und versucht und komme gerade nicht weiter Ich habe eine Mail-Verifizierung ...

PHP

PHP soll Datensätze in der Datenbank überprüfen

Frage von YanmaiPHP2 Kommentare

Hallo ihr Administratoren ;) Ich habe eine Datenbanktabelle "Freundschaftsanfragen". Wenn Benutzer a Benutzer b eine Freundschaftsanfrage schickt, dann wird ...

Windows Server

Druck über Browser

Frage von NathalemWindows Server1 Kommentar

Hallo sehr geehrte Administratoren und Administroninnen, Ich würde gerne unseren Printserver entsprechent anpassen dass es möglich ist ohne weitere ...

Datenbanken

MySQL Function Anzahl Datensätze ermitteln

gelöst Frage von MultiStormDatenbanken4 Kommentare

Hallo, aktuell stehe ich vor einem Problem bei dem ich nicht weiter komme. ich wollte mit eine MySQL funtion ...

Neue Wissensbeiträge
Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 7 StundenSicherheit

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 16 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 1 TagErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 1 TagWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server36 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...