webForumDet fria alternativet
Logga in / Bli medlem

Odeklarerade variabler

PHP

7 svar · 357 visningar · startad av Web-Tor

Medlem sedan nov. 200013 890 inlägg
Frågan#1

Jag har formaterat min hårdisk och gjort en ny installation av PHP 4.0.4.0 och helt plötsligt så får jag en massa "fel" på mina sidor.

 
Warning: Use of undefined constant dbReport - assumed 'dbReport' in c:\inetpub\wwwroot\report\follow_up.php on line 5

och

 
Warning: Undefined variable: WIS1 in c:\inetpub\wwwroot\report\start.php on line 97

Måste jag deklarera alla mina variabler nu eller det möjligt att tillåta odeklarerade variabler?

/Tor

Medlem sedan nov. 200013 890 inlägg
#2

I PHP manualen står ju:

PHP does not require (or support) explicit type definition in variable declaration; a variable's type is determined by the context in which that variable is used.

Varför vill då PHP att jag deklarerar mina variabler??? :q

/Tor

Medlem sedan feb. 20002 300 inlägg
#3

Visa de 10 första raderna i follow_up.php

Medlem sedan nov. 200013 890 inlägg
#4

OK!

include ('top.inc');

$connection = mysql_connect ("localhost", "root","");
mysql_select_db (dbReport);

$result = mysql_query("SELECT * FROM report WHERE colArrived = '' || colReply = '' || colActionWhen = ''");

Här behöver jag tydligen ha "" runt dbReport. (Det har den aldrig klagat på tidigare) :q

Men på samma sida får jag det här felet:
Warning: Undefined variable: Summa in c:\inetpub\wwwroot\report\follow_up.php on line 135

och på rad 135 står det:

134  $skillnad = DateDiff ("h",strtotime ($Arrived) ,strtotime ($Reply));
135  $Summa = $Summa+$skillnad;

/Tor

Medlem sedan feb. 20002 300 inlägg
#5

Du måste ha citattecken runt databasnamnet. Det är en sträng som du skickar till MySQL och då behöver du tecknen.

Din andra fråga är lite klurig att svara på med den lilla koden men en vild gissning: Testa att sätta $Summa till 0 innan du använder den.

Medlem sedan dec. 19996 592 inlägg
#6
  1. Lär gå att fixa i php.ini. Hade samma problem på min server förut. Tror det var E_NOTICE som man var tvungen att ta bort?

E_NOTICE - run-time notices (these are warnings which often result from a bug in
; your code, but it's possible that it was intentional (e.g., using an
; uninitialized variable and relying on the fact it's automatically
; initialized to an empty string)

Medlem sedan nov. 200013 890 inlägg
#7

PhOrPhEr
Jag har kört PHP på min dator i över ett halvår och skapar rätt så många PHP-filer - jag har aldrig använt citattecken runt databasnamnet och har inte lust att ändra i alla filer jag gjort bara för att PHP helt plötsligt fått för sig att den måste ha det. Samma sak gäller fel 2. Men visst: Felet försvinner om jag först tilldelar variabeln ett värde. Men som sagt - det blir en väldig massa sidor att ändra på... :(

Matti
E_NOTICE är redan bortkommenterat men jag misstänker att det finns någon annan inställning i php.ini.
Hjälp!!!X(

/Tor

Medlem sedan nov. 200013 890 inlägg
#8

Själv är bäste dräng :)

Hittade:

display_errors = On ; Print out errors (as a part of the output)

...och ändrade det till off

Jippie!!!

/Tor

265 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)