Avatar billede TumseMM Nybegynder
10. august 2011 - 10:01 Der er 6 kommentarer og
1 løsning

Kun en sætning om dagen

Hej Eksperter!

Jeg har denne side hvor folk skal afslutte dagens sætning. Men jeg vil kun have at de skal kunne skrive en sætning!

<?php


Her er min kode:


if($_POST['submit'])
{
    if($_SESSION['username'])
    {   
        if($_POST['tekst']!="")
        {
            mysql_query("INSERT INTO a (text,username,time,q_id) VALUES ('$_POST[tekst]','$_SESSION[username]',NOW(),'$_POST[q_id]')");
        }
        else
        {
        echo '<div style="position:absolute; top:110px;"><p style="color:red";>Husk at afslutte sætningen!</p></div>';
        $error;
        }
    }
    else
    {
        echo '<div style="position:absolute; top:110px;"><p style="color:red";>Du er ikke logget ind!</p></div>';
        $error;
    }
   
}


?>



Tak på forhånd!
Avatar billede cebt Nybegynder
10. august 2011 - 10:14 #1
er det ikke bare et spørgsmål om at have en tabel i databasen med hvem der har svaret på spørgsmålene?

nu antager jeg at de har en bruger på din side

så kan du bare have en tabel i databasen der f.eks. hedder svar som gemmer hvert svar med et userID eller username samt et id for den sætning de har svaret på, så kan du når folk svarer på sætningen løbe svarene igennem for den sætning og se om personen har svaret før.

dette kan gøres med en SQL sætning i stil med:

SELECT username FROM svar WHERE sætningId = 2; så får du alle usernames der har svaret på sætningen med id 2 og dermed kan du tjekke om den user der forsøger at svare har svaret før..
Avatar billede senil Nybegynder
10. august 2011 - 10:52 #2
Du kan jo også lave unik index på basen på felterne "dato" og "bruger id"
Avatar billede Claus Wøbbe Juniormester
10. august 2011 - 11:35 #3
Ellers må du skrive en cookie med info om dato for seneste sætning.
Avatar billede TumseMM Nybegynder
11. august 2011 - 21:22 #4
Hej eksperter!

Hvis jeg skulle lave en cookie, skulle jeg så ikke lave en ny for hver bruger der bliver oprettet på hjemmesiden, samt opdatere den hver dag?

@senil - hvis jeg proppede unique index på de felterne ville brugerne jo kun kunne lave en sætning forevigt, og ikke den efterfølgende dag?

@cebt -  Du skal lige forstå at der ikke er forskellige sætninger. Der er ligesom 1 sætning der bliver opdateret hver dag, som er forskellig fra dag til dag.
Altså jeg har en tabel hvor svarene bliver lagret. som hedder 'a'. Der har jeg 'username', og teksten brugeren har skrevet til dagens sætning.

Så er det ikke noget med ("SELECT username FROM a WHERE ((og så noget der gør at de kun kan skrive et svar til sætningen én gang om dagen))"...

?? Please assist
Avatar billede Claus Wøbbe Juniormester
11. august 2011 - 22:00 #5
Som jeg forestiller mig det lægger dit side en cookie (en lille fil med info) på brugerens PC. Din hjemmeside tjekker indholdet af denne fil, hver gang brugeren prøver at sende en sætning.

Hvis der ikke findes nogen cookie endnu, har brugeren ikke sendt nogen sætning i dag og får lov til det.

Hvis der findes en cookie med "Senest afsendt d." og en dato, som er <> i dag, får brugerne også lov til at sende.

Hvis der findes en cookie med "Senest afsendt d." og en dato, som er = i dag, får brugerne ikke lov til at sende.

Dermed behøver du slet ikke at registrere brugerne i en database el.lign.
Avatar billede TumseMM Nybegynder
12. august 2011 - 09:56 #6
Det havde jeg slet ikke tænkt på! Men skal man så stadig ikke lave en for hver bruger der opretter sig på hjemmesiden?

Er det noget i stil med:
setcookie("user", "TumseMam", time(),);

Ved ikke helt hvordan det der path og domain fungerer.
Avatar billede Claus Wøbbe Juniormester
12. august 2011 - 11:37 #7
Jeg ved ikke hvordan man koder cookies, men det er helt sikkert ganske standard og enkelt - alle bruger det. Det er fx sådan en hjemmeside kan huske dine præferencer o.lign.

Der skal ikke kodes noget per bruger - denne funktionalitet ligger implicit i den generelle cookie, der lægges hos hver bruger, når vedkommende besøger din side. Du skal bare læse indholdet af brugerens cookie (som din side automatisk har adgang til, når brugeren har besøgt din side - cookie-filen ligger på brugerens PC) og så kan din hjemmeside forholde sig til, hvad der er skrevet i cookien. Hvis der fx står, at brugeren sidste gang sendte en sætning d. 12.06.11, så kan du forholde dig til det, og fx tillade, at brugeren sender en ny sætning.

:-)
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