Avatar billede stegemueller Novice
04. maj 2007 - 15:46 Der er 8 kommentarer og
1 løsning

Opstået parserfejl uden jeg har ændret noget

Kære eksperter

Hvis jeg i Firefox går til en af mine kirkegårde fx http://stegemueller.dk/hoejby/ og i søgefeltet skriver et eller andet navn - Hansen er altid godt - returneres hos mig (og en af mine kunder - men ikke hos alle)

4 ens linier med: Parse error: syntax error, unexpected ':' in D:\www2\stegemueller.dk\www_ny\hoejby\hoejby_svar_soeg.php(129) : eval()'d code on line 1

Når jeg trykker på Vis stenen kommer de samme 4 linier også der:
Parse error: syntax error, unexpected ':' in D:\www2\stegemueller.dk\www_ny\hoejby\hoejby_visbilled.php(131) : eval()'d code on line 1

Jeg har ikke problemet i IE, men det har en af mine kunder. Jeg har selv lært at leve med det, for jeg troede kun det var hos mig, det var sådan.

Scriptene har være brugt og genbrugt siden ruder konge var knægt, og problemet var der ikke i starten. Udbyder lavede noget om, men jeg har prøvet at spørge ham, men han mener ikke, han kan være årsagen.

eval satte vi i sin tid ind for at sikre, at kunne bruges lokale variabler - ellers var php tindrende ligeglad med søgekriterierne.

Herunder har jeg indsat de to scripts. Jeg ved godt der er for meget med, men fejlen kan vel være pricipielt over det hele.

På forhånd tusind tak for hjælpen.
Hanne B. Stegemüller

--------------
svar_soeg:

<?php $strTitle=" ";?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
      <title>Viser grave p&aring; H&oslash;jby Kirkeg&aring;rd i Ods Herred</title>

<meta name="description" content="Data fra grave p&aring; H&oslash;jby Kirkeg&aring;rd i Ods Herred">
<meta name="keywords" content="Data fra grave p&aring; H&oslash;jby Kirkeg&aring;rd i Ods Herred">
<meta name="author" content="Hanne B. Stegem&uuml;ller, Maj-Britt Agerb&aelig;k, Per Agerb&aelig;k og Anne">
<meta http-equiv="expires" content="no expire">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css" media="screen">@import "../css/typo-index.css";</style>
  <link rel="shortcut icon" href="../grafik/pics/favicon.ico" >
     
</head>
<body>

<div id="navAlpha">
 
<a href="kontakt.php" title="Send mig en e-mail"
    onmouseover="this.href='mai' + 'lto:' + 'po%73t' + '@' + 's%74%65gemueller.dk'"
    onfocus="this.href='mai' + 'lto:' + 'po%73t' + '@' + 's%74%65gemueller.dk'">
    <img alt="Billede af kuvert = Send en mail" src="../grafik/gifs/email.gif" border="0" width="16" height="16" />
</a>

<br />

    Hanne B. Stegem&uuml;ller<br />
    Vanl&oslash;se Allé 35<br />
    DK-2720    Vanl&oslash;se<br />
    Mobil: 22 81 17 31<br />
    CVR: 29 64 47 99<br />

    <hr />

        <a href="java script:history.back()"><img src="../../grafik/gifs/arrow_right.gif"
      alt="Tilbage" title="Tilbage" width="16" height="16" border="0"></a>

        <a href="http://stegemueller.dk/">
    <img border="0" src="../grafik/gifs/home.gif"
    alt="ikon hjem" title="Retur til hovedsiden"
    height="16" width="16"></a>

    <hr />
      <a href="http://validator.w3.org/check?uri=referer">
    <img border="0"
    src="../grafik/gifs/valid-html401.gif"
    alt="Valid HTML 4.01!"
    title="Siden overholder standarden HTML 4.01"
    height="31" width="88"></a>   
   
    <hr />

<!-- chart.dk unified trackercode - v1 -->
<script language="JavaScript" type="text/javascript"
src='http://www.chart.dk/js/unified.asp'></script>
<script language='javascript' type="text/javascript" >
track_visitor(123030, '');
</script>
<noscript>
<a href="http://www.chart.dk/ref.asp?id=123030" target="_blank">
  <img src="http://cluster.chart.dk/chart.asp?id=123030" border="0" alt="Chart.dk">
</a>
</noscript>
<!-- chart.dk unified trackercode - v1 -->
</div>

<div id="navBeta" align="right">

    <a href="http://stegemueller.dk/sitemap.php">Sitemap</a>
    <hr />

  Rev.: 12 08 2006<br />
 
  <?php
  //inds&aelig;tter aktuel dato       
  $time = time();
  print "I dag: ";
  //print "<br />";
  print date("d  m Y", $time);
        print "<br>";
        include("../res/inc/breadcrumbs.php"); ?><?php echo $strTitle; ?>

        <hr />
        Copyright &copy; 2005 - 2007 <br />
        <i>Hanne B. Stegem&uuml;ller</i>
        <hr />
        <a href="http://stegemueller.dk/dki/">Dansk Kirkeg&aring;rdsIndex</a>
        <hr />
        <a href="http://stegemueller.dk/forum/">Forum for DKI</a>

    <hr />
    <A HREF="http://search.freefind.com/find.html?id=38077521">
    S&oslash;g p&aring; sitet</a> 
    powered by <A HREF="http://www.freefind.com">FreeFind</A><br />
    <FORM ACTION="http://search.freefind.com/find.html"
      METHOD="GET" target="_self"><INPUT TYPE="HIDDEN" NAME="id" VALUE="38077521">
      <INPUT TYPE="HIDDEN" NAME="pid" VALUE="r">
      <INPUT TYPE="HIDDEN" NAME="mode" VALUE="ALL">
      <INPUT type="HIDDEN" name="n" value="0">
      <INPUT TYPE="TEXT" NAME="query" SIZE="16">
      <input type="button" value=" Find! ">
    </FORM>
    <hr />
       

<!-- Firefox reklame -->

    <a href="http://www.spreadfirefox.com/?q=affiliates&amp;id=0&amp;t=215">
        <img border="0" alt="Firefox 2" title="Firefox 2" src="http://sfx-images.mozilla.org/affiliates/Buttons/firefox2/firefox-spread-btn-4.png"/>
    </a>   

<!-- Slut på Firefox reklame -->
   
       
</div>
<!-- slut p&aring; h&oslash;. menu -->
       
<div class="content">       
<h1>Gravsteder p&aring; H&oslash;jby Kirkeg&aring;rd i Ods Herred</h1>

<?php
// skab forbindelse til databasen her
include ("../res/inc/mydb2.php");

//sl&aring;r register_globals_off fra dvs. globale variable kan benyttes
foreach ($_REQUEST as $key => $value) {
  echo("<!-- $key => $value -->\n");
  eval("\$$key = \"$value\";");
}

//laver en forep&oslash;rgsel i tabellen person
$stmt = "select * from hoejbyperson where navn like '%" . $safeseek . "%' and death <= date_sub(now(), interval 10 year) order by death desc";
$svar = mysql_query ($stmt) or die(mysql_error());
echo("<!—stmt = $stmt -->\n");

//udskriver de fundne data i en tabel
print "<table summary=''>";
while ($row = mysql_fetch_array($svar)) {
    if ($row["born"] == "0000-00-00") {
        $born = "&nbsp;";
    } else {
        $born = $row["born"];
    }

    if ($row["death"] == "0000-00-00") {
        $death = "&nbsp;";
    } else {
        $death = $row["death"];
    }

        $alder = alder($row); //Kald funktion til beregning af alder med søgeresultatet som argument.
   
    print
    "<tr>
       
        <td align=\"left\">Afd&oslash;de:</td><td align=\"left\">" .$row["navn"]. "</td>
          <td align=\"left\">Alder:</td> <td align=\"left\">" .$alder. "</td></tr>
            <tr><td align=\"left\">F&oslash;dt den:</td><td align=\"left\">" .$born. "</td>
            <td align=\"left\">F&oslash;dested:</td><td align=\"left\">".$row["born_place"]. "</td></tr>
            <tr><td align=\"left\">D&oslash;d den:</td><td align=\"left\">" .$death. "</td>
            <td align=\"left\">D&oslash;dssted:</td><td align=\"left\">".$row["death_place"]. "</td>
    </tr>
    <tr>
        <td>
    ";

    $stm = "select * from hoejbyperson_og_pics a, hoejbypics b where a.pict = b.nr and a.person = " .$row["ID"];
//    print $stm . "<br>";
    $picturelink = mysql_query ($stm) or die(mysql_error());
    while ($linkrow = mysql_fetch_array($picturelink)) {
        print "<a href='hoejby_visbilled.php?img=" . $linkrow["sti"].  "'>Vis stenen</a><br />";        
    }
    print
    "</td><td>&nbsp;</td><td align=\"left\">ID:</td> <td align=\"left\">" .$row["ID"]. "</td></tr>
    ";
}
print "</table>";

function alder($row){//Funktion til beregning af alder
  $foedt = explode("-", $row['born']);//Del fødselsdagen op i array med &aring;r, m&aring;ned og dag i hvert sit felt.
  $doed = explode("-", $row['death']);//d.o
  $alderd = $doed[2] - $foedt[2];//Find forskellen mellem fødselsdag og dødsdag
  if($alderd < 0){//Hvis den er negativ
    $alderd = 30+$alderd;//Er den rigtige dag = 30 - negativ fødselsdag.
    $mentem = -1;//Og m&aring;neden skal være en mindre, da vi lige har "brugt" 30 dage. Derfor -1 i mente
  }
  $alderm = $doed[1] - $foedt[1] + $mentem;//Find forskellen mellem fødselsm&aring;ned og dødsm&aring;ned - Husk menten
  if($alderm < 0){//Hvis den er negativ
    $alderm = 12+$alderm;//Er den rigtige m&aring;ned = 12 - negativ fødselsm&aring;ned.
    $mentey = -1;//Og &aring;ret skal være en mindre, da vi lige har "brugt" 12 m&aring;neder. Derfor -1 i mente
  }
  $aldery = $doed[0] - $foedt[0] + $mentey;//Find forskellen mellem fødsels&aring;r og døds&aring;r - Husk menten
  if($doed[0] == "0000" || $foedt[0] == "0000"){//Hvis et af &aring;rene er ukendt:
    return "&nbsp;";//Returner ingenting
  }elseif($doed[1] == "00" || $foedt[1] == "00"){//Hvis en afm&aring;nederne er ukendt:
    return $aldery." &aring;r";//Returner kun &aring;r
  }elseif($doed[2] == "00" || $foedt[2] == "00"){//Hvis en af dagene er ukendt:
    return $aldery." &aring;r  og ". $alderm." m&aring;neder";//Returner kun &aring;r og m&aring;neder
  }else{//Hvis alt ser ud til at være ok
    return $aldery." &aring;r, ". $alderm." m&aring;neder og ".$alderd." dage";//Returner alt
  }
}   
   
?>
</div>


</body>
</html>

----
vis_billed:

<?php $strTitle=" ";?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
      <title>Visning af grave p&aring; H&oslash;jby Kirkeg&aring;rd i Ods Herred</title>

<meta name="description" content="Data fra grave p&aring; H&oslash;jby Kirkeg&aring;rd i Ods Herred">
<meta name="keywords" content="Data fra grave p&aring; H&oslash;jby Kirkeg&aring;rd i Ods Herred">
<meta name="author" content="Hanne B. Stegem&uuml;ller, Maj-Britt Agerb&aelig;k, Per Agerb&aelig;k og Anne">
<meta http-equiv="expires" content="no expire">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css" media="screen">@import "../css/typo-index.css";</style>
  <link rel="shortcut icon" href="../grafik/pics/favicon.ico" >


     
</head>
<body>

<div id="navAlpha">
 
<a href="kontakt.php" title="Send mig en e-mail"
    onmouseover="this.href='mai' + 'lto:' + 'po%73t' + '@' + 's%74%65gemueller.dk'"
    onfocus="this.href='mai' + 'lto:' + 'po%73t' + '@' + 's%74%65gemueller.dk'">
    <img alt="Billede af kuvert = Send en mail" src="../grafik/gifs/email.gif" border="0" width="16" height="16" />
</a>

<br />

    Hanne B. Stegem&uuml;ller<br />
    Vanl&oslash;se Allé 35<br />
    DK-2720    Vanl&oslash;se<br />
    Mobil: 22 81 17 31<br />
    CVR: 29 64 47 99<br />

    <hr />

        <a href="java script:history.back()"><img src="../../grafik/gifs/arrow_right.gif"
      alt="Tilbage" title="Tilbage" width="16" height="16" border="0"></a>

        <a href="http://stegemueller.dk/">
    <img border="0" src="../grafik/gifs/home.gif"
    alt="ikon hjem" title="Retur til hovedsiden"
    height="16" width="16"></a>

    <hr />
      <a href="http://validator.w3.org/check?uri=referer">
    <img border="0"
    src="../grafik/gifs/valid-html401.gif"
    alt="Valid HTML 4.01!"
    title="Siden overholder standarden HTML 4.01"
    height="31" width="88"></a>   
   
    <hr />

<!-- chart.dk unified trackercode - v1 -->
<script language="JavaScript" type="text/javascript"
src='http://www.chart.dk/js/unified.asp'></script>
<script language='javascript' type="text/javascript" >
track_visitor(123030, '');
</script>
<noscript>
<a href="http://www.chart.dk/ref.asp?id=123030" target="_blank">
  <img src="http://cluster.chart.dk/chart.asp?id=123030" border="0" alt="Chart.dk">
</a>
</noscript>
<!-- chart.dk unified trackercode - v1 -->
</div>

<div id="navBeta" align="right">

    <a href="http://stegemueller.dk/sitemap.php">Sitemap</a>
    <hr />

  Rev.: 12 08 2006<br />
 
  <?php
  //inds&aelig;tter aktuel dato       
  $time = time();
  print "I dag: ";
  //print "<br />";
  print date("d  m Y", $time);
        print "<br>";
        include("../res/inc/breadcrumbs.php"); ?><?php echo $strTitle; ?>

        <hr />
        Copyright &copy; 2005 - 2007 <br />
        <i>Hanne B. Stegem&uuml;ller</i>
        <hr />
        <a href="http://stegemueller.dk/dki/">Dansk Kirkeg&aring;rdsIndex</a>
        <hr />
        <a href="http://stegemueller.dk/forum/">Forum for DKI</a>

    <hr />
    <A HREF="http://search.freefind.com/find.html?id=38077521">
    S&oslash;g p&aring; sitet</a> 
    powered by <A HREF="http://www.freefind.com">FreeFind</A><br />
    <FORM ACTION="http://search.freefind.com/find.html"
      METHOD="GET" target="_self"><INPUT TYPE="HIDDEN" NAME="id" VALUE="38077521">
      <INPUT TYPE="HIDDEN" NAME="pid" VALUE="r">
      <INPUT TYPE="HIDDEN" NAME="mode" VALUE="ALL">
      <INPUT type="HIDDEN" name="n" value="0">
      <INPUT TYPE="TEXT" NAME="query" SIZE="16">
      <input type="button" value=" Find! ">
    </FORM>
    <hr />
       

<!-- Firefox reklame -->

    <a href="http://www.spreadfirefox.com/?q=affiliates&amp;id=0&amp;t=215">
        <img border="0" alt="Firefox 2" title="Firefox 2" src="http://sfx-images.mozilla.org/affiliates/Buttons/firefox2/firefox-spread-btn-4.png"/>
    </a>

<!-- Slut på Firefox reklame -->

       
</div>
<!-- slut p&aring; h&oslash;. menu -->



<div class="content">
       
<h1>Gravsted p&aring; H&oslash;jby Kirkeg&aring;rd i Ods Herred</h1>

<?php
//slår register_globals_off fra dvs. globale variable kan benyttes
foreach ($_REQUEST as $key => $value) {
  echo("<!-- $key => $value -->\n");
  eval("\$$key = \"$value\";");
}


print "<br /><img src='" . $img . "' alt='Billede af gravsten p&aring; H&oslash;jby Kirkeg&aring;rd i Ods Herred'
title='Billede af gravsten p&aring; H&oslash;jby Kirkeg&aring;rd i Ods Herred' />";
?>
</div>
</body>
</html>
Avatar billede erikjacobsen Ekspert
04. maj 2007 - 18:56 #1
Tag dig sammen, og lad være med at tro du skal bruge register-globals-variabler. Det er linierne: 

foreach ($_REQUEST as $key => $value) {
  echo("<!-- $key => $value -->\n");
  eval("\$$key = \"$value\";");
}

der giver fejl hos dig (eller andre). Det er PHP-slam-kode af den værste slags. Kod med korrekt brug af $_POST og $_GET. Du må gerne selv kopiere over over fra dine kendte variabler, fx:

$name = $_POST['name'];

Retfærdigvis: man KAN også lave den overførsel din for-løkke forsøger at lave, uden den giver fejl, men det kan på sigt betale sig at gøre det rigtigt.
Avatar billede stegemueller Novice
04. maj 2007 - 19:12 #2
Hej Erik

Undskyld mig! Og tal ordentligt! Jeg har fået dette stykke kode fra en anden; jeg er ikke selv dygtig nok til at kunne tjekke om det er ok eller ej. Er du eller en anden i stand til at fortælle, hvad jeg skulle have gjort?
Avatar billede erikjacobsen Ekspert
04. maj 2007 - 19:17 #3
Slam-kode er slam-kode. Også når man taler ordentligt. Skulle have gjort? Fundet een, der vidste hvad han gjorde. Men det er jo lidt sent nu. Ved du hvad: der kommer nok nogen forbi, der vil fikse det for dig, på een af de to måder. Det er lige lidt mere end jeg har tid til ;)

At nogen "kan kode PHP" er ingen garanti for at man kan gøre det ordentligt.
http://www.computerworld.dk/art/39178?cid=4&q=lerdorf&sm=search&a=cid&i=4&o=0&pos=1
Rasmus Lerdorf: "Lerdorf erkender, at phps popularitet og usikkerhed er den del af xss problematikken." Han har lavet PHP, oprindeligt. Det er ikke andet end et værktøj, som i ukyndiges hænder selvfølgelig ikke kan bruges ordentligt.
Avatar billede stegemueller Novice
04. maj 2007 - 19:40 #4
Hej Erik
Tak for din meget venlige hjælp. Jeg vil ikke tøve med at henvende mig her igen.
Avatar billede stegemueller Novice
04. maj 2007 - 20:34 #5
Er der nogne der kan fortælle mig, hvordan koden skulle have set ud?
Avatar billede stegemueller Novice
05. maj 2007 - 08:02 #6
Jeg har selv løst det. Der skulle @ før eval.
Avatar billede erikjacobsen Ekspert
05. maj 2007 - 08:12 #7
Med @ før eval fjerner du beskeden, men du løser ikke problemet om hvorfor den opstår. Samtidig vil du jo ikke få sat den variabel, der skulle sættes. Men kan du undvære den, kan du måske undvære dem allesammen, og så kan du jo fjerne de 4 linier jeg angav først.  Men hvad, løsningen er li'så grim som koden, så det passer sammen ;)  Husk at acceptere dit eget svar.
Avatar billede stegemueller Novice
05. maj 2007 - 08:30 #8
Hej Erik

Jeg synes af og til det er ufattelig svært som begynder at bruge disse fora. Man stiller et spørgsmål, fordi man ser, der er et problem, men kan ikke selv løse det. Og så får man at vide, at man er en nar. Så er man ikke blevet meget klogere.
Avatar billede erikjacobsen Ekspert
05. maj 2007 - 09:11 #9
Det er ikke dig, der er en nar, men ham, der har lavet koden (som jeg troede var dig...)
Og venter du længe nok (lørdag er nok ikke det bedste tidspunkt), kommer der nok nogen og laver det for dig.
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