Gegevens veranderen in de database

Status
Niet open voor verdere reacties.

Egel007

Gebruiker
Lid geworden
4 dec 2007
Berichten
271
Beste,

Ik heb nogmaals enkele PHP problemen.
Wil dus voor een opdracht gegevens van gebruikers kunnen wijzigen, maar er wordt dus niks veranderd/geupdate in de database.

Verder heb ik de code gekopiëerd naar mijn gebruikerspaneel en wanneer ik het daar uitvoer, wordt zelfs alles verwijderd (behalve het id, volgens mij).
Weet iemand hoe ik dit normaal werkend krijg en waar de fout precies zit?

Hier de betreffende code's (de uitwerkingen werken bij geen van beide).
Verander-formulier Administratorpaneel:
PHP:
<?php
	// Sessie starten
	session_start();
	
	include '../connect.php';
	
	// Controleren of er een gebruiker is ingelogd, zoniet; terugsturen naar het inlogscherm
	if ($_SESSION['ingelogd'] == 1) 
	{
		// Zo ja, controleren of deze administrator is
		if($_SESSION['gebruikerslevel'] == 3)
		{
			$id = $_GET['id'];
			$sql = "SELECT * FROM gebruikers WHERE id='$id'";
			$result = mysql_query($sql);
			while($rijquery = mysql_fetch_array($result))
			{
				echo "<b>Gebruikersnaam:</b>&nbsp;&nbsp;<input type='text' name='gebruikersnaam' value='$rijquery[gebruikersnaam]' maxlength='20'><br>";
				echo "<b>Gebruikerslevel:</b>&nbsp;&nbsp;&nbsp;<input type='text' name='gebruikerslevel' value='$rijquery[gebruikerslevel]' maxlength='1'><br>";
				echo "<b>Voornaam:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='voornaam' value='$rijquery[voornaam]'                      maxlength='20'><br>";
				echo "<b>Achternaam:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='achternaam' value='$rijquery[achternaam]'                      maxlength='25'><br>";
				echo "<b>Adres:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text'                      name='adres' value='$rijquery[adres]' maxlength='50'><br>";
				echo "<b>Postcode:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='postcode'                      value='$rijquery[postcode]' maxlength='6'><br>";
				echo "<b>Woonplaats:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='woonplaats' value='$rijquery[woonplaats]'                      maxlength='50'><br>";
				echo "<b>Mobiel nummer:</b>&nbsp;&nbsp;&nbsp;<input type='text' name='mobielnummer' value='$rijquery[mobielnummer]' maxlength='10'><br>";
				echo "<b>E-mailadres:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='emailadres' value='$rijquery[emailadres]'                      maxlength='50'><br><p>";
				?>
                <form action="wijzig.php" method="post">
                	<input type="submit" name="wijzig" value="Wijzig">
                </form><p>
                <a href="gebruikerstonen.php">Ga terug</a>
                <?php
			}
		}
		else
		{
			header ('Refresh:5; url=../gebruiker/ingelogd.php');
			echo "U bent geen administrator. U wordt binnen 5 seconden teruggestuurd naar de gebruikerspagina.";
		}
	}
	else
	{
		header ('Refresh:5; url=../index.php');
		echo "U bent niet ingelogd. U wordt binnen 5 seconden teruggestuurd naar de inlogpagina.";
	}
?>

<html>
	<head>
    	<title>Gebruiker Wijzigen</title>
    </head>
    <body>
    </body>
</html>

Verwerking Administratorpaneel:
PHP:
<?php
	// Sessie starten
	session_start();
	
	include '../connect.php';
	
	// Controleren of er een gebruiker is ingelogd, zoniet; terugsturen naar het inlogscherm
	if ($_SESSION['ingelogd'] == 1) 
	{
		// Zo ja, controleren of deze administrator is
		if($_SESSION['gebruikerslevel'] == 3)
		{
			$id = $_GET['id'];
			$gebruikersnaam = $_POST['gebruikersnaam'];
			$gebruikerslevel = $_POST['gebruikerslevel'];
			$voornaam = $_POST['voornaam'];
			$achternaam = $_POST['achternaam'];
			$adres = $_POST['adres'];
			$postcode = $_POST['postcode'];
			$woonplaats = $_POST['woonplaats'];
			$mobielnummer = $_POST['mobielnummer'];
			$emailadres = $_POST['emailadres'];
			
			$sql = "UPDATE gebruikers SET gebruikersnaam='$gebruikersnaam', gebruikerslevel='$gebruikerslevel', voornaam='$voornaam', achternaam='$achternaam', adres='$adres',            postcode='$postcode', woonplaats='$woonplaats', mobielnummer='$mobielnummer', emailadres='$emailadres' WHERE id='$id'";
			$result = mysql_query($sql) or die(mysql_error());
			header ('Refresh:5; url=admin.php');
			echo "Gebruiker succesvol gewijzigd. U wordt binnen 5 seconden naar het administratorpaneel.";
		}
		else
		{
			header ('Refresh:5; url=../gebruiker/ingelogd.php');
			echo "U bent geen administrator. U wordt binnen 5 seconden teruggestuurd naar de gebruikerspagina.";
		}
	}
	else
	{
		header ('Refresh:5; url=../index.php');
		echo "U bent niet ingelogd. U wordt binnen 5 seconden teruggestuurd naar de inlogpagina.";
	}
?>

<html>
	<head>
    	<title>Gebruiker wijzigen</title>
    </head>
</html>

Veranderformulier Gebruikerspaneel:
PHP:
<?php
	// Sessie starten
	session_start();
	
	include '../connect.php';
	
	// Controleren of er een gebruiker is ingelogd, zoniet; terugsturen naar het inlogscherm
	if ($_SESSION['ingelogd'] == 1) 
	{
		$id = $_GET['id'];
		$sql = "SELECT * FROM gebruikers WHERE id='$id'";
		$result = mysql_query($sql);
		while($rijquery = mysql_fetch_array($result))
		{
			echo "<b>Gebruikersnaam:</b>&nbsp;&nbsp;<input type='text' name='gebruikersnaam' value='$rijquery[gebruikersnaam]' maxlength='20'><br>";
			echo "<b>Gebruikerslevel:</b>&nbsp;&nbsp;&nbsp;<input type='text' name='gebruikerslevel' value='$rijquery[gebruikerslevel]' maxlength='1'><br>";
			echo "<b>Voornaam:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='voornaam' value='$rijquery[voornaam]'                  maxlength='20'><br>";
			echo "<b>Achternaam:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='achternaam' value='$rijquery[achternaam]'                   maxlength='25'><br>";
			echo "<b>Adres:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text'                  name='adres' value='$rijquery[adres]' maxlength='50'><br>";
			echo "<b>Postcode:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='postcode'                                    value='$rijquery[postcode]' maxlength='6'><br>";
			echo "<b>Woonplaats:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='woonplaats' value='$rijquery[woonplaats]'                                     maxlength='50'><br>";
			echo "<b>Mobiel nummer:</b>&nbsp;&nbsp;&nbsp;<input type='text' name='mobielnummer' value='$rijquery[mobielnummer]' maxlength='10'><br>";
			echo "<b>E-mailadres:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='emailadres' value='$rijquery[emailadres]'                  maxlength='50'><br><p>";
			echo "<a href='gebrwijzigen.php?id=$id'>Wijzigen</a><p>";
			echo "<a href='ingelogd.php'>Ga terug</a>";		
		}
	}
	else
	{
		header ('Refresh:5; url=../index.php');
		echo "U bent niet ingelogd. U wordt binnen 5 seconden teruggestuurd naar de inlogpagina.";
	}
?>

<html>
	<head>
    	<title>Gebruiker Wijzigen</title>
    </head>
    <body>
    </body>
</html>

Verwerking gebruikerspaneel:
PHP:
<?php
// Sessie starten
	session_start();
	
	include '../connect.php';
	
	// Controleren of er een gebruiker is ingelogd, zoniet; terugsturen naar het inlogscherm
	if ($_SESSION['ingelogd'] == 1) 
	{
		$id = $_GET['id'];
		$gebruikersnaam = $_POST['gebruikersnaam'];
		$gebruikerslevel = $_POST['gebruikerslevel'];
		$voornaam = $_POST['voornaam'];
		$achternaam = $_POST['achternaam'];
		$adres = $_POST['adres'];
		$postcode = $_POST['postcode'];
		$woonplaats = $_POST['woonplaats'];
		$mobielnummer = $_POST['mobielnummer'];
		$emailadres = $_POST['emailadres'];
		
		$sql = "UPDATE gebruikers SET gebruikersnaam='$gebruikersnaam', gebruikerslevel='$gebruikerslevel', voornaam='$voornaam', achternaam='$achternaam', adres='$adres',                postcode='$postcode', woonplaats='$woonplaats', mobielnummer='$mobielnummer', emailadres='$emailadres' WHERE id='$id'";
		$result = mysql_query($sql) or die(mysql_error());
		header ('Refresh:5; url=ingelogd.php');
		echo "Gebruiker succesvol gewijzigd. U wordt binnen 5 seconden naar het administratorpaneel.";
	}
	else
	{
		header ('Refresh:5; url=../index.php');
		echo "U bent niet ingelogd. U wordt binnen 5 seconden teruggestuurd naar de inlogpagina.";
	}
?>

Bij voorbaat dank,

Met vrinedelijke groet
 
Je hebt in ieder geval in je verwerking script van de administrator nergens je $id beschreven. je haalt hem wel op met je get, maar ik weet niet of die wel meegestuurd wordt, waar het zekerweten ook aan ligt is dat je je form (die hele lange rij echo's, die ook met 1 echo kan, bovendien kan je die spaties vermeiden door een tabel te gebruiken). Je begint je form pas voor je submit knop, terwijl je die voor al die echos moet beginnen

EDIT: volgens mij is je verwijderd, meer overschreven met de waarde null
 
Laatst bewerkt:
het lijkt mij van niet omdat je een link print van alle users

PHP:
echo "<a href='gebrwijzigen.php?id=$id'>Wijzigen</a><p>";
maar id is ook een collom in je database en autonr??

kan je ook bij elk script naam vermelden

en hier de fout denk ik
PHP:
          echo "<b>Gebruikersnaam:</b>&nbsp;&nbsp;<input type='text' name='gebruikersnaam' value='$rijquery[gebruikersnaam]' maxlength='20'><br>";
                echo "<b>Gebruikerslevel:</b>&nbsp;&nbsp;&nbsp;<input type='text' name='gebruikerslevel' value='$rijquery[gebruikerslevel]' maxlength='1'><br>";
                echo "<b>Voornaam:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='voornaam' value='$rijquery[voornaam]'                      maxlength='20'><br>";
                echo "<b>Achternaam:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='achternaam' value='$rijquery[achternaam]'                      maxlength='25'><br>";
                echo "<b>Adres:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text'                      name='adres' value='$rijquery[adres]' maxlength='50'><br>";
                echo "<b>Postcode:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='postcode'                      value='$rijquery[postcode]' maxlength='6'><br>";
                echo "<b>Woonplaats:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='woonplaats' value='$rijquery[woonplaats]'                      maxlength='50'><br>";
                echo "<b>Mobiel nummer:</b>&nbsp;&nbsp;&nbsp;<input type='text' name='mobielnummer' value='$rijquery[mobielnummer]' maxlength='10'><br>";
                echo "<b>E-mailadres:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='emailadres' value='$rijquery[emailadres]'                      maxlength='50'><br><p>";
                ?>
                <form action="wijzig.php" method="post">
                    <input type="submit" name="wijzig" value="Wijzig">
                </form><p>
                <a href="gebruikerstonen.php">Ga terug</a>
                <?php
zie je plaatst geen values tussen de formlijnen dus vermoedelijke fout alles blijft en wordt niet upgedate hierdoor

verbetering
PHP:
          echo"<form action='wijzig.php' method='post'>";
          echo "<b>Gebruikersnaam:</b>&nbsp;&nbsp;<input type='text' name='gebruikersnaam' value='$rijquery[gebruikersnaam]' maxlength='20'><br>";
                echo "<b>Gebruikerslevel:</b>&nbsp;&nbsp;&nbsp;<input type='text' name='gebruikerslevel' value='$rijquery[gebruikerslevel]' maxlength='1'><br>";
                echo "<b>Voornaam:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='voornaam' value='$rijquery[voornaam]'                      maxlength='20'><br>";
                echo "<b>Achternaam:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='achternaam' value='$rijquery[achternaam]'                      maxlength='25'><br>";
                echo "<b>Adres:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text'                      name='adres' value='$rijquery[adres]' maxlength='50'><br>";
                echo "<b>Postcode:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='postcode'                      value='$rijquery[postcode]' maxlength='6'><br>";
                echo "<b>Woonplaats:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='woonplaats' value='$rijquery[woonplaats]'                      maxlength='50'><br>";
                echo "<b>Mobiel nummer:</b>&nbsp;&nbsp;&nbsp;<input type='text' name='mobielnummer' value='$rijquery[mobielnummer]' maxlength='10'><br>";
                echo "<b>E-mailadres:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='emailadres' value='$rijquery[emailadres]'                      maxlength='50'><br><p>";
                ?>
                
                    <input type="submit" name="wijzig" value="Wijzig">
                </form><p>
                <a href="gebruikerstonen.php">Ga terug</a>
                <?php

betreffende scripten kan je verbeteren
echo's zoals jorryt zei
maar ook GebruikersTonen.php maakt het leesbaar (zie hoofdletters)
if ($_SESSION['ingelogd'] == 1) is niet 100% veilig
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan