ik had mijn site in php4 geschreven en server heeft upgrade gedaan naar php5 en ik krijg vollop de foutmelding use of undefined constant paginatitel - assumed 'paginatitel'

wat kan ik hieraan doen zonder heel de site opnieuw te schrijven?
kan niemand me verder helpen?
geef eens wat regels code.
de fout moet toch een regel aangeven?
fout op regel 23 dit deed het wel in PHP4

<?
$host = "localhost";
$user = "user";
$pass = "pass";
$dbdb = "dbnaam";

if (!@mysql_select_db($dbdb, @mysql_connect($host, $user, $pass)))
{
echo "Er kan geen database connectie gemaakt worden..<p>";

echo "Probeer het na enkele minuten opnieuw. Wil het dan nog niet, neem dan contact met mij op.";
}

$sql = "SELECT * FROM admin WHERE id=$_GET[id]";
$res = mysql_query($sql);

if ($res)
{
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$paginatitel = $row[paginatitel];
$inc = $row[inc] ;
unset($sql);
}
}
else
{
$paginatitel = "Home" ;
$inc = "paginas/home.php";
}
}
if ($_GET[id] <= "0" AND $_GET[show] <= "0" )
{
$paginatitel = "Home" ;
$inc = ("paginas/home.php");
}
else
{
if ($_GET[show] >= "0")
{
}
}
$sql = "SELECT * FROM layout WHERE id = '1' ";
$res = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_array($res))
{
$achtergrkleur = $row[achtergrkleur];
$links = $row[links];
$achtergrkleurmidden = $row[achtergrkleurmidden];
$brief = $row[achtergrbrief];
$rechts = $row[rechts];
$rechtscell = $row[rechtscell];
$linkscell = $row[linkscell];
$border = $row[border];
$boven = $row[boven];
$menutitels = $row[menutitels];
$menutekst = $row[menutekst];
$lettertype = $row[lettertype];
$tgroot = $row[tgroot];
$nieuwskleurlinks = $row[nieuwskleurlinks];
$nieuwsboven = $row[nieuwsboven];
$nieuwskleuronder = $row[nieuwskleuronder];
$nieuwskleurmidden = $row[nieuwskleurmidden];


}
//Namen en locaties van bestanden
$f_admin = "index.php?id=38";
$f_sign = "index.php?id=38";
$f_book = "?id=23";

// Hoeveel berichten per pagina?
$pp = 6;
//Datum & tijd formaat  
$datum = date("d/m/y \o\m H:i:s");
?>
[' ']

zet er eens ' tussen
Raar, ze hebben bij het updaten van de PHP versie ook de error_reporting veranderd.

Je moet inderdaad $row['iets'], $_GET['iets'] en $_POST['iets'] gebruiken MET quotes.
Dat is inderdaad de error die je krijgt.

Alles wat buiten de quotes staat probeert PHP op te
vatten als:

- functie
- variabele
- boolean
- integer
- constant

De eerste vier kun je vrij gemakkelijk uitsluiten in de meeste gevallen, dus krijg je meestal een unefined constant error, omdat hij op probeert te vatten als een constant, terwijl deze niet bestaat.

Overigens ligt dit niet aan de PHP versie maar het ingestelde niveau van de foutmeldingen.

Als je zeker wilt weten dat het in alle versies werkt(ohke, zonder hele oude versies) moet je boveaan je pagina altijd even error_reporting(E_ALL); zetten, of in PHP 5 zelfs E_STRICT, maar dan krijg je bijvoorbeeld ook een error als je een array niet expliciet defineerd.

edit: Het kan zijn dat ik in mijn rijtje nog wat mis.

Reageren