webForumDet fria alternativet

Iis

13 svar · 397 visningar · startad av vicktor

vicktorMedlem sedan okt. 200152 inlägg
#1

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
#2

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
#3

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
#4

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
#5

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
#6

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
#7

Värdet hämtas från en annan fil.

MatteMedlem sedan aug. 20002 970 inlägg
#8

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
#9

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
#10

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
#11

hmm det är väl helt enkelt för att du inte har citattecken (") runt månadsnamnen..?

SPiNMedlem sedan mars 20005 832 inlägg
#12

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
#13

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
#14

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.

Genererad på 493 ms · cache AV · v20260730165559-full.f96bc7eb