webForumDet fria alternativet

Jobbiga felmeddalanden med PHP

PHPur PHP

2 svar · 282 visningar · startad av Freddan

Medlem sedan juli 200042 inlägg
Frågan#1

På mitt nya webbhotell dyker det upp en massa felmeddelanden som jag inte har fått förut. Sidorna funkar som det är tänkt, men förstörs ju av att fula felmeddelanden i denna stil skrivs ut:

Warning: Undefined variable: någonting in h:\mappar\sida.php on line 3

Warning: Use of undefined constant någonting - assumed 'någonting' in h:\mappar\sida.php on line 8

Hur får man bort dom?!

Medlem sedan mars 2001325 inlägg
#2

Har de en senare version av PHP på ditt nya webhotell?

Mvh
Martin

Medlem sedan aug. 20002 975 inlägg
#3

Det kan vara flera saker, men eftersom sidorna i övrigt fungerar precis som det ska så tror jag att det beror på att ditt nya webbhotell inte har visning av varningar bortkopplade i sin php.ini.
När man använder en odefinierad variabel så sätter PHP den till 0 (noll) eller tom sträng beroende på sammanhanget. Dessutom skickas det ut ett varningsmeddelande om att det vore lämpligt att definiera variabeln först, något jag personligen kraftigt håller med om.
T.ex om du börjar ett skript så här:

<?php
if ($variabel > 0) {
// Gör något
}

så kommer du att få en varning. Du bör istället skriva något liknande det här:

<?php
if (isset($variabel) && $variabel > 0) {
// Gör något
}

eller

<?php
if (!isset($variabel)) $variabel = 0;
if ($variabel > 0) {
// Gör något
}

Eventuellt går det att stänga av varningarna med en htaccess-fil om man kör på Linux/unix, men om det går så vet jag inte hur det går till.

En annan orsak kan vara att webbhotellet kör med register_globals=off i php.ini. Det är standardinställningen från PHP version 4.1.1 eller högre. Med register_globals av går det inte att fånga upp POST- och GET-variabler direkt med variabelnamnet utan man får använda $_POST['variabel'] respektive $_GET['variabel'] istället. Men eftersom allt fungera förutom varningarna tror jag inte det är detta det beror på.

För att kolla upp PHP-version och hur inställningarna i php.ini är kan du använda phpinfo(). Skapa en fil med följande innehåll:

<?php
phpinfo();
?>

Där finns all information du behöver.

130 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)