Undefined Variabel
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
$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));
}
$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?
Gewijzigd op 23/04/2017 19:33:20 door Marco Hopster
Je zou ook direct de mysql functies moeten omzetten naar mysqli. Welke variabele is undefined?
Sorry het gaat inderdaad om regel 9 $kiekcovers.
Waarschijnlijk moet die punt weg.
Dit kan wel:
Gewijzigd op 23/04/2017 19:58:05 door Frank Nietbelangrijk
Ze staan wel in de map, en de benaming is ook juist.
Gewijzigd op 23/04/2017 20:06:32 door Marco Hopster
<a href="javascript:Popup('kiekkiekspiek.php?id=1') ..
die url bijv kiekkiekspiek.php?id=1 plak die eens in je browser en kijk eens of je foutmeldingen krijgt
Toevoeging op 23/04/2017 20:09:54:
Bijv. http://127.0.0.1/kiekkiekspiek.php?id=1
Ik zou dus een rij met covers moeten zien, (die die persoon bekeken heeft) en als ik op een cover klik, dat dan kiekkiekspiek wordt geopend met de film wat bij die cover hoort.
Zo op het eerste gezicht ontbreekt aan het eind van regel 9, voor de , een afsluitende </a>
Toevoeging op 25/04/2017 14:12:59:
Ik heb het nu zo ver dat hij wel één cover laat zien. Ik had een echo niet goed staan. Maar als ik nu alles wil laten zien, hoe moet ik dat doen dan?
UPDATE: Opgelost, ik heb $kiekcovers in de loop gezet.
Gewijzigd op 25/04/2017 14:58:43 door Marco Hopster
Edit:
Bericht teruggeplaatst, verwijderen is niet de bedoeling!
Gewijzigd op 28/05/2017 18:03:46 door - Ariën -
Dat was altijd al nodig. Dat je de meldingen erover uit had staan zegt niets over wat hoort en wat niet.
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...
Edit:
Bericht teruggeplaatst, verwijderen is niet de bedoeling!
Gewijzigd op 28/05/2017 18:04:49 door - Ariën -
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.
Gewijzigd op 26/05/2017 18:25:27 door Ben van Velzen
Dit is niet logisch
Edit:
Bericht teruggeplaatst, verwijderen is niet de bedoeling!
Gewijzigd op 28/05/2017 18:05:21 door - Ariën -
Gewijzigd op 26/05/2017 19:24:01 door Ben van Velzen
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... (:
Edit:
Bericht teruggeplaatst, verwijderen is niet de bedoeling!
Gewijzigd op 28/05/2017 18:05:56 door - Ariën -
Waar komt $doeditdan vandaan?
$doeditdan=zou een css met een waarde 7 als resultaat krijgen een voorbeeld
$doeditdan = '<div class=csscolor' . $teller + 5. ' > blub </div>
echo($doeditdan);
waarbij in css
csscolor0 {color:#000;}
.............
csscolor5 {color:#555;}
csscolor6 {color:#666;}
csscolor7 {color:#777;}
........... enzovoorts
Edit:
Bericht teruggeplaatst, verwijderen is niet de bedoeling!
Gewijzigd op 28/05/2017 18:06:35 door - Ariën -
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.
if($teller2=='2')$doeditdan=$teller2 + '5';
Je snapt toch het verschil tussen een string en een getal ... of niet?
https://3v4l.org/DMoUi
Werkt gewoon.