Avatar billede spidr Nybegynder
30. juli 2007 - 08:46 Der er 12 kommentarer og
1 løsning

Forhindre opdatering af side.

Jeg bruger koden nede for til at hente et tilfædligt udtræk fra min database, problemmet er at hvis man får et resultat man ikke lige kan lide, så kan man bare trykke f5 og vubti, prøve igen.

Er der en måde hvorpå jeg kan slå dette fra? uden at skulle til at gemme ip, og hvad han har fået osv?

-------------------------

$query = mysql_query("SELECT * FROM LovehinaSpeak WHERE xp IN(". implode(",", $vaelgfra) .") and Girl = '$girl' order by RAND() limit 1");
Avatar billede madsleejensen Nybegynder
30. juli 2007 - 09:12 #1
kommer an på hvor "sikkert" det skal være, du kunne jo bare smide en session, med db resultatet i, hvis ingen session var oprettet, problemmet er bare det nemt kan undgås enten ved at skrive en ny SID i din url eller slå cookies fra
Avatar billede spidr Nybegynder
30. juli 2007 - 11:09 #2
Det skal være mere sikkert end det.
Tænker selv på om det kan lade sig gøre at redirect en til en ny side når man trykker f5? problemmet er så hvis man trykker opdater i browseren som virker det jo stadig.

Men er lidt nervøs for at min eneste udvej er at gemme brugeres ip og sådan.. :/
Avatar billede showsource Seniormester
30. juli 2007 - 11:50 #3
hmm, skrive en ny session_id() i adresselinien? Virker ikke for mig!

Du kan jo teste om der er sat en cookie for session, og hvis ikke, så lade være med at foretage forespørgsel.
Og er den sat, så tjek om en session er sat, og er den, så lad være emd at foretage forespørgsel.

Nemmeste ville jo så være hvis det var på en side som kræver login.
Avatar billede showsource Seniormester
30. juli 2007 - 11:53 #4
altså:

if(isset($_COOKIE[session_name()])) {

    if(!isset($_SESSION["noget"])) {

    lav query

    sæt session noget
    }
}
Avatar billede spidr Nybegynder
30. juli 2007 - 12:04 #5
det er med login, du må beskrive lidt bedre hvad du mener :)
Avatar billede spidr Nybegynder
30. juli 2007 - 12:05 #6
Koden nede for bruger jeg til at tjekke om brugeren er logget ind.


$salt = "xxxxx";
  if ( !isset( $_COOKIE['userid'] ) || md5( md5( $_COOKIE['userid'] ) . $salt ) != $_COOKIE['checksum'] ) {
header("location: login.php");
  }

$ID = $_COOKIE['userid'];
Avatar billede showsource Seniormester
30. juli 2007 - 12:16 #7
nåhhh, så er det jo ikke noget problem, så sætter du jo blot en session efter udført query, og så tjekker på om den session er sat FØR query, og er den det, så lav query udfra session, så det samme vises ved opdatering
Avatar billede spidr Nybegynder
30. juli 2007 - 13:06 #8
ah, det må du lige give et eksempel på, forstår ikke helt :)?
Avatar billede showsource Seniormester
30. juli 2007 - 13:21 #9
Nu ved jeg ikke hvordan din side er bygget op, men her udføres query før noget output, fordi du jo bruger cookies til login, og derfor ville jeg sættte en cookie EFTER query

if(!isset($_COOKIE["sql_id"])) {

$query = mysql_query("SELECT * FROM LovehinaSpeak WHERE xp IN(". implode(",", $vaelgfra) .") and Girl = '". $girl ."' order by RAND() limit 1");
$row = mysql_fetch_array($query);
setcookie("sql_id", $row["xp"], 0, "/");

}else{

$query = mysql_query("SELECT * FROM LovehinaSpeak WHERE xp = ". intval($_COOKIE["sql_id"]) ."");
$row = mysql_fetch_array($query);

}
Avatar billede showsource Seniormester
30. juli 2007 - 13:22 #10
Lidt tjek på om der faktisk er et row ville jo nok være på sin plads
Avatar billede spidr Nybegynder
30. juli 2007 - 13:30 #11
ok, det burde kunne bruges, tak :)
Avatar billede spidr Nybegynder
30. juli 2007 - 15:58 #12
Tak for hjælpen, fandt en anden metode men dit svar viste mig på vej, ved ikke lige hvorfor jeg ikke selv kunne lure en metode :)
Avatar billede showsource Seniormester
31. juli 2007 - 07:34 #13
jahh, nogen gange står den bare stille! :O)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester