Werkt niet meer met PHP 7
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
We hebben op de site een aantal onderwerpen die niet meer werken, 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
Kan je een goede titel die je probleemstelling of vraag omschrijft, bij het topic invoeren?
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 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 -
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.
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
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.
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
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 -
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
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
- 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 -
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.
Welke error?
Hoe roep je die functie aan?
Hoe ziet de class eruit?
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.
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.
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.