Avatar billede jvjensen Nybegynder
03. april 2009 - 08:56 Der er 8 kommentarer

Hjælp til sessions..

Jeg har følgende voting-funktion..

<?php
session_start();

if (isset($_POST['submit'])) {
    $rate = $_POST['rate'];


    $sql = "UPDATE bog SET antal_votes=antal_votes+1, samlet_votes=samlet_votes+$rate WHERE id = $id";
    mysql_query($sql);
   
    $_SESSION['$id'] = $_SERVER['REMOTE_ADDR'];
    echo "Du har bedømt!";

} else {
    if ($_SESSION['$id'] == $_SERVER['REMOTE_ADRR']) {
    } else {
        echo "Bedøm<br />";
        echo "<form action='' method='POST' name='form' id='rateform'>";
        echo "<select name='rate' style='color: #696969;'>";
        echo "<option value='0'>Vælg karakter</option>";
        echo "<option value='1'>*</option>";
        echo "<option value='2'>* *</option>";
        echo "<option value='3'>* * *</option>";
        echo "<option value='4'>* * * *</option>";
        echo "<option value='5'>* * * * *</option>";
        echo "</select> ";
        echo "<input type='submit' name='submit' value='Bedøm' class='ratesubmit'/>";
        echo "</form>";
    }
}

?>

Og så er det meningen at man kun kan stemme en gang pr. bøsøg.. Men det virker ikke.. Det skal fungere sådan at når man har stemt sidder den session-variablen, og hvis session['$id'] = ip-adressen, betyder det man har stemt, og formen bliver ikke vist...

Har virkelig brug for hjælp...
Avatar billede virtual1ty Nybegynder
03. april 2009 - 09:08 #1
Der skal ikke $ foran navnet på dine session-variabler.

$_SESSION['$id']

bliver til:

$_SESSION['id']
Avatar billede jvjensen Nybegynder
03. april 2009 - 09:12 #2
Grunden til at jeg har $id indeni, er fordi at navnet på session-variablen skal være værdienaf $id...
Avatar billede virtual1ty Nybegynder
03. april 2009 - 09:18 #3
Så tror jeg du skal fjerne apostrofferne, altså ' '
Avatar billede jvjensen Nybegynder
03. april 2009 - 09:27 #4
Nej det er ikke det.. For hvis jeg laver en echo på den kan den godt udskrive ip-adressen... Men når der så er stemt og jeg går tilbage på index, og ind igen kan den ikke huske den.. den echo`er ikke noget ud.. Og har session_start() begge steder....
Avatar billede jvjensen Nybegynder
03. april 2009 - 10:59 #5
Fandt selv ud af det... Selve koden var rigtig nok, problemet var bare at den tolkede navnet som $id, og ikke værdien.. Der skulle stå $_SESSION['.$id.']
Avatar billede showsource Seniormester
03. april 2009 - 11:13 #6
Det er vel også hvad virtual1ty skrev tidligere ?
Avatar billede showsource Seniormester
03. april 2009 - 11:15 #7
Det er iøvrigt en dårlig at bruge "reserverede" navne til formfelter.
<input type="submit" name="submit" .....

Undgå hellere det hvergang du skal lave noget kode.

Du kan evt. også bruge cookies til at gemme en vote.
Avatar billede showsource Seniormester
03. april 2009 - 11:15 #8
dårlig VANE
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