Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Outo parse error

Dude [07.05.2008 20:36:51]

#

Mitä täs on vikaa täs on?

<?php
//$topic=$_GET["t"];
$error=$_GET["error"];
$tulos=explode("_", $_GET["t"]);
$forum=$tulos[0];
$topic=$tulos[1];
$tulos=sqlite_query("SELECT otsikko, viestit FROM ".$forum." WHERE num = ".$topic, $db);
$i=0;
$rivi=sqlite_fetch_array($tulos);
echo '<h1>Foorumi - '.$rivi["otsikko"].'</h1>';
if($error==1){
 echo '<b>Viestikenttä oli tyhjä!</b>';
}
echo '<table width="100%">';
$tulos=explode("\n",$rivi["viestit"]);
for($i=0; $i <= count($tulos); $i=$i+2) {
 $nimi=$tulos[$j];
 $viesti=$tulos[$j+1];
 if($nimi <> "") {
  $data.='<tr><td><b>'.$nimi.'</b>';
 if($nimi==$user) {
  $data.=' &nbsp; &nbsp; &nbsp; <a href="?act=edit&amp;t='.$forum.'_'.$topic.'&amp;v='.$i.'">muokkaa</a>';
 }
 $data.='<p>'.$viesti."</p></td></tr>\n";
}
echo $data.'</table>';
if($user) {
echo '<form action=sr.php?t="'.$forum.'_'.$topic.'" method="post">
<b>Viesti:</b><br /><textarea rows="10" cols="40" name="viesti"></textarea><br />
<input type="submit" value=" Lähetä " />
</form>';
} ?>

Ku tulee "Parse error: parse error, unexpected $ in /opt/monkey-0.9.1/htdocs/sf/viewtopic.php on line 32".

Sami [07.05.2008 20:50:06]

#

Jos vaikka sisentäisit ja rivittäisit koodiasi hieman järkevämmin, niin saattaisit itsekin huomata, että tuolle for-lauseelle ei löydy sulkevaa aaltosulkua.
Lisäksi tuo sql-kysely vaikuttaa hieman vaaralliselta (http://en.wikipedia.org/wiki/Sql_injection)...

ajv [07.05.2008 20:52:16]

#

Sulta puuttuu ilmeisesti seuraavan ehdon sulkeva kaarisulku:
if($nimi <> "") {

Edit: hidas. Ja myös piti mainita, että kunnolla sisennetty koodi olisi tuonkin paljastanut...

Dude [07.05.2008 21:08:20]

#

Taas näitä ärsyttäviä php-virheitä ku valittaa vasta myöhemmällä rivillä. Niin ja tuo for oli sisennetty mutta se katos ku laitoin sen tuohon. Niin tuossa SQL-kyselys onki vaara jos joku laittaa jotain kivaa osoiteriville.

ajv [07.05.2008 21:12:57]

#

Tuo PHP:n antama virheilmoitus ei kyllä kieltämättä ole kaikkein kuvaavin.

"Parse error: parse error, unexpected $"

Mutta kun tietää, että $-merkki tarkoittaa loppua, niin tuosta kyllä ymmärtää heti "Odottamaton loppu", eli useimmiten juuri pariton määrä kaarisulkuja.

Teuro [08.05.2008 08:02:35]

#

Eli $-merkki ei viittaakkaan muuttujan määrittelyssä käytettyyn symboliin, vaan nimenomaan jonkun osion loppua?

ajv [08.05.2008 08:41:01]

#

Näin minä sen olen ymmärtänyt. Säännöllisissä lausekkeissa tuo $-merkki tarkoittaa rivin loppua. PHP:ssä ilmeisesti tiedoston loppua?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta