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.
Zoals Ivo al duidelijk probeert te maken: er zit een fout in je code. Voorheen zag je die niet, omdat PHP daar "niet moeilijk over deed" (on the fly gewoon een variabele aanmaakte). Waarschijnlijk staat het "error reporting" niveau in de nieuwe omgeving "strakker", waardoor het probleem nu wel gemeld wordt.
Je kunt de oude situatie "herstellen" door de "Notice" meldingen nog steeds niet te tonen. Dit kan door onderstaand stukje code boven in je script op te nemen (hiermee sluit je de notices van het rapporteren):
error_reporting(error_reporting() & ~E_NOTICE);
Maar nogmaals: dit is geen echte oplossing (gewoon je ogen dicht doen zodat je het probleem niet meer ziet). De echte oplossing is uitzoeken waarom die $weg (soms) niet bestaat, en het dan fixen. Ik vermoed dat er zoiets gebeurt:
In 2008 is de webshop door mijn (coach)collega en mij. Telkens wanneer er een migratie is bij mijndomein moet ik mij erin verdiepen, daar de coach uit zicht is. Het lukt mij telkens wel om de website online te houden, ik zou mij moeten verdiepen in jouw vraag.
Bedankt voor je snelle reactie. Ik las er net over in het digitale phpboek en was aan het expirimenteren hoe:)
Het werkt! Ik zal bij een andere pagina nog twee fouten:
[size=xsmall]Toevoeging op 13/07/2018 22:53:44:[/size]
function itemsperpagina($categorie) {
//deze functie berekent het aantal items per pagina, of eigenlijk per categorie
//invoer: $categorie, een string met de waarden 'frame', 'wiel', of 'motor'
//uitvoer: het aantal items
$query="select count(art_id) as aantal from artikel where cat_naam='".$categorie."'";
$result = mysql_query($query) or die($query.' Error, query failed. ' . mysql_error());
$row = mysql_fetch_array($result);
Voor het 'mooie' heb ik tijdelijk onderstaand statement van jou bovenin de pagina gezet error_reporting(error_reporting() & ~E_NOTICE);
Ga dat verder uitzoeken.
Moet ik alle scripts wijzigen in mysqli betreffende php7? Ik ga voor info ook naar w3schools en http://www.phpboek.net. Wat zou ik moeten doen om mijn webshop/site in php7 werkbaar te maken? Is er een goede website voor php7 info of is er een goed leesbaar boek in omloop. Misschien dat jij/jullie dat weten?
Ik zie nu al 3x $$aantalitems staan (met twee dollar tekens), dus ik vermoed dat het langzamerhand geen typefout meer is. Wat je hier doet is een variabele "aanroepen" met de naam $aantalitems. En die is inderdaad nog niet bekend. Als je er gewoon een enkel dollar teken van maakt werkt het volgens mij weer (maar dit zou in het verleden ook nooit hebben kunnen werken - alleen zag je de foutmelding niet). Dus:
list($aantalitems) = $row;
(o, keek net op de site; heb zelf een MV50 gehad - dat was even een trip down memory lane, vooral qua dagenlang sleutelwerk, en alles wat er stuk kon gaan aan dat ding ...).
Het script is sinds twee jaar niet gewijzigd en werkte uitstekend.
In 2008 is de webshop door mijn (coach)collega en mij.
Ook software is aan slijtage onderhevig. Een gezonde taal verandert over tijd. Oude dingen gaan eruit en er komen andere/betere onderdelen voor in de plaats. Je hebt dus een (homegrown?) webshop die ergens in 2008 is ontstaan/geschreven en daarna bij tijd en wijlen is bijgespijkerd? Misschien wordt het dan eens tijd om alle code op de schop te gooien, want als ik dit soort dingen zie:
$query="select count(art_id) as aantal from artikel where cat_naam='".$categorie."'";
$result = mysql_query($query) or die($query.' Error, query failed. ' . mysql_error());
$row = mysql_fetch_array($result);
Stemt mij dat niet erg gerust.
Security is tegenwoordig een ding (en is het altijd wel geweest eigenlijk). Ik weet niet in hoeverre de website/webshop onderdeel uitmaakt van de bedrijfsvoering (kun je via deze site ook echt dingen kopen? en zonee, wellicht het overwegen waard met een betaalkoppeling?), maar het lijkt mij zaak dat dit soort dingen goed geregeld zijn. Ook is er tegenwoordig zoiets als de Algemene Verordening Gegevensbescherming (AVG), dit houdt o.a. in dat wanneer iemand iets via een site m.b.t. persoonsgegevens regelt dit aan bepaalde spelregels is onderworpen. Tegenwoordig zou ik bij een webshop op zijn minst een beveiligde site (verbinding via https) verwachten.