Door
Marco Hopster
op 23-04-2017 19:32
gewijzigd op 23-04-2017 19:33
5.916 views
Hallo Allemaal,
Zoals sommigen nu wel weten ben ik een oude site van mij aan het opknappen. Nu loop ik vast op het volgende:
Ik wil een javascript uit laten voeren, maar krijg een melding undefined variabel, terwijl er zeker wat achter staat.
Nu ben ik bang dat dit in de loop van de jaren veranderd is, en dat het daarom niet werkt.
$log="SELECT * FROM kieklog WHERE wieid=$id";
$logdata = mysqli_query($db,$log);
$logrij=mysqli_fetch_array($logdata);
$rows=mysqli_num_rows($logdata);
if ($rows) {
do {
$cover=$logrij['filmcover'];
$kiekcovers.='<a href="javascript:Popup(\'kiekkiekspiek.php?id='.$logrij['filmid'].'\');"><img src="dvd-covers/tn/tn_'.$cover.'" width=150 > ';
} while ($logrij=mysqli_fetch_array($logdata));
}
Ik ben meteen bezig om de gekke benamingen te veranderen, maar dat lijkt me handiger als het script ook goed werkt.
Weet iemand wat ik hier fout doe?
?
Onbekende gebruiker
26-05-2017 17:57
gewijzigd op 28-05-2017 18:04
Voor zover ik weet is error melding altijd al aan geweest, omdat als er onverhoopt een echte error ingeslopen was ik dat in error melding terug kon zien en daarbij de regelnummer zodat ik de fout kon fixen.
Nu is dan voor ongedefinieerde variable noodzakelijk geworden om dat ook te gaan definieren als $voorbeeldzo='';
Volgens mijn handleiding PHP boek zou dit een overbodige opdracht zijn .
Tevens is er nu ineens ook error met het verkrijgen van informatie $_SERVER['HTTP_REFERER'];
Backend log: PHP Notice: Undefined index: HTTP_REFERER in /home/bla/blaa.eu/index.php on line 308\n
hoe kan dat Undefined index voor $servHttpRef = $_SERVER['HTTP_REFERER'];
Dit zou toch ook goed moeten werken...
>> Voor zover ik weet is error melding altijd al aan geweest, omdat als er onverhoopt een echte error ingeslopen was ik dat in error melding terug kon zien en daarbij de regelnummer zodat ik de fout kon fixen.
Had je notices ook aan staan? Dat was heel lang niet standaard zo.
>> Nu is dan voor ongedefinieerde variable noodzakelijk geworden om dat ook te gaan definieren als $voorbeeldzo='';
Is altijd al noodzakelijk geweest, of op zijn minst wel zo netjes. Je kan notices natuurlijk uitzetten, maar dat gaat vroeg of laat tot bugs leiden.
>> hoe kan dat Undefined index voor $servHttpRef = $_SERVER['HTTP_REFERER'];
Dat is niet zo heel lastig, als de browser geen referer doorgeeft bestaat hij niet. Genoeg gevallen waarin de browser geen referer doorgeeft, bijvoorbeeld omdat je niet ergens vandaan gekomen bent. Soms wordt het ook als maatregel gebruikt door antivirus software.
?
Onbekende gebruiker
26-05-2017 18:29
gewijzigd op 28-05-2017 18:05
Maar dan zou de waarde zonder error gewoon "" zijn waaron is "" nu opeens een foutmelding
Dit is niet logisch
Nee, want het is een niet gedefinieerde variabele/index. De waarde daarvan is effectief wel leeg, maar omdat dit een foutsituatie is krijg je er een melding over. Nogmaals, dit is altijd al zo geweest. De melding zelf is uitschakelbaar, net als elke andere melding.
?
Onbekende gebruiker
27-05-2017 22:38
gewijzigd op 28-05-2017 18:05
Bedankt Ben...
Nu dan..
..Heb ik een volgende probleem...
TEST 1
$teller=0;
$teller++;$teller++;
if($teller==2)$doeditdan=$teller + 5;
in php 7.1 geeft dit het volgende: PHP Warning A non-numeric value encountered
hoe komt het dat $teller++ niet automatisch als numeric gezien word?
TEST 2
$teller2='0';
$teller2++;$teller2++;
if($teller2=='2')$doeditdan=$teller2 + '5';
in php 7.1 geeft dit het volgende: PHP Warning A non-numeric value encountered
hoe komt het dat ook $teller2++ niet automatisch als numeric gezien word?
Het mag duidelijk zijn dat mijn website in PHP 7.1 niet goed door zijn data loopt... (:
>> hoe komt het dat $teller++ niet automatisch als numeric gezien word?
Lijkt me heel sterk wanneer je $teller als 0 initialiseert.
>> In php 7.1 geeft dit het volgende: PHP Warning A non-numeric value encountered
Op welke regel? Dit is wel een nieuwe melding, en ook een logische. Hoeveel bugs zijn er veroorzaakt doordat een string wordt opgeteld? Dit zorgt ervoor dat je dat ziet.