Ik heb onlangs mijn gehele scripting zo goed als mogelijk omgezet van 5.4 naar 7.4.
Alles werkt gelukkig naar behoren. Maar als ik nu naar versie 8 overschakel dan loopt mijn website vast. Ik zie geen error afhandeling op de pagina dus ik weet ook niet wat ik aan moet passen. Ik vernam dat er diverse drastische aanpassingen zijn gedaan in 8.0 maar kom er niet goed uit welke dat allemaal zijn.
Is er een tool om mijn huidige script in te laden en advies krijg van de tool wat er fout is of anders moet?
Is er een lijst met een overzicht van de wijzigingen?
<?php
$controle_ip_in_mandje = mysqli_query($connect_agenda,
"SELECT * FROM Mandje where IP='$ip_x'");
$row_x = mysqli_fetch_object($controle_ip_in_mandje);
if ($row_x['IP'] != $ip_x && $row_x['Port'] != $ses_id)
?>
Je haalt hier dus (alle) records op waarvoor de kolom IP een zekere waarde bevat. Die staat in $ip_x.
Uit die query komen 0 of meer rijen.
Alleen in het geval er minstens 1 gevonden is, heeft het zin om een fetchfunctie te gebruiken om rijen op te vragen.
Dat controleer jij niet. En ik schat in dat je nu géén rijen vond en daarom geeft fetch niets terug.
Daarna probeer je de niet-gevonden waarde te vergelijken met $ip_x.
Dat is op zich al raar: je hebt net gevraagd om alle rijen waarbij IP=$ip_x, dus wat kan het anders zijn?
Het zou nog wel zin kunnen hebben om met ses_id te vergelijken, al had dat ook in de query gekund.
Maar check voor de fetch functie even of er num_rows > 0 gevonden zijn
Wil je me helpen om dit stukje code te verbeteren dan? Ik wil het leren en begrijpen en dat doe ik soms gewoon niet. Ben maar een amateur op dit gebied. En als ik hulp krijg bij de juiste manier van, dan neem ik dat mee in mijn ontwikkeling op dit gebied.
Ik weet soms echt niet wat en wanneer ik iets moet gebruiken en op welke manier omdat de kennis me ontbreekt. En daarom vraag ik hulp om het wel te leren begrijpen.
<?php
$controle_ip_in_mandje = mysqli_query($connect_agenda,
"SELECT * FROM Mandje where IP='$ip_x'");
// we gaan verder als we _iets_ vonden:
if(mysqli_num_rows($controle_ip_in_mandje) > 0 ) {
$row_x = mysqli_fetch_assoc($controle_ip_in_mandje);
if ($row_x['IP'] != $ip_x && $row_x['Port'] != $ses_id) {
// hier gaan we nooit komen: immers $row['IP'] is altijd gelijk aan $ip_x
}
}
Ik weet soms echt niet wat en wanneer ik iets moet gebruiken en op welke manier omdat de kennis me ontbreekt. En daarom vraag ik hulp om het wel te leren begrijpen.
Zelfinzicht is prima en de eerste stap naar verbetering! Hulp vragen mag altijd, maar als ik zo vrij mag zijn je te adviseren: koop een (basis)boek over PHP. Door het lezen van een boek leer je de basis, en als je jezelf verder wenst te ontwikkelen dan is dat een zeer zinvolle en waardevolle stap.
[quote="Nanno Koerts op 01/07/2022 12:28:56"]
Ik weet soms echt niet wat en wanneer ik iets moet gebruiken en op welke manier omdat de kennis me ontbreekt. En daarom vraag ik hulp om het wel te leren begrijpen.
Zelfinzicht is prima en de eerste stap naar verbetering! Hulp vragen mag altijd, maar als ik zo vrij mag zijn je te adviseren: koop een (basis)boek over PHP. Door het lezen van een boek leer je de basis, en als je jezelf verder wenst te ontwikkelen dan is dat een zeer zinvolle en waardevolle stap.
[/quote]
Ik heb al veel online opgestoken en daarmee code toegepast op mijn website. Ik gebruik enkel php code om dingen in en uit de database te halen. Daarnaast een stukje controle. Ik heb de website onder controle in php 7.4 en probeer over te gaan naar 8.0. Ook hier probeer ik via internet de oplossingen te vinden. En gellukig is daar ook de website php HULP. En hoop ik dus ook als amateur geholpen te worden om een minder grote amateur te zijn.
Het is net als met wiskunde, je moet dingen aannemen en begrijpen. Mijn hersenen snappen de logica soms niet wat ik moet gebruiken en waarom. Met kleine stapjes en voorbeelden kom ik wel een stap verder en uitleg waarom we doen wat we doen.
>> Met kleine stapjes en voorbeelden kom ik wel een stap verder en uitleg waarom we doen wat we doen.
Juist daarom dus een boek aanschaffen waarin alles stapje voor stapje wordt uitgelegd ;-) Het is niet vreemd dat je dingen niet snapt of dat dingen niet (geheel) duidelijk zijn, als je nooit de basis hebt geleerd.
De volgende blogposts zijn handig voor wie de overstap nog wil/moet maken. Wat mij er vooral in aanspreekt, is dat ze in korte maar kernachtige codevoorbeelden exact laten zijn wat er verandert.
Je moet wel rekening houden dat nog niet alle documentatie is bijgewerkt.
Bijvoorbeeld als je begint met PHP denk je dat je commentaar in je code kunt gebruiken na een '#', omdat je de handleiding gelezen hebt. Maar in PHP 8 klopt dat niet meer helemaal, een deel van het commentaar wordt behandeld als code, volgens dit nieuwe stukje handleiding. Dat is niet erg als je het maar van te voren weet. Overigens is het concept om code in commentaar te stoppen niet nieuw; Doctrine doet dit ook, en je hebt ook nog DocBlocks waarmee je automatisch documentatie kan laten maken met een tool als phpDocumentor.