Voor een schoolopdracht moet ik bezig met een mysql database. Ik moet die weergeven op een pagina, waarbij ik een textarea verschillende sql commando's in kan voeren. Dat eerste deel is me redelijk gelukt. Maar nu moet ik het beveiligen met een wachtwoord en dat lukt me niet helemaal. Op de een of andere manier doe ik iets goed verkeerd. Als ik inlog met de juiste gegevens dan komt de database er niet te staan(ververst het login veld gewoon), maar als ik dan in de adresbalk op enter druk (geen f5 want dan stuurt hij de gegevens opnieuw) krijg ik wel de tabel, maar zo snel als ik een query uit probeer te voeren springt hij weer terug naar het login veld.

Als ik login met de juiste gegevens blijft hij dus bij het login gedeelte, log ik dan nog een keer in met de juiste gegevens dan ga ik weer naar de database, kan ik 1 query uitvoeren en bij de volgende wordt ik er weer uitgekickt. Ik heb de hele ochtend zitten kloten en verschillende dingen proberen, maar ik krijg het maar niet voor elkaar :(


Hier de code
<?PHP
session_start();

array(
'is_logged_in'	=> false,
'db' => '',
'ww' => '',
);

if(!$is_logged_in){
	if (session){
		@session_destroy();
		@session_unset();
	}
	setcookie('db', $_POST['db'], time() + 3600 * 24 * 365);
	setcookie('ww', $_POST['ww'], time() + 3600 * 24 * 365);
}

if($HTTP_COOKIE_VARS['db'] == '***' && $HTTP_COOKIE_VARS['ww'] == '***') {
	$is_logged_in = true;
}

$db = $HTTP_COOKIE_VARS['db'];
$ww = $HTTP_COOKIE_VARS['ww'];

if (isset ($_POST['query'])) { $query = $_POST['query'];  }
else                         { $query = 'Select * FROM bier'; }
?>



<html>

<head>
<title>Schoolopdracht _ MYSQL BIER Database</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>
<?
if (isset ($HTTP_COOKIE_VARS['db'])) {
	echo '<div id="top">Succesvol ingelogd</div>';
}
else { 
	?>
			<div id="top">Log in: <form method="POST" action="<?=$_SERVER['PHP_SELF']?>"><input type="text" name="db" value="database"> <input type="password" name="ww" value="wachtwoord"> <input type="submit" value="Log in"></form></div>
				
	<?
	}
$link = mysql_connect('localhost',$db,$ww);
		mysql_select_db('bier',$link);
	
if($HTTP_COOKIE_VARS['***'] == 'ramonmol' && $HTTP_COOKIE_VARS['***'] == 'ramenjar') {
		?>

	
  <div id="left">
	<form method="POST" action="<?PHP echo $_SERVER['PHP_SELF'] ?>">
		<textarea class="invoer" name="query"><?PHP echo $query; ?></textarea>
		<input type="submit" value="Verstuur Query">
	</form>
  </div>
<?
}
?>
  
  <div id="right">
  <table>
<?PHP
	
	
	//$queryform = addslashes($query);
	$uitvoer = mysql_query ($query, $link);
	
	while ($record = mysql_fetch_row($uitvoer))
	{	
		print "<tr>";
		foreach ($record as $veld)
		print "<td>$veld</td>";
		print "</tr>";
	}
	mysql_free_result($uitvoer);

?>
</table>



  </div>
</body>

</html>


Iemand van jullie die me een stapje verder kan helpen?
Dit kan, maar de hele opmerking 'query gelukt' is niet interessant. Dat is het moment om met de while aan de slag te gaan!

Voorbeeldje:
<?
$result = mysql_query ($query, $link);

if($result){
while ($record = mysql_fetch_assoc($result))
{
echo '<tr>';
echo '<td>'.$record['kolomnaam'].'</td>'; // let op de kolomnaam!
echo '</tr>';
}
} else { // gebruik nooit 'die()', dat is wel zo bot!
echo '<div id="q_fail">query mislukt '.mysql_error().'</div>';
}
?>
Netjes, ik snap hoe dit netter en beter is dan mijn eigen poging. Enorm bedankt voor je hulp :)

Reageren