Gebruikers tonen en verwijderen

Status
Niet open voor verdere reacties.

Egel007

Gebruiker
Lid geworden
4 dec 2007
Berichten
271
Beste,

Ik had al eerder enkele problemen met mijn PHP opdracht (inlogsysteem).
Nou moet ik ook een pagina maken (waarop alleen de administrator kan) waar alle gebruikers uit de database worden getoond, met daarbij een knop om te verwijderen en te veranderen.

Ik heb nu samen met een klasgenoot een soort knop gemaakt waarmee ik dus kan verwijderen, maar de Administrator van de website mag natuurlijk niet verwijderd worden. Vandaar dat er dus een beveiliging op moet staan. Nu heb ik het dus zo gemaakt dat wanneer de gebruikersnaam hetzelfde is als Administrator, je een foutbericht krijgt en hem niet kan verwijderen.
Het probleem is alleen dat ik nu overal dat foutbericht krijg te zien, omdat hij denkt dat alle gebruikers Administrator zijn.

Het is waarschijnlijk een fout in de code van de pagina verwijderen.php.
Maar het is mij niet duidelijk op het moment en mijn klasgenoot ook niet.
Misschien dat iemand van jullie het wel ziet en mij hiermee kan helpen?

Alvast bedankt!
Mvg,
Egel

Code gebruikerstonen.php:
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)
		{
			echo "Welkom, administrator!<br>";
			echo "Via deze pagina kunt u alle gebruikers tonen.<br>";
			echo "U kunt vanuit hier ook de gebruikers wijzigen, of verwijderen.<p>";
			
			$query = "SELECT * FROM gebruikers ORDER BY gebruikersnaam ASC";
			$uitvoer = mysql_query($query);
			while($rijquery=mysql_fetch_array($uitvoer))
			{
				echo "<b>Gebruikersnaam:</b> ".$rijquery['gebruikersnaam']."<br>
					  <b>Gebruikerslevel:</b> ".$rijquery['gebruikerslevel']."<br>
					  <b>Voornaam:</b> ".$rijquery['voornaam']."<br>
					  <b>Achternaam:</b> ".$rijquery['achternaam']."<br>
					  <b>Adres:</b> ".$rijquery['adres']."<br>
					  <b>Postcode + Woonplaats:</b> ".$rijquery['postcode']." ".$rijquery['woonplaats']."<br>
					  <b>Mobiel nummer:</b> ".$rijquery['mobielnummer']."<br>
					  <b>E-mailadres:</b> ".$rijquery['emailadres']."<p>";
					  
                      echo "<a href='wijzig.php'>Wijzig</a> of <form action='verwijderen.php' method='GET'>
                      <input type='hidden' name='delete' value='$rijquery[gebruikersnaam]' /><input type='submit' value='verwijderen' /></form>";
                      
				echo "<hr>";
			}
			?>
            <a href="admin.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>Gebruikers tonen</title>
    </head>
</html>

Code verwijderen.php:
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)
		{
			$query = "SELECT gebruikersnaam FROM gebruikers";
			$uitvoer = mysql_query($query);
			$rijquery=mysql_fetch_array($uitvoer);
			
			if($rijquery['gebruikersnaam'] == 'Administrator')
			{
				echo "U kunt de administrator niet verwijderen<p>";
				echo $rijquery['gebruikersnaam'];
			}
			else
			{
			echo "Welkom, administrator!<br>";
			echo "Weet u zeker dat u deze gebruiker wilt verwijderen?";
			}
			
		}
		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 verwijderen</title>
    </head>
</html>
 
Als je in de eerste code nou de echo die de verwijder functie start in een if-statement zet. Waar je controleer of de gegevens van de admin is of van een gebruiker.
Dan kan daar nooit iets mee fout gaan.
 
EDIT:
Heb het inmiddels opgelost.


Ohja, helemaal niet aan gedacht!

Maargoed, nu krijg ik nog steeds niet op 'verwijderen.php' voor elkaar om die gebruiker te verwijderen (waar je bij op de vorige pagina op de knop hebt geklikt.
Ik heb nu dus een andere code geprobeerd, maar hierbij komt er dus te staan dat de gebruiker is verwijderd, terwijl hij niet verwijderd wordt.

Verwijderen.php
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 = "DELETE FROM gebruikers WHERE id='$id'";
			$result = mysql_query($sql);
			if($result)
			{
				echo "Deleted Successfully";
			}
			else
			{
				echo "Error.";
			}
		}
		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 verwijderen</title>
    </head>
</html>

Gebruikerstonen.php
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)
		{
			echo "Welkom, administrator!<br>";
			echo "Via deze pagina kunt u alle gebruikers tonen.<br>";
			echo "U kunt vanuit hier ook de gebruikers wijzigen, of verwijderen.<p>";
			
			$query = "SELECT * FROM gebruikers ORDER BY gebruikersnaam ASC";
			$uitvoer = mysql_query($query);
			while($rijquery=mysql_fetch_array($uitvoer))
			{
				echo "<b>ID:</b> ".$rijquery['id']."<br>
					  <b>Gebruikersnaam:</b> ".$rijquery['gebruikersnaam']."<br>
					  <b>Gebruikerslevel:</b> ".$rijquery['gebruikerslevel']."<br>
					  <b>Voornaam:</b> ".$rijquery['voornaam']."<br>
					  <b>Achternaam:</b> ".$rijquery['achternaam']."<br>
					  <b>Adres:</b> ".$rijquery['adres']."<br>
					  <b>Postcode + Woonplaats:</b> ".$rijquery['postcode']." ".$rijquery['woonplaats']."<br>
					  <b>Mobiel nummer:</b> ".$rijquery['mobielnummer']."<br>
					  <b>E-mailadres:</b> ".$rijquery['emailadres']."<p>";
					  
					  if($rijquery['gebruikerslevel'] == 3)
					  {
					  }
					  else
					  {
						   echo "<a href='wijzig.php'>Wijzig</a> of <form action='verwijderen.php?id=".$rijquery['id']." method='GET'>
                      	   <input type='hidden' name='delete' value='$rijquery[id]' /><input type='submit' value='verwijderen' /></form><p>";
					  }
                      
				echo "<hr>";
			}
			?>
            <a href="admin.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>Gebruikers tonen</title>
    </head>
</html>
 
Laatst bewerkt:
echo op de verwijder.php eens de query.

Ik denk dat je de query zo moet maken
PHP:
$sql = "DELETE FROM gebruikers WHERE id='".$id."'";

nog ff een tip, op verwijder.php zou ik niet alleen controleren of er iemand is ingelogged, maar ook of het de adim is. Want dat is de enige die mag verwijderen!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan