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
@ivo Ik heb het idee dat dit geen code is van het phpBB forum.
Inderdaad dit script heeft niets met phpbb te maken maar komt hier vandaan https://chaosquake.de/projects/landmark-system
echo $q; geeft
SELECT u.name, g.lon, g.lat, g.ort FROM lms_user u LEFT JOIN lms_geodb g ON u.geoid = g.id WHERE 1 object(mysqli)#2 (18) { ["affected_rows"]=> int(83) ["client_info"]=> string(15) "10.3.32-MariaDB" ["client_version"]=> int(100332) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(4) ["host_info"]=> string(25) "Localhost via UNIX socket" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(23) "10.3.29-MariaDB-cll-lve" ["server_version"]=> int(100329) ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(407838985) ["warning_count"]=> int(0) } string(100) "SELECT u.name, g.lon, g.lat, g.ort FROM lms_user u LEFT JOIN lms_geodb g ON u.geoid = g.id WHERE 1 " 


De andere vragen zal ik later beantwoorden, eerst de waterleiding herstellen :-)
Die var_dumps mag je wel weghalen.
Hoe ziet je query er dan uit? En heb je de andere dingen al toegepast?

En kan je ook vertellen waar PHP_AUTH_USER vandaan komt?
in index.php:
<?php
// Admin User/Passwort überprüfen
if($_SERVER['PHP_AUTH_USER'] == ADMIN_USER && $_SERVER['PHP_AUTH_PW'] == ADMIN_PASSWORD) {
$GLOBALS['LMSAdmin']=true;
}
?>

moet iets worden als

<?php
// Admin User/Passwort überprüfen
if(isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER'] == ADMIN_USER
&& isset($_SERVER['PHP_AUTH_PW']) && $_SERVER['PHP_AUTH_PW'] == ADMIN_PASSWORD) {
$GLOBALS['LMSAdmin']=true;
}
?>
net als bij de $_GET'jes in de query: Een isset() erbij.
Ik heb de var dumps verwijdert.
En in de index.php dit aangepast
// Admin User/Passwort überprüfen
if(isset($_SERVER['PHP_AUTH_USER']) &&  $_SERVER['PHP_AUTH_USER'] == ADMIN_USER
&& isset($_SERVER['PHP_AUTH_PW']) && $_SERVER['PHP_AUTH_PW'] == ADMIN_PASSWORD) {
    $GLOBALS['LMSAdmin']=true;
}


Dan die die "$db -> link" in map.function.php gezet
// Einträge aus der Datenbank laden und nach Pixelkoordinaten gruppieren
function getPoints($id=0) {
	// Suche ?
	$q = "SELECT u.name, g.lon, g.lat, g.ort FROM ".TABLE_USER." u LEFT JOIN ".TABLE_GEODB."  g ON u.geoid = g.id WHERE 1 ";
	if($id) $q .="AND u.id = '".mysqli_real_escape_string($id)."' ";
	if($_GET['name']) $q .="AND u.name LIKE '%".mysqli_real_escape_string($db->link, $_GET['name'])."%' ";
	if($_GET['plz']) $q .="AND g.plz LIKE '".mysqli_real_escape_string($db->link, $_GET['plz'])."%' ";
	if($_GET['ort']) $q .="AND g.ort LIKE '".mysqli_real_escape_string($db->link, $_GET['ort'])."%' ";
	echo $q; 
	global $db;
	$res = $db->query($q);
	$p=array();


En in sql.class.php $this->link waarna de fatal error verdween.

Nu nog alleen de ort, name, plz en m errors.
https://www.zonstraal.be/landkaart/

Kijk eens naar wat ik zei over isset().
Verder zie ik nog een mysql_query()
mysql_query opgelost

Kun je een voorbeeld geven van die isset(). want ik begrijp dat echt niet
Als je dat ook om je $_GET[...] variabelen zet.
Dus
if (isset($_GET['name'])) $q .="AND u.name LIKE '%".mysqli_real_escape_string($db->link, $_GET['name'])."%' ";

ipv
if ($_GET['name']) $q .="AND u.name LIKE '%".mysqli_real_escape_string($db->link, $_GET['name'])."%' ";

?

Reageren