[php] refresh

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 107085

Topicstarter
Ik heb dus een website gemaakt of ik ben daar nog steeds aan bezig eigenlijk en nu staat alles van mij in die 1ne pagina. Alles staat dus in index.php
Zowel de updates als de inserts als de deletes. Dit gebeurt volgens de gekende methode on submit.

Maar nu is er een probleem bijvoorbeeld bij het gastenboek dat voor iedereen open is, maar het geld eigenlijk ook voor andere pagina's. Wanneer ik iets toevoeg werkt dat perfect. Maar als ik op de refresh button klik dan vraagt IE om te herzenden van de informatie, waardoor ik een duplicaat record ingeput krijg. Is er ergens zo'n header in php ofzo die ik op men pagina kan plaatsen die dit tegengaat. Of is dit een probleem die al velen hebben aangekaart maar niet hebben gevonden?

Of internet / google, vind ik precies ook maar radeloze antwoorden dus misschien hier meer experts daaromtrend.

(site is in php5/mysql)

Acties:
  • 0 Henk 'm!

  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04 12:44
Sjah, je doet gewoon opnieuw een post request, dus dan is het logisch dat 'ie het nog een keer gaat submitten. Maar je kunt makkelijk checken bij elk postrequest of er al geen vergelijkbare record instaat. Gewoon een soort anti-spam filter inbouwen. Moet niet erg moeilijk zijn !

Acties:
  • 0 Henk 'm!

Anoniem: 49227

Het is inderdaad niet zo vreemd dat het request bij een refresh nog een keer wordt uitgevoerd.
Om te voorkomen dat je die vraag krijgt zou je kunnen overwegen om ervoor te zorgen dat je bij
een POST-request nooit output geeft. In plaats van dat je output geeft stuur je de gebruiker door
naar een pagina / actie met een GET-request.

Voorbeeld (ongeveer):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
  
   $var; // variable met actie die uitgevoerd moet worden

   switch($var){
     case 'add_post';
        //voeg post toe
        //redirect gebruiker
        header('location: ?action=show_posts');
     break;
     case 'show_posts':
        // laat posts zien
     break;
   }

?>


Daarnaast kan een spam-filter natuurlijk ook geen kwaad :)

[ Voor 4% gewijzigd door Anoniem: 49227 op 20-08-2006 09:54 ]


Acties:
  • 0 Henk 'm!

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 15:58
Ip opslaan en als 't IP binnen 2 minuten meer dan 2x post een error geven, of inderdaad na het opsturen (en opslaan) meteen naar een bedankt pagina doorsturen, like:

code:
1
2
3
4
5
<?
//alles opslaan
mysql_query($sql) or die("Kon niet opslaan");
header("Location: bedankt.html");
?>

Goedkoopste hardware


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

lennartkocken schreef op zondag 20 augustus 2006 @ 09:53:
Ip opslaan en als 't IP binnen 2 minuten meer dan 2x post een error geven
Dat moet je nooit doen, ooit gehoord van proxyservers? Of NAT?
Als je zo'n "flood" protectie wilt dan kan je dat het beste bijhouden in de sessie :)

Acties:
  • 0 Henk 'm!

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 15:58
Erkens schreef op zondag 20 augustus 2006 @ 10:03:
[...]

Dat moet je nooit doen, ooit gehoord van proxyservers? Of NAT?
Als je zo'n "flood" protectie wilt dan kan je dat het beste bijhouden in de sessie :)
Ja, maar hoeveel mnesne zouden d'r nou zijn die elke keer nieuw IP regelen om te kunnen spammen? Ik denk dat het hier meer gaat om dat mensen per ongeluk op F5 rammen :)

Goedkoopste hardware


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

lennartkocken schreef op zondag 20 augustus 2006 @ 10:04:
Ja, maar hoeveel mnesne zouden d'r nou zijn die elke keer nieuw IP regelen om te kunnen spammen? Ik denk dat het hier meer gaat om dat mensen per ongeluk op F5 rammen :)
Ik doelde meer op meerdere mensen die hetzelfde IP delen die je daarmee blokkeerd ;)

Acties:
  • 0 Henk 'm!

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 15:58
Erkens schreef op zondag 20 augustus 2006 @ 10:05:
[...]

Ik doelde meer op meerdere mensen die hetzelfde IP delen die je daarmee blokkeerd ;)
Ja, dan inderdaad Sessies... (hoewel ook de kans dat 2 netwerkgenoten binnen 2 minuten ofzo in datzelfde gastenboek schrijven klein is ;))

Goedkoopste hardware


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

lennartkocken schreef op zondag 20 augustus 2006 @ 10:08:
(hoewel ook de kans dat 2 netwerkgenoten binnen 2 minuten ofzo in datzelfde gastenboek schrijven klein is ;))
Ik denk je je behoorlijk kan vegissen in die aanname :) Denk alleen al eens aan bedrijfsnetwerken of bijvoorbeeld schoolcomputers die allemaal via een proxy server zitten.

Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

lennartkocken schreef op zondag 20 augustus 2006 @ 09:53:
Ip opslaan en als 't IP binnen 2 minuten meer dan 2x post een error geven, of inderdaad na het opsturen (en opslaan) meteen naar een bedankt pagina doorsturen
Er zijn betere manieren om gastenboekspam tegen te gaan :X

Wat betreft het exacte probleem van de topicstarter: inderdaad een redirect doen naar de bronpagina mbv de header.

[ Voor 12% gewijzigd door BalusC op 20-08-2006 10:23 . Reden: code weggeknipt, lag daar helemaal niet aan ]


Acties:
  • 0 Henk 'm!

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 15:58
BalusC schreef op zondag 20 augustus 2006 @ 10:12:
[...]

Er zijn betere manieren om gastenboekspam tegen te gaan :X

Wat betreft het exacte probleem van de topicstarter: inderdaad een redirect doen naar de bronpagina mbv de header.
Hoe kan je nou van 2 regels zeggen dat het slecht is? Je weet toch niet wat er IN het commentaar gebeurt? Daar kan toch ook vanalles gecontroleerd, opgeslagen en uitgespuugd worden? :/

Goedkoopste hardware

Pagina: 1