Beste,

Ik heb sinds jaar en dag een website die ik ooit gemaakt heb uit interesse en hobby. Nu is mijn server (Synology) geüpdatet naar een nieuwere php versie en werkt mijn website niet meer. Ik heb van alles geprobeerd maar mijn kennis is niet toereikend... Wie zou mij kunnen helpen om mijn website weer aan de eisen van deze tijd te kunnen maken.

Het betreft onderstaande code waar ik tegen aanloop. Het betreft een php bestand van vele, maar deze geeft foutmeldingen...

Alvast bedankt voor diegene die er naar wil kijken en er aandacht aan besteed!

Groet,

Marc

<?
// met deze 2 variabelen kun je het aantal kolommen en de kolombreedte wijzigen:
$aantalkolommen=3;
$kolombreedte="205px";

//db connectie
include('connectie.php');

//username halen uit url
$array = array('<', '>', '\\', '/', '=', '.blommetje.nl');
$request_url=$_SERVER['HTTP_HOST'];
$username=str_replace($array, "", $request_url);

// selecties maken
if ($username == "www") {
    $userid = 1;
} else {
    $sql = mysqli_query($conn, "SELECT id, gebrnaam FROM users WHERE gebrnaam ='$username'");
    while ($res = mysqli_fetch_assoc($sql)) {
        trigger_error(mysqli_error());
    }

    if (mysqli_num_rows($sql) == 0) {
        header("Location: aanmeld.php");
        exit;
    } else {
        while ($row = mysqli_fetch_assoc($sql)) {
            $userid = $row['id'];
        }
        $username = $row['gebrnaam'];
    }
}

//start de opbouw van de linkpagina
$linkcode="<div class=\"linktank\"><div class=\"linkcontainer\">";

//link aantallen en afbreekwaarden bepalen
$breaksmade=-0;
$makebreak=0;
$count=0;
$counttotal=0;

$sqlll= mysqli_query($connection, "SELECT COUNT(lid) as total FROM links WHERE uid ='$userid'");
if (!($temp_2 =  mysqli_query($sqlll,$conn)))
	showerror();
	$aantallen = mysqli_fetch_array($temp_2);
	
if ($aantallen['total'] == 0)
{
	include('geenlinksgevonden.php');
}

//categorien in de geselecteerde linkdir vinden
$sqll= mysqli_query($conn, "SELECT DISTINCT cat FROM links WHERE uid ='$userid' GROUP BY cat ");
if (!($temp =  mysqli_query($sqll,$conn)))
	showerror();
	$aantalcats=mysqli_num_rows($temp);

	//kolommen
	$totalrows= $aantallen['total'] + $aantalcats;
	$splitvalue= ceil($totalrows/$aantalkolommen);

	// voor elke categorie een apart blok bouwen
	while ($groep = mysqli_fetch_array($temp))
	{
		$category=$groep["cat"];

		// voor elk blok de links selecteren & html code schrijven
		$sql= mysqli_query($conn, "SELECT * FROM links WHERE cat = '$category'  AND uid ='$userid' ORDER BY naam ");
		if (!($result =  mysqli_query($sql,$connection)))
			showerror();
			$count++;
			$counttotal++;								

			//categorie kop
			$linkcode.="<div class=\"list1\">".$category."</div><div>";
			while ($row = mysqli_fetch_array($result) )
			{
				$count++;
				$counttotal++;								

				//link
				$linkcode.="<a target=\"_blank\" href=\"".$row["link"]."\">".$row["naam"]."</a><br>";
				if ($count >= $splitvalue)
				{
					$makebreak=1;
				}
			}
			if ($makebreak==1)
			{ 

				// einde?
				if ($counttotal == $totalrows)
				{
					$linkcode.= "</div><br>";
				}

				//nog een kolom		
				else 
				{ 
					$linkcode.= "</div></div><div class=\"linkcontainer\">";
					$makebreak=0;
					$count=0;
					$breaksmade++;
				}
			}
			else
			{

			//einde categorie
			$linkcode.= "</div><br>";
			}
		}	

		//niet genoeg kolommen maar wel genoeg categorien correctie:
		if ($breaksmade < $aantalkolommen && $aantalcats >=$aantalkolommen)
		{
			function str_replace_count($search,$replace,$subject,$times) 
		{
	 	$subject_original=$subject;
	  	$len=strlen($search);   
	   	$pos=0;
	   	for ($i=1;$i<=$times;$i++) 
		{
			$pos=strpos($subject,$search,$pos);
		   	if($pos!==false) 
			{               
				$subject=substr($subject_original,0,$pos);
			   	$subject.=$replace;
			   	$subject.=substr($subject_original,$pos+$len);
			   	$subject_original=$subject;
		   	}
			else
			{
				break;
		   	}
	   	}
	   	return($subject);
	}
	$extrabreaks =$aantalkolommen-$breaksmade;
	$linkcode = str_replace_count("</div><br>",  "</div></div><div class=\"linkcontainer\">",  $linkcode, ($extrabreaks-1));
}
?>
<style type="text/css">
<!--
.list1 {
	font-weight:bold;
	background-color:#0060ac;
	/* background-color: #E96516; */
	color: #ffffff;
	text-align:center;
	/* letter-spacing: 1px; */
	line-height: 17pt;
	margin-bottom: 5px;
	border-radius: 10px 10px 10px 10px;
	/* border:2px solid #E96516; */
}

.linktank {
width:<? echo ($aantalkolommen*$kolombreedte)+($aantalkolommen*14) ?>px;
}

.linkcontainer {
	float:left;
	margin:0px 5px;
	line-height: 13pt;
	width:<? echo $kolombreedte;?>;
}
-->
</style>
<?php echo "<br clear=\"all\">".$linkcode.""; ?>
Dan moet je toch even vertellen welke foutmeldingen je krijgt. :-)
sorry, bijgaande de foutmeldingen:

Connected successfully Fatal error: Uncaught ArgumentCountError: mysqli_error() expects exactly 1 argument, 0 given in /volume1/web/linkcontainer.php on line 20 ArgumentCountError: mysqli_error() expects exactly 1 argument, 0 given in /volume1/web/linkcontainer.php on line 20 Call Stack: 0.0002 360936 1. {main}() /volume1/web/index.php:0 0.0018 362440 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 0.0522 423336 3. mysqli_error() /volume1/web/linkcontainer.php:20
De melding is vrij duidelijk. mysqli_error() vereist een argument, en je vergeet die mee te geven:

mysqli_error() expects exactly 1 argument, 0 given

mysqli_error() wordt dus: mysqli_error($conn)

Verder zie ik wat SQL-injection mogelijkheden in je queries. Dus bescherm deze ook even goed met mysqli_real_escape_string()
En het staat op je NAS in de map /volume1/web, bestand linkcontainer.php regel 20 .. :-)
Thanks, ik ga er mee stoeien!
@Ariën, je bedoelt mysqli_real_escape_string()
pfff, nu krijg ik een verhaal als foutmelding :-)

Connected successfully Notice: in /volume1/web/linkcontainer.php on line 20 Call Stack: 0.0001 360928 1. {main}() /volume1/web/index.php:0 0.0010 362432 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 0.0020 423360 3. trigger_error($message = '') /volume1/web/linkcontainer.php:20 Warning: Trying to access array offset on value of type null in /volume1/web/linkcontainer.php on line 30 Call Stack: 0.0001 360928 1. {main}() /volume1/web/index.php:0 0.0010 362432 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 Warning: Undefined variable $connection in /volume1/web/linkcontainer.php on line 43 Call Stack: 0.0001 360928 1. {main}() /volume1/web/index.php:0 0.0010 362432 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 Warning: Undefined variable $userid in /volume1/web/linkcontainer.php on line 43 Call Stack: 0.0001 360928 1. {main}() /volume1/web/index.php:0 0.0010 362432 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 Fatal error: Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, null given in /volume1/web/linkcontainer.php on line 43 TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, null given in /volume1/web/linkcontainer.php on line 43 Call Stack: 0.0001 360928 1. {main}() /volume1/web/index.php:0 0.0010 362432 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 0.0022 423256 3. mysqli_query($mysql = NULL, $query = 'SELECT COUNT(lid) as total FROM links WHERE uid =\'\'') /volume1/web/linkcontainer.php:43

[size=xsmall]Toevoeging op 20/06/2023 10:51:04:[/size]

Volgens mij correct aangepast...


<?
// met deze 2 variabelen kun je het aantal kolommen en de kolombreedte wijzigen:
$aantalkolommen=3;
$kolombreedte="205px";

//db connectie
include('connectie.php');

//username halen uit url
$array = array('<', '>', '\\', '/', '=', '.blommetje.nl');
$request_url=$_SERVER['HTTP_HOST'];
$username=str_replace($array, "", $request_url);

// selecties maken
if ($username == "www") {
    $userid = 1;
} else {
    $sql = mysqli_query($conn, "SELECT id, gebrnaam FROM users WHERE gebrnaam ='$username'");
    while ($res = mysqli_fetch_assoc($sql)) {
        trigger_error(mysqli_error($conn));
    }

    if (mysqli_num_rows($sql) == 0) {
        header("Location: aanmeld.php");
        exit;
    } else {
        while ($row = mysqli_fetch_assoc($sql)) {
            $userid = $row['id'];
        }
        $username = $row['gebrnaam'];
    }
}

//start de opbouw van de linkpagina
$linkcode="<div class=\"linktank\"><div class=\"linkcontainer\">";

//link aantallen en afbreekwaarden bepalen
$breaksmade=-0;
$makebreak=0;
$count=0;
$counttotal=0;

$sqlll= mysqli_query($connection, "SELECT COUNT(lid) as total FROM links WHERE uid ='$userid'");
if (!($temp_2 =  mysqli_query($sqlll,$conn)))
	showerror();
	$aantallen = mysqli_fetch_array($temp_2);
	
if ($aantallen['total'] == 0)
{
	include('geenlinksgevonden.php');
}

//categorien in de geselecteerde linkdir vinden
$sqll= mysqli_query($conn, "SELECT DISTINCT cat FROM links WHERE uid ='$userid' GROUP BY cat ");
if (!($temp =  mysqli_query($sqll,$conn)))
	showerror();
	$aantalcats=mysqli_num_rows($temp);

	//kolommen
	$totalrows= $aantallen['total'] + $aantalcats;
	$splitvalue= ceil($totalrows/$aantalkolommen);

	// voor elke categorie een apart blok bouwen
	while ($groep = mysqli_fetch_array($temp))
	{
		$category=$groep["cat"];

		// voor elk blok de links selecteren & html code schrijven
		$sql= mysqli_query($conn, "SELECT * FROM links WHERE cat = '$category'  AND uid ='$userid' ORDER BY naam ");
		if (!($result =  mysqli_query($sql,$connection)))
			showerror();
			$count++;
			$counttotal++;								

			//categorie kop
			$linkcode.="<div class=\"list1\">".$category."</div><div>";
			while ($row = mysqli_fetch_array($result) )
			{
				$count++;
				$counttotal++;								

				//link
				$linkcode.="<a target=\"_blank\" href=\"".$row["link"]."\">".$row["naam"]."</a><br>";
				if ($count >= $splitvalue)
				{
					$makebreak=1;
				}
			}
			if ($makebreak==1)
			{ 

				// einde?
				if ($counttotal == $totalrows)
				{
					$linkcode.= "</div><br>";
				}

				//nog een kolom		
				else 
				{ 
					$linkcode.= "</div></div><div class=\"linkcontainer\">";
					$makebreak=0;
					$count=0;
					$breaksmade++;
				}
			}
			else
			{

			//einde categorie
			$linkcode.= "</div><br>";
			}
		}	

		//niet genoeg kolommen maar wel genoeg categorien correctie:
		if ($breaksmade < $aantalkolommen && $aantalcats >=$aantalkolommen)
		{
			function str_replace_count($search,$replace,$subject,$times) 
		{
	 	$subject_original=$subject;
	  	$len=strlen($search);   
	   	$pos=0;
	   	for ($i=1;$i<=$times;$i++) 
		{
			$pos=strpos($subject,$search,$pos);
		   	if($pos!==false) 
			{               
				$subject=substr($subject_original,0,$pos);
			   	$subject.=$replace;
			   	$subject.=substr($subject_original,$pos+$len);
			   	$subject_original=$subject;
		   	}
			else
			{
				break;
		   	}
	   	}
	   	return($subject);
	}
	$extrabreaks =$aantalkolommen-$breaksmade;
	$linkcode = str_replace_count("</div><br>",  "</div></div><div class=\"linkcontainer\">",  $linkcode, ($extrabreaks-1));
}
?>
<style type="text/css">
<!--
.list1 {
	font-weight:bold;
	background-color:#0060ac;
	/* background-color: #E96516; */
	color: #ffffff;
	text-align:center;
	/* letter-spacing: 1px; */
	line-height: 17pt;
	margin-bottom: 5px;
	border-radius: 10px 10px 10px 10px;
	/* border:2px solid #E96516; */
}

.linktank {
width:<? echo ($aantalkolommen*$kolombreedte)+($aantalkolommen*14) ?>px;
}

.linkcontainer {
	float:left;
	margin:0px 5px;
	line-height: 13pt;
	width:<? echo $kolombreedte;?>;
}
-->
</style>
<?php echo "<br clear=\"all\">".$linkcode.""; ?>
Is het nu $connection of $conn?
Het is $conn en heb het aangepast in regel 43. Echter de foutmeldingen blijven me om de oren vliegen, ben de draad volledig kwijt, haha
't ja dat zal je dus 1 voor 1 moeten aanpassen.
Volgende is dus in linkcontainer op lijn 20

Ik zie ook al staan: Undefined variable $connection terwijl je op andere plaatsen $conn gebruikt.

Reageren