Werkt niet meer met PHP 7
We hebben op de site een aantal onderwerpen die niet meer werken, https://www.vwltclub.nl/waar.php en http://www.vwltclub.nl/wiki/. Dit zou komen omdat het forum op PHP 7.0 werkt en deze onderwerpen op 5.6. Van een collega club uit Duitsland heb ik een stukje script gekregen om er tussen te plakken. Helaas het werkt niet. De uitleg heb ik vertaald.
Voor de kaart gebruik je hetzelfde programma als wij in het LT forum.
Dit programma werkt alleen tot PHP versie 5.6.
U kunt controleren welke PHP-versie op uw website draait.
Het werkt niet vanaf 7.0.
Als PHP5.6 nog beschikbaar is op uw website, kunt u het dwingen op 5.6 te draaien door een vermelding te maken in het .htaccess-bestand.
De invoer ziet er ongeveer zo uit:[/i]]FilesMatch \.php>
# Apache 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"
</FilesMatch>>
En nu loop ik vast, plak ik de code ertussen, is het hele forum van slag.
Wie heeft een oplossing?
Alvast bedankt
Aart
Voor de kaart gebruik je hetzelfde programma als wij in het LT forum.
Dit programma werkt alleen tot PHP versie 5.6.
U kunt controleren welke PHP-versie op uw website draait.
Het werkt niet vanaf 7.0.
Als PHP5.6 nog beschikbaar is op uw website, kunt u het dwingen op 5.6 te draaien door een vermelding te maken in het .htaccess-bestand.
De invoer ziet er ongeveer zo uit:[/i]]FilesMatch \.php>
# Apache 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"
</FilesMatch>>
En nu loop ik vast, plak ik de code ertussen, is het hele forum van slag.
Wie heeft een oplossing?
Alvast bedankt
Aart
Gewijzigd op 20/02/2022 22:38:46 door Aart LT
Dag Aart,
Kan je een goede titel die je probleemstelling of vraag omschrijft, bij het topic invoeren?
Kan je een goede titel die je probleemstelling of vraag omschrijft, bij het topic invoeren?
>> De invoer ziet er ongeveer zo uit
En hoe ziet het er EXACT uit. Aan 'ongeveer' hebben we niet zo veel.
Het probleem is dat versie 5.6 zwaar verouderd is. Niet alles zal onder versie 7.0 naar behoren werken. Dat stukje code probeert het nu uit te voeren als versie 5.6, maar het is wellicht verstandiger om de bestaande, verouderde code om te bouwen naar actuele code.
En hoe ziet het er EXACT uit. Aan 'ongeveer' hebben we niet zo veel.
Het probleem is dat versie 5.6 zwaar verouderd is. Niet alles zal onder versie 7.0 naar behoren werken. Dat stukje code probeert het nu uit te voeren als versie 5.6, maar het is wellicht verstandiger om de bestaande, verouderde code om te bouwen naar actuele code.
De ondersteuning voor PHP 7.0 is al op 1 januari 2019 verlopen en die van PHP 5.6 verliep op 31 dec 2018.
De huidige volledig ondersteunde versies zijn 8.0 en 8.1. En voor 7.4 geldt nog een periode dat enkel veiligheidsupdates gegeven worden.
Het beste advies: Ga over naar PHP 8.1 en geef het phpBB forum, met je extra modificaties en toevoegingen, een update naar phpBB 3.3.5
De huidige volledig ondersteunde versies zijn 8.0 en 8.1. En voor 7.4 geldt nog een periode dat enkel veiligheidsupdates gegeven worden.
Het beste advies: Ga over naar PHP 8.1 en geef het phpBB forum, met je extra modificaties en toevoegingen, een update naar phpBB 3.3.5
Gewijzigd op 20/02/2022 19:54:12 door - Ariën -
En die code die je kreeg, lijkt onderdeel van de Apache configuratie.
Die komt dus niet in je PHP scripts, maar een paar stappen eerder: bij de inrichting van je hosting omgeving.
De vraag is, of je als gewone gebruiker daar aan kunt komen in je hosting omgeving.
Soms kun je in je DirectAdmin, Plesk of dergelijke omgeving in een pulldown kiezen uit PHP-versies.
Dat komt op hetzelfde neer.
Er zijn nog hosters die inderdaad oude versies als 5.6 aanbieden.
Die komt dus niet in je PHP scripts, maar een paar stappen eerder: bij de inrichting van je hosting omgeving.
De vraag is, of je als gewone gebruiker daar aan kunt komen in je hosting omgeving.
Soms kun je in je DirectAdmin, Plesk of dergelijke omgeving in een pulldown kiezen uit PHP-versies.
Dat komt op hetzelfde neer.
Er zijn nog hosters die inderdaad oude versies als 5.6 aanbieden.
Bedankt voor de snelle reacties.
Helaas hier heb ik geen enkele kennis van. Als ik het zo lees is het inderdaad verstandig om naar PHP 8.1 te gaan en de verouderde code om te bouwen naar actuele code. Maar, waar zou ik deze kennis kunnen halen of iemand vinden die het voor mij dit zou willen doen?
Alvast bedankt voor de reactie en de hulp.
Aart
Helaas hier heb ik geen enkele kennis van. Als ik het zo lees is het inderdaad verstandig om naar PHP 8.1 te gaan en de verouderde code om te bouwen naar actuele code. Maar, waar zou ik deze kennis kunnen halen of iemand vinden die het voor mij dit zou willen doen?
Alvast bedankt voor de reactie en de hulp.
Aart
Zo te zien gebruik je phpBB 3.x als forum. Welke versie is dit momenteel? En hoe zijn je add-ons gebouwd met de losse pagina's? Sluiten die aan op de source van phpBB zelf, of is dit echt los daarvan gebouwd? Een van de grootste verschillen tussen PHP 5 en 7 (versie 6 is nooit echt publiekelijk uitgekomen) is dat MySQL nu via de mysqli_xxxx() functies wordt aangeroepen in plaats van de mysql_xxxx() functies.
Daarnaast moet je eerst even onderzoek doen hoe je jouw webserver kan updaten?
Heb je dit in eigen beheer, of gaat dit via een hostingpartij?
Vertel dus eens meer over je huidige opbouw van je site, en hoe de server nu beheerd wordt.
Daarnaast moet je eerst even onderzoek doen hoe je jouw webserver kan updaten?
Heb je dit in eigen beheer, of gaat dit via een hostingpartij?
Vertel dus eens meer over je huidige opbouw van je site, en hoe de server nu beheerd wordt.
Hallo, ik heb om Aart te hebben alles even naar mijn server verhuisd waar php8.0 op draait en de foutmeldingen aangezet.
Ik zie nu deze melding
Als ik de mysql_query verander in mysqli_query verandert dat niet zo veel aan de foutmelding.
Ik vermoed dus dat de volgende stap is om map.func.php(37) te bekijken?
Bedankt om naar te kijken
Daar staat
Ik zie nu deze melding
Code (php)
1
Fatal error: Uncaught Error: Call to undefined function mysql_query() in /home/janus/domains/zonstraal.be/public_html/landkaart/inc/sql.class.php:28 Stack trace: #0 /home/janus/domains/zonstraal.be/public_html/landkaart/inc/map.func.php(37): sql->query() #1 /home/janus/domains/zonstraal.be/public_html/landkaart/index.php(124): getPoints() #2 {main} thrown in /home/janus/domains/zonstraal.be/public_html/landkaart/inc/sql.class.php on line 28
Als ik de mysql_query verander in mysqli_query verandert dat niet zo veel aan de foutmelding.
Ik vermoed dus dat de volgende stap is om map.func.php(37) te bekijken?
Bedankt om naar te kijken
Daar staat
Als je mysqli_query()gebruikt. Krijg je dan deze error, als ik goed begrijp?
Als dát zo is, dan moet je in PHP of in een control-panel ergens de werking van mysqli-driver aanzetten.
Normaal is enkel het hernoemen van mysql naar mysqli niet altijd voldoende. In vele gevallen moet je ook een variabele meegeven met de connectie. Dus mysqli_query($conn,"SELECT .. FROM etc");
Ook kan je overstappen op de geavanceerdere OO (Object-Oriënted) variant met de pijljes:
$db->query($q);
Ikzelf ben hier meer fan van omdat het met een standaard-classe werkt die je vanzelfsprekend kan uitbreiden met eigen functies. Maar daar wijd ik nu verder niet over uit... :P
Quote:
Call to undefined function mysqli_query()
Als dát zo is, dan moet je in PHP of in een control-panel ergens de werking van mysqli-driver aanzetten.
Normaal is enkel het hernoemen van mysql naar mysqli niet altijd voldoende. In vele gevallen moet je ook een variabele meegeven met de connectie. Dus mysqli_query($conn,"SELECT .. FROM etc");
Ook kan je overstappen op de geavanceerdere OO (Object-Oriënted) variant met de pijljes:
$db->query($q);
Ikzelf ben hier meer fan van omdat het met een standaard-classe werkt die je vanzelfsprekend kan uitbreiden met eigen functies. Maar daar wijd ik nu verder niet over uit... :P
Gewijzigd op 26/02/2022 18:23:41 door - Ariën -
Bedankt voor de reactie, deze error krijg ik na de aanpassing naar mysqli
mysqli staat aan in de php opties.
Code (php)
1
Fatal error: Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, string given in /home/janus/domains/zonstraal.be/public_html/landkaart/inc/sql.class.php:28 Stack trace: #0 /home/janus/domains/zonstraal.be/public_html/landkaart/inc/sql.class.php(28): mysqli_query() #1 /home/janus/domains/zonstraal.be/public_html/landkaart/inc/map.func.php(37): sql->query() #2 /home/janus/domains/zonstraal.be/public_html/landkaart/index.php(124): getPoints() #3 {main} thrown in /home/janus/domains/zonstraal.be/public_html/landkaart/inc/sql.class.php on line 28
mysqli staat aan in de php opties.
Gewijzigd op 26/02/2022 22:38:31 door Jan Bakker
Heb je wel je connectie aan je query toegevoegd?
Dus mysqli_query($conn,"SELECT .. FROM etc");
Je moet zelf even kijken of dit wel $conn is....
Dus mysqli_query($conn,"SELECT .. FROM etc");
Je moet zelf even kijken of dit wel $conn is....
Code (php)
1
2
3
4
5
6
2
3
4
5
6
// Query absetzen
function query($query) {
$result = mysqli_query($query, $this->link);
echo mysqli_error();
return $result;
}
function query($query) {
$result = mysqli_query($query, $this->link);
echo mysqli_error();
return $result;
}
Dit is het hele stukje bij regel 28.
Ik heb geen idee wat ik daar verder aan zou moeten aanpassen.
Bekijk de volgorde eens van je variabelen in mysqli_query.
Sorry ik heb geen idee wat je daarmee bedoelt, moet er misschien aan toevoegen dat ik zeer weinig ken van php
Ik zeg:
Maar jij draait blijkbaar die volgorde om. met eerst de query, en dan de link (connection).
Zie ook php.net/mysqli_query
- Ariën - op 26/02/2022 22:58:23:
mysqli_query($conn,"SELECT .. FROM etc");
mysqli_query($conn,"SELECT .. FROM etc");
Maar jij draait blijkbaar die volgorde om. met eerst de query, en dan de link (connection).
Zie ook php.net/mysqli_query
Gewijzigd op 27/02/2022 10:42:38 door - Ariën -
// Query absetzen
function query($query) {
$result = mysqli_query($this->link, $query);
echo mysqli_error();
return $result;
}
Toevoeging op 27/02/2022 14:11:47:
Ik heb het omgedraaid maar zie geen verschil.
function query($query) {
$result = mysqli_query($this->link, $query);
echo mysqli_error();
return $result;
}
Toevoeging op 27/02/2022 14:11:47:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
// Query absetzen
function query($query) {
$result = mysqli_query($this->link, $query);
echo mysqli_error();
return $result;
}
function query($query) {
$result = mysqli_query($this->link, $query);
echo mysqli_error();
return $result;
}
Ik heb het omgedraaid maar zie geen verschil.
Wat gebeurt er dan?
Welke error?
Hoe roep je die functie aan?
Hoe ziet de class eruit?
Welke error?
Hoe roep je die functie aan?
Hoe ziet de class eruit?
De waarde in eigenschap $this->link van de class 'sql' moet een object bevatten van het type 'mysqli', het liefst met een werkende verbinding met een MySQL / MariaDB database.
Als je dat niets zegt, dan kunnen we hier van alles opperen, maar het schiet niet op.
De opties zijn om jezelf te bekwamen in deze technologie, of om het iemand te vragen die het voor je wil doen.
Als je dat niets zegt, dan kunnen we hier van alles opperen, maar het schiet niet op.
De opties zijn om jezelf te bekwamen in deze technologie, of om het iemand te vragen die het voor je wil doen.
Hier komt die link vandaan:
Ik heb al aan diversen mensen hulp gevraagd maar het blijkbaar erg moeilijk om iemand te vinden voor dit soort kleine klusjes.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$this->link = mysqli_connect($this->host, $this->user, $this->pass);
if(!$this->link)
return;
mysqli_select_db($this->db);
register_shutdown_function( array( &$this, "close" ) );
}
if(!$this->link)
return;
mysqli_select_db($this->db);
register_shutdown_function( array( &$this, "close" ) );
}
Ik heb al aan diversen mensen hulp gevraagd maar het blijkbaar erg moeilijk om iemand te vinden voor dit soort kleine klusjes.
Geef mysqli_connect() eens als vierde parameter de databasenaam aan. Lijn 4 is dan niet nodig.
Als je zelf de kennis niet hebt, dan kan je je er ook in verdiepen?
Als je zelf de kennis niet hebt, dan kan je je er ook in verdiepen?
Gewijzigd op 27/02/2022 14:56:15 door - Ariën -
Code (php)
1
2
3
4
5
2
3
4
5
$this->link = mysqli_connect($this->host, $this->user, $this->pass, janus_landkaart );
if(!$this->link)
return;
register_shutdown_function( array( &$this, "close" ) );
}
if(!$this->link)
return;
register_shutdown_function( array( &$this, "close" ) );
}
Ook dat help niet.



