Hej, jeg har nu "siddet fast" i kodet til min musikside i nogen tid. Siden er til mig og min vens musik. Når man hører et nummer skal der addes +1 til playcounteren, men ikke hvis "lytteren" har lyttet inden for en time. Ret simpelt.
Men nu har jeg både prøvet med cookies og sessions. Jeg henter musikennummerets navn og sætter endelsenn "_pcount" på ... så en cookie bliver sat til at hedde: "sangnavn.mp3_pcount", når en sang bliver hørt. Jeg tjecker i koden med
if (empty($_COOKIE['$cookie']))
Om cookien er sat, og hvis den ér, skal der selvfølgelig ikke addes +1 til playcounteren. problemet er bare at selvom cookien er sat (det tjecker jeg nemlig), så adder den alligevel?
nogle i ideer til hvad der er galt?
Jeg har ikke haft problemer med at lave andre countere selv som ikke havde et "dynamisk" cookie navn, og det virker da også når ikke der er en variabel i cookiens navn.. det virker meget underligt....
cookie sætter koden: // $cookie indeholder sangnavn_mp3_pcount if (empty($_COOKIE['$cookie'])) {
mysql_connect("localhost:3306", "root", "root") or die(mysql_error()); mysql_select_db("padb") or die(mysql_error()); mysql_query("UPDATE tracks SET space=(space + 1) WHERE original='$track'"); setcookie($cookie,"ligegyldigtext",(time()+(60*60)), "/"); }
Jeg har ændret empty() til isset(), her er koden.. meget simpel.. men ikke fungerende grunden til at jeg fjerner mellemrum fra sangens navn er fordi jeg troede/tror at det kan være en fejlfaktor for at cookien bliver sat.
:
//------------------------------------------------------------------- get the querystring with the track name in it and remove space from stri $track = $_GET['track'] ; $cookie = $track."_pcount"; $cookie = str_replace(" ","", $cookie);
//------------------------------------------------------------------- if there is no cookie set for this track: set one and add a count to the hitcounter
if (isset($_COOKIE['$cookie'])) {
} else {
mysql_connect("localhost:3306", "root", "root") or die(mysql_error()); mysql_select_db("padb") or die(mysql_error()); mysql_query("UPDATE tracks SET space=(space + 1) WHERE original='$track'"); setcookie($cookie,"ligegyldigtext",(time()+(60*60)), "/");
}
cookien bliver altså sat, men scriptet ignorerer den og adder alligevel ved næste lytning???
Du skal gøre det uden ''. Altså sådan her: if (isset($_COOKIE[$cookie])) {
Gør du det med '' spørger du om en cookie ved navn $cookie er sat. Gør du det uden spørger du om en cookie, der hedder hvad indholdet af $cookie er (sangnavn.mp3_pcount), er sat.
Og kan du undgå mellemrum m.m. i din url, altså kun bruge 0-9 og a-z, er du sikker på at undgå "problemer"
Synes godt om
Ny brugerNybegynder
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.