Php7 platform overgezet
Pagina: « vorige 1 2 3 4 5 6 volgende »
2008!). 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.
Sterker nog, de kans is groot dat er (steeds) meer lekken geïntroduceerd zijn met PHP-versiebumps (sinds 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.
Toevoeging op 18/07/2018 21:58:01:
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.
Ik zou minimaal een ruime maand verwachten...
Toevoeging op 18/07/2018 22:23:54:
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?
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.
Gewijzigd op 17/09/2018 23:12:14 door - Ariën -
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
<br>
<a href="http://rspp.nl/detail.php?" class="groen" {
text-decoration: underline;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10pt;
color: #808000;
} target="_self">
Regel 163
<br>
Regel 164
</a><br>
Ik bestel
<!--GEWIJZIGD MET HULP VAN FORUM PHPHULP 2 MEI 2015-->
<select name="invoer" id="invoer" onChange="document.forms['guestform'].submit();">
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?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 " " afdrukken in plaats van het aantal
$label = ($q == 0 ? ' ' : $q);
?>
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 " " afdrukken in plaats van het aantal
$label = ($q == 0 ? ' ' : $q);
?>
à
Regel 183
<br>
Regel 184
<strong>Voorradig: </strong>
<input type="hidden" name="artikel" value="" id="artikel"</INPUT>
<input type="hidden" name="prijslijst" value="" id="prijslijst"</INPUT>
<input type="hidden" name="voorraad" value="" id="voorraad"</INPUT>
<input type="hidden" name="algeladen" value="1" id="algeladen"</INPUT></td>
Code (php)
<td class="table"> </td>
</tr>
</table>
<INPUT TYPE=hidden NAME="count" VALUE=""></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>
<!--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.
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).
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?
>> 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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?=$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">
<?=$plaatje;?><br>
<?=$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 " " afdrukken in plaats van het aantal
$label = ($q == 0 ? ' ' : $q);
?><option value="<?php echo $q ?>"<?php echo $selected ?>><?php echo $label ?></option><?php
}
?></select>
à
<?=maakeuros($prijs);?>
<br>
<strong>Voorradig: <?=$voorraad;?></strong>
<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">
<?=$plaatje;?><br>
<?=$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 " " afdrukken in plaats van het aantal
$label = ($q == 0 ? ' ' : $q);
?><option value="<?php echo $q ?>"<?php echo $selected ?>><?php echo $label ?></option><?php
}
?></select>
à
<?=maakeuros($prijs);?>
<br>
<strong>Voorradig: <?=$voorraad;?></strong>
Ik ga verder met proberen, hopelijk lukt het mij voor 1 november a.s. anders is het jammer.
Notices met meldingen zoals dit zijn vaak geen oorzaak van nieuwe PHP-versies:
"Undefined variable 'blah' in /blah/bla/script.php"
Enkel de fout-reporting staat anders ingesteld. Uiteraard is het wel de bedoeling dat deze fouten worden opgelost
en
Ik zou dat omschrijven naar één variant waarbij de laatste waarschijnlijk de voorkeur heeft (uit oogpunt van compatibiliteit). Alle instanties van:
zul je dan om moeten zetten naar
Gewijzigd op 21/09/2018 15:33:15 door Thomas van den Heuvel
Bedankt Thomas en Ariën, idd ik had daar helemaal overheen gekeken :) (Y)
Gewijzigd op 22/09/2018 10:32:48 door Frank Nietbelangrijk
Twee dagen geleden ben ik bezig om mijn scripts aan te passen naar het advies van Thomas van den Heuvel, het gelijk trekken van en Mijn website staat in mijndomein op php5.6 Ik kan het wijzigen in php7.1 en 7.2. Telkens wanneer ik iets heb gewijzigd in mijn scripts en het bestand heb overgezet via sftp, kijk ik op mijn website of alles nog werkt. Dat gaat prima. Vervolgens kijk ik weer op mijn website en zie een wit scherm. Volgens mij is mijn website uit lucht. Ik heb al 2 tickets aangemaakt in de helpdesk van mijndomein, maar geen antwoord van hen gekregen. Ik heb mijn mailtjes van hen nagekeken en daar staat in dat ze per 1 november php5.6 niet meer ondersteunen en dat php5.6 per 1 januari 2019 komt te vervallen. Wat kan ik hier aan doen?
Met vriendelijke groet,
Margot Schuitemaker
Edit:
bericht netjes gemaakt
Gewijzigd op 29/09/2018 23:11:18 door - Ariën -
Je kan hiervoor error_reporting en display_errors aanzetten in je configuratie (vaak .htaccess of php.ini) of bovenstaande aan je code toevoegen.
En dan zal je zien wat er fout gaat. Ook kan je dit eventueel in je error_log vinden.
Je webhosting kan wel vertellen waar die staat als je dit niet kan vinden.
Bij welke aanpassing gaat je site precies offline?
Tip: Maak backups van alles wat je aanpast.
Gewijzigd op 29/09/2018 23:29:45 door - Ariën -
Ja, ik maak backups.
Ik kan mijn logs mijn errors zien.
Hartelijke bedankt weer!
Gaat het zo weer lukken om de fouten op te lossen? Zo niet, laat even weten welke foutmeldingen je krijgt, en de bijbehorende regels / aanpassingen.