13-7-2018

Beste phpHelpdeskers,

Ik ben klant van Mijndomein. Mijndomein heeft een aantal dagen geleden mijn website rspp.nl overgezet naar een nieuw platform php vs 7.1. Mijn phpscripts ondersteunen dat nog niet. Er is een mogelijkheid bij Mijndomein om het platform terug te zetten naar vs 5.6, wat ik ook heb gedaan. Begin 2019 komt PHP 5.6 te vervallen.
Wat ik nu niet begrijp is dat ik ineens die foutmelding(en) krijg ná het vernieuwen van het platform. Het script is sinds twee jaar niet gewijzigd en werkte uitstekend.
Sinds het nieuwe platform er is, stonden er drie fouten op mijn website die inmiddels zijn opgelost. Daarna kreeg stond er weer eentje welke ik niet kan oplossen.

•Notice: Undefined variable: weg in /home/public/sites/www.rspp.nl/library/puchfunctions.php on line 336

Het betreft een voorwaardelijke uitdrukking if ($weg == 0)
Is hier een andere vergelijking voor in php5.6?

Misschien dat u mij hierbij verder kan helpen? Alvast hartelijk bedankt.

Met vriendelijke groet,

Margot Schuitemaker
Sterker nog, de kans is groot dat er (steeds) meer lekken geïntroduceerd zijn met PHP-versiebumps (sinds [color=#ff0000]2008[/color]!). Denk aan anders werkende functionaliteit (default charset van htmlspecialchars() is veranderd, als dat uberhaupt wordt gebruikt), of verwijderde functionaliteit (het verdwijnen van magic quotes, maar dat was eigenlijk niet eens bedoeld om SQL-injectie tegen te gaan).

Dit lijkt mij bij uitstek een geschikt moment om e.e.a. eens goed op te pakken.

Een overpeinzing die ik zou hebben is: is deze versiebump wel aangekondigd door je host, oftewel heb je je hier op voor kunnen bereiden? Het komt geregeld voor dat men overvallen wordt door dit soort onaagekondigde upgrades, met alle ellende van dien.
Ja, wel zeker een week van te voren via de mail aangekondigd!

[size=xsmall]Toevoeging op 18/07/2018 21:58:01:[/size]

Bedankt voor de info, maar niet zo handig voor mij. Ik kan mij beter verdiepen in de php7 officiële materie, hoe ingewikkeld het ook is voor mij.
Een week? Is dat niet erg kort?
Ik zou minimaal een ruime maand verwachten...
Ben van Velzen schreef hiervoor dat mijn soort code schreeuwt om een audit. Is het mogelijk om via het internet deze php-audit-programma's te downloaden? Dan zou ik wellicht de fouten die er zijn na kunnen kijken en verbeteren.

[size=xsmall]Toevoeging op 18/07/2018 22:23:54:[/size]

Deze tekst met tools staat in phpboek-hfd voorbereiding:
Er zijn tientallen PHP-editors beschikbaar. Wikipedia kent een hele lijst (http://en.wikipedia.org/wiki/List_of_PHP_editors), van eenvoudig tot uitgebeid en gratis tot heel duur. Als je niet weet wat je moet kiezen, dan is Visual Studio Code (https://code.visualstudio.com/) een aanrader. Deze gratis editor is beschikbaar voor Windows, Linux en MacOS. Installeer dan meteen de extensie Intelephense (https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client) om direct toegang te krijgen tot een uitgebreide naslag van de PHP-functies en je code automatisch te kunnen laten controleren op syntactische fouten. Na installatie van deze extensie is het handig om meteen twee instellingen van VS Code te wijzigen (via File > Preferences > Settings), namelijk om php.suggest.basic in te stellen op false en php.validate.run op onType.

Is dat wat?
Dat is niet echt een security-audit.

Hier moet je echt een gespecialiseerd iemand voor zoeken. Via dit forum zou dit wel kunnen via een vacaturetopic. Lees wel even de regelgeving daar eerst.
Ozzie PHP, het spijt mij wanneer ik je heb beledigd. Hopelijk mag ik jullie nog wat vragen=

Bij het switchen in Mijndomein van php 5.6 naar php 7.1, kom ik direct in frame.php terecht (direct ingelogd zonder dat ik ben inlogd?) en krijg diverse onderstaande fouten, terwijl ik dit totaal niet heb in php 5.6

Notice: Undefined variable 'artno' home/public/sites/www.rspp.nl/frame.php on line 153
idem voor 'plaatje' on line 163
idem voor 'art' on line 164
idem voor 'prijs' on line 183
idem voor 'voorraad' on line 185

Regel 155
<?=$artno;?>
<br>
<a href="http://rspp.nl/detail.php?<?=$art_id;?>" class="groen" {
text-decoration: underline;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10pt;
color: #808000;
} target="_self">
Regel 163
<?=$plaatje;?><br>

Regel 164
<?=$art;?></a><br>
Ik bestel
<!--GEWIJZIGD MET HULP VAN FORUM PHPHULP 2 MEI 2015-->
<select name="invoer<?php echo $i ?>" id="invoer<?php echo $i ?>" onChange="document.forms['guestform'].submit();"><?php
for ($q=0; $q < 10; $q++) {
// geselecteerd getal voor item $i=0
$selectedValue = isset($aantal[$i]) ? $aantal[$i] : 0;
//Dit is de huidige optie
$selected = ($selectedValue == $q ? ' selected="selected"' : '');
// ingeval het aantal gelijk is aan 0 willen we "&nbsp;" afdrukken in plaats van het aantal
$label = ($q == 0 ? '&nbsp;' : $q);
?><option value="<?php echo $q ?>"<?php echo $selected ?>><?php echo $label ?></option><?php
}
?></select>
&#224;

Regel 183
<?=maakeuros($prijs);?>
<br>

Regel 184
<strong>Voorradig: <?=$voorraad;?></strong>
<input type="hidden" name="artikel<?=$i;?>" value="<?=$art_id;?>" id="artikel<?=$i;?>"</INPUT>
<input type="hidden" name="prijslijst<?=$i;?>" value="<?=$prijs;?>" id="prijslijst<?=$i;?>"</INPUT>
<input type="hidden" name="voorraad<?=$i;?>" value="<?=$voorraad;?>" id="voorraad<?=$i;?>"</INPUT>
<input type="hidden" name="algeladen" value="1" id="algeladen"</INPUT></td>
<?
$i=$i+1;
$j=1;
}
//de laatste lege cellen toch vullen
$k=4-($i%4);
if ($k==4) {$k=0;}
while ($k>0) {
?>
<td class="table">&nbsp;</td>
<?
$k=$k-1;
}
?>
</tr>
</table>

<INPUT TYPE=hidden NAME="count" VALUE="<?=$i;?>"></INPUT>
</form></div>
<div class="tekst10pt" id="motor">
<div align="center"><strong><a href="http://rspp.nl/motor.php" title="Naar categorie motor" target="_self" class="groen">motor</a></strong></div>
</div>
<div class="tekst10pt" id="wielen">
<div align="center"><strong><a href="http://rspp.nl/wiel.php" title="Naar categorie wielen" target="_self" class="groen">wielen</a></strong></div>
</div>
<div class="tekst10pt" id="frame">
<div align="center"><strong><a href="http://rspp.nl/frame.php" title="Naar categorie frame" target="_self" class="groen">frame</a></strong></div>
</div>
<div class="tekst10pt" div id="winkelwagen">
<div align="center"><strong><a href="http://rspp.nl/winkelwagen.php" title="Naar winkelwagen" target="_self" class="groen">winkelwagen</a></strong></div>
</div>
<div class="tekstkop2zwart" id="kopMidden">
<h2 align="center" class="tekstkop2zwart">FRAME</h2>
</div>
<?
include 'library/closedb.php';
?>
<!--eind #container--></div>
</body>
</html>

Zou iemand mij een advies kunnen geven?

Bij voorbaat hartelijk dank,

Margot Schuitemaker




Zet je code tussen code-tags. Zie ook de Veelgestelde Vragen. Dan is het beter leesbaar voor ons.
>> Ozzie PHP, het spijt mij wanneer ik je heb beledigd. Hopelijk mag ik jullie nog wat vragen=

Ik zou niet weten waarom je mij beledigd zou moeten hebben??:-s
En uiteraard mag je dingen vragen. Daarvoor is een forum bedoeld. Hou het alleen wel graag centraal en maakt niet voor dezelfde vraag nieuwe topics aan.

Voor de rest is het moeilijk om je vraag te beantwoorden, want die fouten komen ergens vandaan. En uit jouw code valt dat niet 1 2 3 op te maken. Een wilde gok ... mysql werkt niet meer waardoor velden uit je database niet worden ingelezen (en dus niet herkend).
Omdat ik beste helpdeskmedewerker zei en ik had natuurlijk beste forum moeten zeggen ;-)

Ik heb alle pagina's al aangepast in mysqli. In frame.php wordt puchfunctions.php included (daar staan alle functie's in die worden gebruikt voor de webwinkel.
Zou het komen doordat ik voor bepaalde functies een @-teken heb gezet in php5.6 om foutmeldingen te omzeilen?
Ik heb in puchfunctions.php voor php7.1 alle @-tekens weggehaald en dat werkte, maar dan kom ik weer andere foutmeldingen tegen.

Wat bedoel je met code tags? /* */ of // zoiets?
Even [*code*] en [*/code*] om jouw code heen zetten, maar dan zonder de *sterretjes*.

>> Zou het komen doordat ik voor bepaalde functies een @-teken heb gezet in php5.6 om foutmeldingen te omzeilen?

Kan, maar ik verwacht niet dat het daar aan ligt. Je code had dan ook al niet gewerkt als ie al die variabelen niet kon vinden.

Reageren