Werkt niet meer met PHP 7

Overzicht

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Aart LT

Aart LT

20/02/2022 19:37:10
Anchor link
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
Gewijzigd op 20/02/2022 22:38:46 door Aart LT
 
PHP hulp

PHP hulp

25/04/2024 23:40:44
 
- Ariën  -
Beheerder

- Ariën -

20/02/2022 19:48:02
Anchor link
Dag Aart,

Kan je een goede titel die je probleemstelling of vraag omschrijft, bij het topic invoeren?
 
Ozzie PHP

Ozzie PHP

20/02/2022 19:48:42
Anchor link
>> 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.
 
- Ariën  -
Beheerder

- Ariën -

20/02/2022 19:51:32
Anchor link
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
Gewijzigd op 20/02/2022 19:54:12 door - Ariën -
 
Ivo P

Ivo P

20/02/2022 21:41:48
Anchor link
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.
 
Aart LT

Aart LT

20/02/2022 22:51:37
Anchor link
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
 
- Ariën  -
Beheerder

- Ariën -

20/02/2022 23:18:58
Anchor link
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.
 
Jan Bakker

Jan Bakker

26/02/2022 18:16:05
Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    $res = $db->query($q);
 
- Ariën  -
Beheerder

- Ariën -

26/02/2022 18:22:11
Anchor link
Als je mysqli_query()gebruikt. Krijg je dan deze error, als ik goed begrijp?

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 -
 
Jan Bakker

Jan Bakker

26/02/2022 22:36:18
Anchor link
Bedankt voor de reactie, deze error krijg ik na de aanpassing naar mysqli
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
 
- Ariën  -
Beheerder

- Ariën -

26/02/2022 22:58:23
Anchor link
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....
 
Jan Bakker

Jan Bakker

27/02/2022 09:57:50
Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
    // Query absetzen
    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.
 
- Ariën  -
Beheerder

- Ariën -

27/02/2022 10:33:41
Anchor link
Bekijk de volgorde eens van je variabelen in mysqli_query.
 
Jan Bakker

Jan Bakker

27/02/2022 10:38:25
Anchor link
Sorry ik heb geen idee wat je daarmee bedoelt, moet er misschien aan toevoegen dat ik zeer weinig ken van php
 
- Ariën  -
Beheerder

- Ariën -

27/02/2022 10:41:30
Anchor link
Ik zeg:

- Ariën - op 26/02/2022 22:58:23:

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 -
 
Jan Bakker

Jan Bakker

27/02/2022 14:10:41
Anchor link
// Query absetzen
function query($query) {
$result = mysqli_query($this->link, $query);
echo mysqli_error();
return $result;
}

Toevoeging op 27/02/2022 14:11:47:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
    // Query absetzen
    function query($query) {
        $result = mysqli_query($this->link, $query);
        echo mysqli_error();
        return $result;
    }


Ik heb het omgedraaid maar zie geen verschil.
 
- Ariën  -
Beheerder

- Ariën -

27/02/2022 14:17:30
Anchor link
Wat gebeurt er dan?
Welke error?

Hoe roep je die functie aan?
Hoe ziet de class eruit?
 
Ad Fundum

Ad Fundum

27/02/2022 14:21:42
Anchor link
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.
 
Jan Bakker

Jan Bakker

27/02/2022 14:48:23
Anchor link
Hier komt die link vandaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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" ) );
    }


Ik heb al aan diversen mensen hulp gevraagd maar het blijkbaar erg moeilijk om iemand te vinden voor dit soort kleine klusjes.
 
- Ariën  -
Beheerder

- Ariën -

27/02/2022 14:55:37
Anchor link
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?
Gewijzigd op 27/02/2022 14:56:15 door - Ariën -
 
Jan Bakker

Jan Bakker

27/02/2022 15:10:04
Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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" ) );
    }


Ook dat help niet.
 

Pagina: 1 2 3 volgende »

 

Dit topic is gesloten.



Overzicht

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.