Avatar billede giebel Nybegynder
30. maj 2006 - 15:06 Der er 3 kommentarer

mere dynamisk Session

Har lidt bøvl med noget så simpelt som en session. Det kode i ser nedenfor er til når en profil vises, så lægges tallet 1 til det tal den henter fra databasen, og smider det ind igen. Det er statistik over hvor ofte profilen bliver besøgt og afvikles hver gang en besøger den, men desværre kan man abre sidde og refresh browseren og på den måde få den mest besøgte side rimeligt hurtigt.

Når jeg æaver det som vist herunder opdaterer den godt nok kun en gang, men det gælder desværre for samtlige profiler. Mit spørgsmål er, hvordan får jeg det lavet så man kan besøge alle profilerne en gang og altså ikke kun en enkelt profil. (har prøvet at bruge id som session, men det funker sq ik.




$id = $_GET['id'];
   
   
   
    session_start();
   
        if(!$_SESSION['$id']) {   

    $rawdisplay = mysql_query("select * from bandpages where id='$id' AND accept='2'");
    while ($data = mysql_fetch_array($rawdisplay)) {
   
    $displayno = $data['displayno'] + 1;
       
   
    mysql_query("update bandpages set displayno='$displayno' where id='$id'") or die(mysql_error());
   
    $_SESSION['$id'] = 1;
       
        }}
Avatar billede Slettet bruger
30. maj 2006 - 16:15 #1
Prøv med den her:
<?php
$id = $_GET['id'];
session_start();
if(!$_SESSION['visitedprofiles'][$id]) {
    mysql_query("UPDATE bandpages SET displayno = displayno + 1 WHERE id = '".mysql_escape_string($id)."'") or die(mysql_error());
    $_SESSION['visitedprofiles'][$id] = true;
}
?>

Sig til hvis du vil have forklaring, men det er en god øvelse selv at regne andres kode :)
Derudover skal du også huske at escape - eller på andet måde sikre - den data du modtager udefra. Eller kan man hacke din database med dit script, og fx højne antal visninger af alle profiler med 1.
Som du kan se har jeg også optimeret dine SQL queries en smule. I stedet for at:
- trække data ud
- Lægge 1 til
- Putte data ind

Kan du bare bede MySQL om at forhøje med 1.
Avatar billede giebel Nybegynder
30. maj 2006 - 16:44 #2
virkde første gang, skide godt :P

Du må meget gerne forklare den, for mig hvis du vil:)
Avatar billede giebel Nybegynder
30. maj 2006 - 16:46 #3
ej det behøver du sq ik, den er rimeligt indlysende efter et hurtigt kig, men endnu engang tak:)
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