• De afgelopen dagen zijn er meerdere fora waarop bestaande accounts worden overgenomen door spammers. De gebruikersnamen en wachtwoorden zijn via een hack of een lek via andere sites buitgemaakt. Via have i been pwned? kan je controleren of jouw gegeven ook zijn buitgemaakt. Wijzig bij twijfel jouw wachtwoord of schakel de twee-staps-verificatie in.

Pagina's werken niet na php upgrade

glompie

Gewaardeerd
Lid geworden
28 aug 2008
Berichten
1.331
Waarderingsscore
9
Als ik van php V7.4 naar V8.0 of hoger ga dan werkt een groot deel van m'n pagina's niet meer en ik krijg niet gevonden wat er aan scheelt. Als voorbeeld onderstaande code, die berekening werkt niet in 8 en wel in 7.4. En dan heb ik de php extensies op default in DirectAdmin (shared host).

PHP:
<?php
// error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);

if(isset($_POST['submit'])){
$getal1 = $_POST['getal1'];
$getal2 = $_POST['getal2'];

$getal1 =  str_replace(",", ".", $getal1);
$getal2 =  str_replace(",", ".", $getal2);

$onafgerond = $getal1/$getal2;
$uitkomst = number_format($onafgerond, 1, ',', '');
}
echo "<br />" . "<textarea style='min-height:45px;' onclick=\"this.focus();this.select()\" readonly=\"readonly\">1 : " . $uitkomst . "</textarea>" . "</h1>";
?>
 
Laatst bewerkt:
Heb je ook een werkend stukje php file wat iets meer doet?

Ik ben geen php deskundige maar ik heb deze zojuist gecopieerd en geplakt in php bestandje en dat lijkt te werken.
Dat heb ik opgeroepen en dan krijg ik een wit vlak te zien met 1 en : maar kan verder niets invullen.
Wel zit er rechts onder aan vlak iets met 3 schuine streepjes om het vlak groter te maken en dat werkt ook prima tot zover.

En dan hebben we het ook over shared hosting op een DA server met php 8.1.27.
 
Hier is een stuk gestripte code met input velden enzo.

PHP:
<!DOCTYPE html
<html lang="nl-NL">
<head>
<meta charset="UTF-8">
<title></title>
</head>

<body>
<div class="middle">

<form method="post" action="<?php $_SERVER['PHP_SELF'];?>">
<input type="text" size="6" name="getal1" value="<?php echo isset($_POST['getal1'])?$_POST['getal1']:""; ?>" /> <span class="os">km gereden</span>
 <span class="os">en</span> <input type="text" size="6" name="getal2" value="<?php echo isset($_POST['getal2'])?$_POST['getal2']:""; ?>" /> <span class="os">liter getankt.</span>
&nbsp; &nbsp; &nbsp;
<input id="sent" type="submit" name="submit" value="Bereken" />
</form>

<?php
// error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);

if(isset($_POST['submit'])){
$getal1 = $_POST['getal1'];
$getal2 = $_POST['getal2'];

$getal1 =  str_replace(",", ".", $getal1);
$getal2 =  str_replace(",", ".", $getal2);

$onafgerond = $getal1/$getal2;
$uitkomst = number_format($onafgerond, 1, ',', '');
}
echo "<br />" . "<textarea style='min-height:45px;' onclick=\"this.focus();this.select()\" readonly=\"readonly\">1 : " . $uitkomst . "</textarea>" . "</h1>";
?>
</div>

</body>
</html>
 
Laatst bewerkt door een moderator:
Daarmee gaat het ergens mis met de PHP integratie.
Aangezien het hier om een html document gaat heb ik het test.html genoemd en jouw code er in gezet.
Maar daar zitten fouten in. Zo heb je geen sluit code bij je Doctype in de eerste regel.
Ook elders zitten er nog fouten in de code.

Ik krijg het (met de correctie van de sluitcode van de doctype) als volgt te zien.
1712846059938.png

Ik ben geen php deskundige maar daar mist nog het een en ander want ik zou die php tags daar niet mogen zien feitelijk.
 
Ik zag ook dat die php SELF tegenwoordig eerder zo gedaan wordt:
<?php echo $_SERVER['PHP_SELF']; ?>

Misschien handig om deze twee pagina's eens te bekijken.
en
 
Als het op php versie 7.4 wel werkt kan je deze regel toevoegen aan jouw .htaccess bestand:
Code:
# Use PHP 7.4 as default
AddHandler application/x-httpd-php74 .php .php5
 
Als het op php versie 7.4 wel werkt kan je deze regel toevoegen aan jouw .htaccess bestand:
Code:
# Use PHP 7.4 as default
AddHandler application/x-httpd-php74 .php .php5
Dit zorgt ervoor dat de server terugvalt op een oude PHP versie. Dat is leuk voor even, maar als je echt naar PHP8 wilt migreren, dan zul je de code moeten aanpassen.

Je zult hier moeten gaan kijken naar welke code je gebruikt welke nu niet meer of anders toegepast dient te worden:

Vooral deze twee hoofdstukken:
 
Die htaccess code doet helaas niks bij mij.

Hij werkt nu als ik hem op v8.2 zet maar een beetje lullig dat ik niet weet waar het nu aan lag.
Hij valideert en werkt nu wel, althans de html. https://www.copyrightvrijeplaatjes.nl/tools/1-op-hoeveel-rijd-mijn-auto/
Dus ik hou deze maar een beetje als voorbeeld en dan ga ik alle pagina's valideren. Grootste uitdaging zal https://www.boiliemix-berekenen.nl worden. Die php versie geldt meteen voor meerdere domeinen dus hij staat nu voorlopig weer terug naar 7.4.

Snap alleen die NAN melding niet bij een leeg input veld, maar is niet erg.
 
Steun Ons

Nieuwste berichten

Terug
Bovenaan