Avatar billede cmau Nybegynder
17. oktober 2006 - 13:54 Der er 23 kommentarer og
1 løsning

Fejl i mit script

Hejsa jeg har sat og kigget mig blind på mit system, som jeg plejer at gøre og kan ikke finde den nok lille fejl jeg har lavet. NOgen som kan se den?

Fejlen:
Parse error: parse error, unexpected '{' in E:\hjemmesider\fuckingloveyou.com\woox\html\heart.php on line 5

Koden:
if ($_GET['Cookie'] != 1) {
    setcookie('test', 'yesido', time()+9999999);
    header ('Location: '.$PHP_SELF.'?Cookie=1');
} else if (($_COOKIE['test'] == 'yesido') && (!empty($_GET['name2'])) {
    $query = mysql_query("SELECT * FROM loved_couple WHERE name = '$_GET[name]' AND name2 = '$_GET[name2]'");
    if(mysql_num_rows($query) == 0) {
        setcookie("couple_$_GET[name]_$_GET[name2]", 1, time()+3600);
        mysql_query("INSERT INTO loved_couple (name,name2,count) VALUES ('$_GET[name]','$_GET[name2]','1')") or die(mysql_error());
    } else if (!isset($_COOKIE['babe_'.$_GET['name'].'_'.$_GET['name2']])) {
        setcookie("couple_$_GET[name]_$_GET[name2]", 1, time()+3600);
        mysql_query("UPDATE loved_couple SET count = count+1 WHERE name = '$_GET[name]' AND name2 = '$_GET[name2]'") or die(mysql_error());
    }
} else if(($_COOKIE['test'] == 'yesido') && (empty($_GET['name2'])) {
    $query = mysql_query("SELECT * FROM loved_people WHERE name = '$_GET[name]'");
    if(mysql_num_rows($query) == 0) {
        setcookie("people_$_GET[name]", 1, time()+3600);
        mysql_query("INSERT INTO loved_people (name,count) VALUES ('$_GET[name]','1')") or die(mysql_error());
    } else if (!isset($_COOKIE['babe_'.$_GET['name']])) {
        setcookie("people_$_GET[name]", 1, time()+3600);
        mysql_query("UPDATE loved_people SET count = count+1 WHERE name = '$_GET[name]'") or die(mysql_error());
    }
}
Avatar billede sw_red_6 Nybegynder
17. oktober 2006 - 14:11 #1
træk else og if samme til elseif
Avatar billede coderdk Praktikant
17. oktober 2006 - 14:14 #2
Der manglede )'er:

if ($_GET['Cookie'] != 1)
{
    setcookie('test', 'yesido', time()+9999999);
    header ('Location: '.$PHP_SELF.'?Cookie=1');
}
elseif (($_COOKIE['test'] == 'yesido') && (!empty($_GET['name2'])))
{
    $query = mysql_query("SELECT * FROM loved_couple WHERE name = '$_GET[name]' AND name2 = '$_GET[name2]'");
    if(mysql_num_rows($query) == 0)
    {
        setcookie("couple_$_GET[name]_$_GET[name2]", 1, time()+3600);
        mysql_query("INSERT INTO loved_couple (name,name2,count) VALUES ('$_GET[name]','$_GET[name2]','1')") or die(mysql_error());
    }
    elseif (!isset($_COOKIE['babe_'.$_GET['name'].'_'.$_GET['name2']]))
    {
        setcookie("couple_$_GET[name]_$_GET[name2]", 1, time()+3600);
        mysql_query("UPDATE loved_couple SET count = count+1 WHERE name = '$_GET[name]' AND name2 = '$_GET[name2]'") or die(mysql_error());
    }
}
elseif (($_COOKIE['test'] == 'yesido') && (empty($_GET['name2'])))
{
    $query = mysql_query("SELECT * FROM loved_people WHERE name = '$_GET[name]'");
    if(mysql_num_rows($query) == 0)
    {
        setcookie("people_$_GET[name]", 1, time()+3600);
        mysql_query("INSERT INTO loved_people (name,count) VALUES ('$_GET[name]','1')") or die(mysql_error());
    }
    elseif (!isset($_COOKIE['babe_'.$_GET['name']]))
    {
        setcookie("people_$_GET[name]", 1, time()+3600);
        mysql_query("UPDATE loved_people SET count = count+1 WHERE name = '$_GET[name]'") or die(mysql_error());
    }
}
Avatar billede sw_red_6 Nybegynder
17. oktober 2006 - 14:19 #3
coderdk-> jeg troede ikke der skulle være 3 ')' når der kun er 2 '(' ;-)
der skal tilgengæld, som du har gjort, laves noget ved de else if. Om de skal trækkes sammen til elseif eller om der skal tilføjes en '{' så der står } else { if må cmau selv slås med
Avatar billede cmau Nybegynder
17. oktober 2006 - 14:21 #4
Argh selvfølgelige, men nu får jeg nye problemer, med dette:

if ($_GET['Cookie'] != 1) {
    setcookie('test', 'yesido', time()+9999999);
    header ('Location: '.$PHP_SELF.'?Cookie=1');

Nu kan jeg slet ikke åbne siden pga. det.
Avatar billede sw_red_6 Nybegynder
17. oktober 2006 - 14:24 #5
hvad får du af fejl?
Avatar billede cmau Nybegynder
17. oktober 2006 - 14:26 #6
Denne side viderefører ikke forespørgslen korrekt

     

     
     
     

     
       
       

         

Firefox har opdaget at serveren henviser forespørgelsen for denne adresse på en måde så den aldrig vil blive færdig.

       


       
       


    *  Dette problem kan nogle gange skyldes, at cookies er slået fra, eller modtagelse af cookies er blevet nægtet.
Avatar billede coderdk Praktikant
17. oktober 2006 - 14:31 #7
sw_red_6, Hvis du tæller hans originale if's med ( og ) så kan du se der mangler )'er et par steder ;)

cmau, Det virker underligt - Det burde da virke, så vidt jeg kan se - Prøv at ændre $PHP_SELF til $_SERVER['PHP_SELF']...
Avatar billede cmau Nybegynder
17. oktober 2006 - 14:35 #8
Ja nu ser der lidt, men i adressen

http://www.ad.fuckingloveyou.com/

Går den til
http://www.ad.fuckingloveyou.com/index.php?Cookie=1


der må ikke være index.php med.
Avatar billede cmau Nybegynder
17. oktober 2006 - 14:38 #9
Avatar billede sw_red_6 Nybegynder
17. oktober 2006 - 14:39 #10
coderdk-> mig der skal have tjekket øjnene
Avatar billede coderdk Praktikant
17. oktober 2006 - 14:41 #11
Så kan du vel ændre den til:

header('Location: /?Cookie=1');

? :)
Avatar billede cmau Nybegynder
17. oktober 2006 - 14:48 #12
Jamen så er det jeg får fejl igen:
http://www.ad.fuckingloveyou.com/?Cookie=1

Eller ikke fejl, IE kan ikke vise siden og firefox skriver:

"Denne side viderefører ikke forespørgslen korrekt"
Avatar billede coderdk Praktikant
17. oktober 2006 - 14:51 #13
Hvordan ser dine rewrite-regler ud?
Avatar billede cmau Nybegynder
17. oktober 2006 - 15:11 #14
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.([^.]+).fuckingloveyou.com$ [NC]
RewriteRule ^$ /index.php?page=heart.php&name=%1

RewriteCond %{HTTP_HOST} ^www.([^.]+).([^.]+).fuckingloveyou.com$ [NC]
RewriteRule ^$ /index.php?page=heart.php&name=%1&name2=%2

RewriteCond %{HTTP_HOST} ^([^.]+).fuckingloveyou.com$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^$ /index.php?page=heart.php&name=%1

RewriteCond %{HTTP_HOST} ^([^.]+).([^.]+).fuckingloveyou.com$ [NC]
RewriteCond %1 !^w$ [NC]
RewriteRule ^$ /index.php?page=heart.php&name=%1&name2=%2
Avatar billede coderdk Praktikant
17. oktober 2006 - 15:27 #15
Du kan prøve to ting:

1) header('Location: /?Cookie=1&" . $_SERVER['REQUEST_QUERYSTRING'] );

2) Prøv at tilføje [QSA] til alle RewriteRules
Avatar billede cmau Nybegynder
17. oktober 2006 - 15:33 #16
1) Så bliver adressen for kludret.

2) Hvad er det?
Avatar billede coderdk Praktikant
17. oktober 2006 - 15:40 #17
QueryStringAdd til rewrite, den smelter query strings sammen ;)
Avatar billede cmau Nybegynder
17. oktober 2006 - 15:48 #18
Hmm aner ikke hvad det er :) Desværre, kan du evt vise mig det?
Avatar billede coderdk Praktikant
17. oktober 2006 - 16:38 #19
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html nede mod bunden, qsa = query string append (jeg skrev add, det var forkert)

Dine rules skal så ligne:

RewriteRule ^$ /index.php?page=heart.php&name=%1 [QSA]
Avatar billede cmau Nybegynder
17. oktober 2006 - 16:46 #20
og qsa gjorde så adressen var nem eller hvordan?
Avatar billede coderdk Praktikant
17. oktober 2006 - 17:29 #21
Nej, den tilføjer din Cookie til de eksisterende, som brugeren ikke ser... Virker det ikke?
Avatar billede cmau Nybegynder
18. oktober 2006 - 20:28 #22
Så nu får jeg vist ikke fejlen, men en del andre fejl, starter fra en ende af med en af gange.

Hvis en person bare tager linket i toppen og sender til en ven http://asd.fuckingloveyou.com/?Cookie=1 vil den ikke teste om personen havde cookies, så derfor vil jeg meget gerne om man kunne test for cookie uden at ændre i adressen og uden at bruge iframe og frames.
Avatar billede cmau Nybegynder
20. oktober 2006 - 11:26 #23
Nu har jeg simpelthen skrevet hele koden om og har kun problemer med cookie tjek.

Koden kan ses her: www.fuckingloveyou.com/code.phps
Lige meget om jeg har cookie sat til eller fra, så får jeg at vide ved første besøg at jeg ikke har sat cookie til.

Cookie sat:
Hvis jeg så opdaterer siden kører alt som det skal. Skal der en opdatering til før man kan tjekke for cookies?

Ikke sat:
Får jeg stadigvæk at vide jeg ikke har sat cookies, som den jo også skulle skrive.
Avatar billede cmau Nybegynder
21. oktober 2006 - 17:46 #24
Opretter et nyt spørgsmål til dette, da alt kode er ændret.
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