[PHP] Vage parse error

Pagina: 1
Acties:

  • P.B.
  • Registratie: Juli 2001
  • Niet online
PHP:
1
2
3
4
5
while($result = mysql_fetch_array($query)){
    $procent = ($result[hits] / $Totalhits) * 100;
    $imgsize = $procent * 2;
    $content = $content."<tr><td>".$result['id']."</td><td>".$result['title']."</td><td>[img]\"../1px_ffc081.gif\"[/img](".$procent.") (".$result['hitsout'].")</td></tr>";
}


Op regel 4 heb ik een parse error... maar volgens mij is alles gewoon goed ?
Osiris heeft er net ook naar gekeken, en die vond ook geen fouten...

  • MisterData
  • Registratie: September 2001
  • Laatst online: 26-08 21:52
PHP:
1
$procent = ($result[hits] / $Totalhits) * 100;


FOUT :o Dit moet tegenwoordig zo:

PHP:
1
$procent = ($result['hits'] / $Totalhits) * 100;


:) Verder kan ik neit echt fouten ontdekken :?

  • Osiris
  • Registratie: Januari 2000
  • Niet online
"Ik vond geen fouten"

Sterker nog, mijn test.php gaf gewoon geen fouten aan? :?

edit:
Ergo: ik zie um ook niet :{

  • P.B.
  • Registratie: Juli 2001
  • Niet online
MisterData schreef op 22 oktober 2002 @ 21:42:
PHP:
1
$procent = ($result[hits] / $Totalhits) * 100;


FOUT :o Dit moet tegenwoordig zo:

PHP:
1
$procent = ($result['hits'] / $Totalhits) * 100;


:) Verder kan ik neit echt fouten ontdekken :?
Als ik van $result[hits] $result['hits'] maak, zoals ik het eerst had, krijg ik:

parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
Waarschijnlijk concat je een string met een variabele die nog niet bestaat ($content) en heb je error reporting op E_ALL staan. Dat geeft dan (terecht) een fout.

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Ericston schreef op 22 oktober 2002 @ 21:46:
Waarschijnlijk concat je een string met een variabele die nog niet bestaat ($content) en heb je error reporting op E_ALL staan. Dat geeft dan (terecht) een fout.
Da's dan na mijn weten geen parse-error toch? :?

  • P.B.
  • Registratie: Juli 2001
  • Niet online
Ericston schreef op 22 oktober 2002 @ 21:46:
Waarschijnlijk concat je een string met een variabele die nog niet bestaat ($content) en heb je error reporting op E_ALL staan. Dat geeft dan (terecht) een fout.
Error reporting staat op normaal, en die variabele bestaat al :)

Verwijderd

Ericston schreef op 22 oktober 2002 @ 21:46:
Waarschijnlijk concat je een string met een variabele die nog niet bestaat ($content) en heb je error reporting op E_ALL staan. Dat geeft dan (terecht) een fout.
das dan een warning, geen parse error

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Verwijderd schreef op 22 oktober 2002 @ 21:48:
[...]


das dan een warning, geen parse error
Da dacht ik ook idd :)

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
Duncan:
Wat is de precieze omschrijving van die parse error uit je beginpost?
En wat gebeurt als je alleen dit stukje code in een scriptje zet?

Als dat dan geen fout geeft, kun je dan het hele script plaatsen? (zonder databasepasswords natuurlijk :P)

offtopic:
Tis dan trouwens een Notice, en geen Warning. ;)

  • P.B.
  • Registratie: Juli 2001
  • Niet online
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?

include("admin.php");

if(!$action){
    GenerateAdminPage("Error","Er is een fout opgetreden: Geen action.");
}

if($action =="queue"){
    
    if($unqueue){
        unQueueLink($unqueue, $HTTP_SESSION_VARS["uid"]);
        GenerateAdminPopUp("Succes","Link ID=$unqueue is succesvol geaccepteerd.");
        die();
    }

    if($decline){
        DeleteLink($decline);
        GenerateAdminPopUp("Succes","Link ID=$decline is succesvol verwijderd.");
        die();
    } 
    
    else{

    // Code om queue te handlen
    // Laat alle queues uit de database zien
    $content = "<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  <tr>
    <td width=\"6%\">ID</td>
    <td width=\"50%\">Titel</td>
    <td width=\"14%\">Category</td>
    <td width=\"14%\">Accepteer</td>
    <td width=\"14%\">Verwijder</td>
  </tr>";



    $query = mysql_query("SELECT * FROM GP_Links WHERE Status = '0' ORDER BY Date_Submit");
    while($result = mysql_fetch_array($query)){
        $content = $content."<tr><td>".$result['ID']."</td><td><a href=\"".$result['URL']."\" target=\"_blank\">".$result['Title']."</a></td><td>".$result['Category']."</td><td><a href=\"javascript:UnQueue(".$result['ID'].")\">[img]\"vinkje.gif\"[/img]</a></td><td><a href=\"javascript:Decline(".$result['ID'].")\">[img]\"kruisje.gif\"[/img]</a></td></tr>";
    }
    $content = $content."</table>";
    GenerateAdminPage("Links Queue",$content);
    }
}

if($action =="add"){
    if(!$submit){
        GenerateAdminPage("Link Toevoegen", "<form method=\"get\" action=\"links.php\"><input type=\"hidden\" name=\"submit\" value=\"1\"><input type=\"hidden\" name=\"action\" value=\"add\">Titel&nbsp;<input type=\"text\" name=\"title\"><br>URL&nbsp;<input type=\"text\" name=\"url\"><input type=\"submit\" name=\"Submit\" value=\"Submit\"></form>");
    }
    if($submit){
        $GPDate = GPDate(1);
        mysql_query("INSERT INTO GP_Links (Title, URL, IP_Submit, Status, Date_Submit, GPDate) VALUES ('$title', '$url', '$REMOTE_ADDR', '1', 'time()', '$GPDate')");
        GenerateAdminPage("Link Toevoegen - Succes", "De link is succesvol toegevoegd.");
    }
}

if($action =="stats"){
    // Code om statistieken te genereren
    if(!$submit){
        $GPToday = GPDate(0);
        GenerateAdminPage("Statistieken van links", "Voer een datum in in het GPDate formaat: Bijvoorbeeld 22 oktober 2002 wordt 221002<br><br><form method=\"get\" action=\"links.php\"><input type=\"hidden\" name=\"submit\" value=\"1\"><input type=\"hidden\" name=\"action\" value=\"stats\"><input name=\"gpdate\" type=\"text\" value=\"$GPToday\" size=\"10\" maxlength=\"6\">&nbsp;&nbsp;<input type=\"submit\" value=\"Vraag statistieken op!\"></form>");
    }
    if($submit){
        $query = mysql_query("SELECT * FROM GP_Links WHERE GPDate = '$gpdate'");

        if(mysql_num_rows($query) ==0){
            GenerateAdminPage("Statistieken van links - Error", "Geen statistieken gevonden");
            die();
        }

        $content = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"5%\">ID</td><td width=\"53%\">Titel</td><td width=\"42%\">HitsOut</td></tr>
        
        while($result = mysql_fetch_array($query)){
            $TotalHits = $result[hits] + $TotalHits;
        }
        
        while($result = mysql_fetch_array($query)){
            $procent = ($result[hits] / $Totalhits) * 100;
            $imgsize = $procent * 2;
            $content = $content."<tr><td>".$result['id']."</td><td>".$result['title']."</td><td>[img]\"../1px_ffc081.gif\"[/img](".$procent.") (".$result['hitsout'].")</td></tr>";
        }

        $content = $content."<tr colspan=\"3\"><td>Totaal HitsOut: $TotalHits</td></tr></table>";
        GenerateAdminPage("Statistieken van $gpdate", $content);
    }
}

?>

code:
1
Parse error: parse error in /home/gpdev/admin/links.php on line 81

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
Regel 72 missen een " en een ;. :P

  • P.B.
  • Registratie: Juli 2001
  • Niet online
Ericston schreef op 22 oktober 2002 @ 21:58:
Regel 72 missen een " en een ;. :P
OMG OMG OMG OMG |:( |:( |:( |:( |:( |:( |:( |:(

* P.B. reikt de sukkel van de dag award aan zichzelf uit

Verwijderd

Op regel 79 staat Totalhits en ergens anders staat TotalHits. Ik weet dat dit niet de oorzaak is van je parse error maar ik wil je meer svdd awards besparen.

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
Verwijderd schreef op 22 oktober 2002 @ 22:02:
Op regel 79 staat Totalhits en ergens anders staat TotalHits. Ik weet dat dit niet de oorzaak is van je parse error maar ik wil je meer svdd awards besparen.
Gelukkig is PHP case-insensitive.

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Huh? Maar is dat niet heel erg vaag dan???

De error zit niet op de line waar ie de error aangaf???

Heeft dat iets met het commentaar te maken? Dat ie dat niet meetelt??

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 30-08 17:07
Nee dat ligt aan PHP zelf. En dat kan best irritant zijn, zoals in dat stukje code hierboven.

  • smaij
  • Registratie: November 2000
  • Laatst online: 00:20
code:
1
2
3
4
5
6
7
8
9
10
"<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"5%\">ID</td><td width=\"53%\">Titel</td><td width=\"42%\">HitsOut</td></tr> 
         
        while($result = mysql_fetch_array($query)){ 
            $TotalHits = $result[hits] + $TotalHits; 
        } 
         
        while($result = mysql_fetch_array($query)){ 
            $procent = ($result[hits] / $Totalhits) * 100; 
            $imgsize = $procent * 2; 
            $content = $content."


op die regel is het pas de eerste keer dat er vanaf de fout een " word geplaatst, dus logisch als je erbij nadenkt

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
PHP:
72
73
74
75
76
77
78
79
80
81
82
$content = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"5%\">ID</td><td width=\"53%\">Titel</td><td width=\"42%\">HitsOut</td></tr>
        
        while($result = mysql_fetch_array($query)){
            $TotalHits = $result[hits] + $TotalHits;
        }
        
        while($result = mysql_fetch_array($query)){
            $procent = ($result[hits] / $Totalhits) * 100;
            $imgsize = $procent * 2;
            $content = $content."<tr><td>".$result['id']."</td><td>".$result['title']."</td><td>[img]"../1px_ffc081.gif\"[/img](".$procent.") (".$result['hitsout'].")</td></tr>"; 
        }

In regel 72 wordt er begonnen met het toekennen van een string aan $content.
Vervolgens staan er geen dubbele aanhalingstekens om de string af te sluiten zoals de bedoeling was. Het gevolg is dat de newlines en de rest van de code ook in de string komt.
Maar ziedaar op regel 81 staan de langverwachte aanhalingstekens. Maar wtf, er staat opeens <tr><td> in de PHP code... t00t, parse error!

Verwijderd

oh oh oh wat hou ik toch van Smarty :)
Pagina: 1