vicktorMedlem sedan okt. 200152 inlägg
Hej!
Jag har nu installerat php och MySql till IIS.
Men jag får följande felmedelande på de flesta siderna:
Notice: Undefined variable: farg in c:\inetpub\wwwroot\Nyhetinstal.php on line 10
Notice: Undefined variable: titel in c:\inetpub\wwwroot\Nyhetinstal.php on line 10
Notice: Undefined variable: text in c:\inetpub\wwwroot\Nyhetinstal.php on line 10
Notice: Undefined variable: datum in c:\inetpub\wwwroot\Nyhetinstal.php on line 10
Notice: Undefined variable: i in c:\inetpub\wwwroot\Nyheter\Nyheter.php on line 27
GeinMedlem sedan sep. 20004 849 inlägg
Det underlättar nog för folk om du skriver ut hur raderna ser ut där det blir fel. Annars verkar det som om du inte har deklarerat variablerna du använder, om det behövs vill säga.
vicktorMedlem sedan okt. 200152 inlägg
Nyhetinstal.php rad 10:
<td bgcolor=\"$farg\" cellpadding=\"5\"><center><b>$titel</b></center> <font size=\"1\">$text</font> <br><font size=\"2\">$datum</font></br></td></tr>";
Nyheter.php rad 27:
$i = 0;
SDCdMedlem sedan jan. 2001712 inlägg
Detta känns mer som en PHP fråga. Om en moderator kan flytta frågan dit kommer nog svaren att hagla in :)
Sen kan det nog vara bra om du inkluderar lite mer kod runt raden som visas i felmeddelandet. Använd gärna kod-taggen.
vicktorMedlem sedan okt. 200152 inlägg
Jag hade inga problem när jag körde apache så jag tror att det har nåt met IIS att göra.
VikingMedlem sedan maj 2000977 inlägg
Vad har $datum, $titel och de för värde? När ger du dem ett värde? :o
vicktorMedlem sedan okt. 200152 inlägg
Värdet hämtas från en annan fil.
MatteMedlem sedan aug. 20002 970 inlägg
Visa koden fram till rad 10. Om du inkluderar en fil visa denna också.
Hur du kan få felmeddelande på den sista (rad 27 Nyheter.php) är obegripligt, men det kan vara någon rad före som det är fel på. Visa några rader innan rad 27 (plus rad 27).
Sedan kan du också prova att söka i forumet på "undefined". Då hittar du bl.a detta: http://www.webforum.nu/showthread.php?s=&postid=371777#post371777
SPiNMedlem sedan mars 20005 832 inlägg
Det handlar inte om felmeddelanden, utan om notiser. Se till att använda isset () på variabler som inte är deklarerade i dokumentet så kommer du från problemet. :)
vicktorMedlem sedan okt. 200152 inlägg
Jag hänger inte med men om vi tar det här scriptet som ex:
<?
$datum = date("j");
$ar = date("Y");
/* Veckodagar */
$dag = date("l");
if ($dag == Monday) { rad 7
echo ('Måndagen');
}
elseif ($dag == Tuesday) { rad 10
echo ('Tisdagen');
}
elseif ($dag == Wednesday) { rad 13
echo ('Onsdagen');
}
elseif ($dag == Thursday) { rad 16
echo ('Torsdagen');
}
elseif ($dag == Friday) {
echo ('Fredagen');
}
elseif ($dag == Saturday) {
echo ('Lördagen');
}
elseif ($dag == Sunday) {
echo ('Söndagen');
}
/* Avskiljare */
echo (' den ');
echo ($datum);
echo (' ');
/* Avskiljare */
/* Månader */
$manad = date("F");
if ($manad == January) { rad 38
echo ('Januari');
}
elseif ($manad == February) { rad 41
echo ('Februari');
}
elseif ($manad == March) { rad 44
echo ('Mars');
}
elseif ($manad == April) { rad 47
echo ('April');
}
elseif ($manad == May) { rad 50
echo ('Maj');
}
elseif ($manad == June) { rad 53
echo ('Juni');
}
elseif ($manad == July) {
echo ('Juli');
}
elseif ($manad == August) {
echo ('Augusti');
}
elseif ($manad == September) {
echo ('September');
}
elseif ($manad == October) {
echo ('Oktober');
}
elseif ($manad == November) {
echo ('November');
}
elseif ($manad == December) {
echo ('December');
}
/* Avskiljare */
echo (', ');
echo ($ar);
?>
Felmedelande:
Notice: Use of undefined constant Monday - assumed 'Monday' in c:\inetpub\wwwroot\hej.php on line 7
Notice: Use of undefined constant Tuesday - assumed 'Tuesday' in c:\inetpub\wwwroot\hej.php on line 10
Notice: Use of undefined constant Wednesday - assumed 'Wednesday' in c:\inetpub\wwwroot\hej.php on line 13
Notice: Use of undefined constant Thursday - assumed 'Thursday' in c:\inetpub\wwwroot\hej.php on line 16
Torsdagen den 13
Notice: Use of undefined constant January - assumed 'January' in c:\inetpub\wwwroot\hej.php on line 38
Notice: Use of undefined constant February - assumed 'February' in c:\inetpub\wwwroot\hej.php on line 41
Notice: Use of undefined constant March - assumed 'March' in c:\inetpub\wwwroot\hej.php on line 44
Notice: Use of undefined constant April - assumed 'April' in c:\inetpub\wwwroot\hej.php on line 47
Notice: Use of undefined constant May - assumed 'May' in c:\inetpub\wwwroot\hej.php on line 50
Notice: Use of undefined constant June - assumed 'June' in c:\inetpub\wwwroot\hej.php on line 53
Hur fixar man detta?
MaRseYMedlem sedan maj 2001178 inlägg
hmm det är väl helt enkelt för att du inte har citattecken (") runt månadsnamnen..?
SPiNMedlem sedan mars 20005 832 inlägg
Precis. Alla dina if- och elseif-satser bör se ut så här:
elseif ($manad == [b]"[/b]October[b]"[/b]) {
Du måste alltså jämföra mot strängar - vilka specifieras med ".
vicktorMedlem sedan okt. 200152 inlägg
Det här scriptet fungerar nu men jag kan ju inte göra så på alla sider. Så vad kan det vara för fel på IIS för det fungerar fint på apache.
MatteMedlem sedan aug. 20002 970 inlägg
Det är inget fel på IIS av den här orsaken. Fungerar precis likadant om du skulle hämta hem Apache att installera din PHP på.
Troligtvis hade du i din förra installation visning av notiserna/varningarna bortkopplat. Detta görs i php.ini. Kanske kan det också göras i Apache, men det vet jag inget om.
Se dessa notiser som en varning att allt inte står rätt till, även om PHP gör en kvalificerad gissning och får det rätt, och sätt dig för att skriva om dina skript.
Så här läser jag notisen/varningen:
Notice: Use of undefined constant June - assumed 'June' in c:\inetpub\wwwroot\hej.php on line 53
Min tolkning, PHP säger: "Jag har hittat en odefinierad konstant som kallas för June, men jag antar att det är strängen 'June' du menar istället".
Då är det som jag ser det lämpligt att se till att det är en sträng, om det är sträng det ska vara, eller definiera konstanten om det är en konstant.