Oude php5 site levend krijgen op Ubuntu 20 & php 7 :-)

Plaats reactie
Gebruikersavatar
Sasuke
Elite Poster
Elite Poster
Berichten: 4854
Lid geworden op: 13 aug 2003, 20:25
Locatie: Vlaanderen
Uitgedeelde bedankjes: 153 keer
Bedankt: 332 keer
Contacteer:

Heb een oude site die ik graag levend wil krijgen op php7. De klassieke mysql_ plugin verwijzingen zijn reeds aangepast naar mysqli_ en DB connecties zijn OK. Het loopt ergens mis bij het vaststellen van de pagina locatie. Iemand een idee in welke richting ik moet zoeken ? Op php5 werkt de code wél :-) (Dit is nog fallout van de OVH brand ... nieuwe server ondersteund geen php 5.x meer (duh) en klant wil site terug online ... )

Het loopt dus spaak bij het openen van de site.

Code: Selecteer alles

Got error 'PHP message: PHP Warning:  mysqli_select_db() expects exactly 2 parameters, 1 given in /var/www/vhosts/domain.tld/httpdocs/includes/config.php on line 10\nPHP message: PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /var/www/vhosts/domain.tld/httpdocs/includes/alg_funcs.php on line 78\nPHP message: PHP Warning:  mysqli_fetch_object() expects parameter 1 to be mysqli_result, null given in /var/www/vhosts/domain.tld/httpdocs/includes/alg_funcs.php on line 84\n', referer: https://domain.tld/404.shtml
Relevante pagina code. Volgens de error hierboven loopt het mis bij de functie setCurrID.

Code: Selecteer alles

<?php
@session_start();

catchAlias();
setLanguageID();

function catchAlias()
{
	if(isset($_REQUEST["news_alias"]))
	{
		$table = "news";
		$alias = $_REQUEST["news_alias"];
	}
	else if(isset($_REQUEST["alias"]))
	{
//		echo "alias : " . $_REQUEST["alias"];
		$table = "menuitems";		
		$alias = $_REQUEST["alias"];	
		/*$alias = explode("/", $alias);
		$alias = $alias[count($alias)-1];		*/
	}
	setCurrID($alias, $table);
	
}
function setLanguageID()
{
	if(!isset($_SESSION["langID"]))
	{
		$_SESSION["langID"] = getDefaultLanguage();
	}
}
function isHome()
{
	$id = addslashes($_REQUEST["id"]);
	
	if($id == getHomepage())
	return true;
	else
	return false;
}

function getHomepage()
{
	$query = mysqli_query("select id from menuitems where home='y' and langID=" . $_SESSION["langID"]) or die(mysqli_error());
	$obj = mysqli_fetch_object($query);
	return $obj->id;
}

function getPageName()
{
	return basename($_SERVER['PHP_SELF']);
}
function setCurrID($alias, $table)
{
	if($alias != "")
	{
		if($table == "menuitems")
		$query = mysqli_query("select id, langID from $table where alias='$alias'");
		// $query = mysqli_query("select id, langID from $table where alias='index'");
		else
		{
			$query = mysqli_query("select id from $table where alias='$alias'");
		}
		
		$obj = mysqli_fetch_object($query);
		if($obj->id != "")
		{
			$_REQUEST["id"] = $obj->id;
			if($obj->langID != "")
			{
				$_SESSION["langID"] = $obj->langID;
			}			
		}
		else if($table == "news")
		{
			header("Location: /all_newsitems.php");
			exit();		
		}
		else
		{
			header("Location: 404.shtml");
			exit();
		}
	}
}
Who the fxxk is General Failure and why is he reading my hard disk ?
Afbeelding
Gebruikersavatar
Splitter
Elite Poster
Elite Poster
Berichten: 4578
Lid geworden op: 10 mar 2010, 12:30
Uitgedeelde bedankjes: 58 keer
Bedankt: 446 keer

je query is fout op die manier denk ik:

Code: Selecteer alles

      $query = mysqli_query("select id, langID from $table where alias='$alias'");
vervang eens door

Code: Selecteer alles

      $query = mysqli_query($db, "select id, langID from $table where alias='$alias'");
waar $db dan dus iets is a la

Code: Selecteer alles

 $db = mysqli_connect("localhost", "USER", "PASS", "DB");

aan je andere warnings denk ik trouwens dat het probleem ook in de rest van de code zit waar je de db opbouwt.
je moet nu altijd iets hebben a la
$db = mysqli_connect(.....);
$query = mysqli_query($db, "select ....");
$result = mysqli_fetch_row($query);
Gebruikersavatar
Sasuke
Elite Poster
Elite Poster
Berichten: 4854
Lid geworden op: 13 aug 2003, 20:25
Locatie: Vlaanderen
Uitgedeelde bedankjes: 153 keer
Bedankt: 332 keer
Contacteer:

Die heb ik, zit in de config.php

Ik had niet stilgestaan bij het feit dat de mysqli query syntax veranderd is :-) zal eens testen !
Who the fxxk is General Failure and why is he reading my hard disk ?
Afbeelding
Plaats reactie

Terug naar “Development”