Kan iemand de fout hierin vinden?


voegtoe.php

<?php
if (empty($_POST)){
//formulier
?>
<h1>GEREEDSCHAP</h1>
<h3>Toevoegen</h3>
<form action="voegtoe.php" method="post">
<input type="number" name="id" placeholder="id"><br />
<input type="text" name="naam" placeholder="naam"><br />
<input type="number" name="prijs" placeholder="prijs"><p />
<input type="Submit">
</form>
<?php
}else{
//verwerking
 include("connect.php");  
      $id=$_POST["id"];
      $naam=$_POST["naam"];
      $prijs=$_POST["prijs"];
      $sql = "INSERT INTO `gereedschap` (`id`, `naam`, `prijs`) 
            VALUES ('".$id."', '".$naam."', '".$prijs."');";
      $result = $conn->query($sql);
 header('Location: toon.php');
}
?>
verander.php
<?php
  if (empty($_POST)){
   ?>
                <form action="verander.php" method="post">
                               <input type="number" name="id" placeholder="id"><br />
                               <input type="text" name="naam" placeholder="naam"><br />
                               <input type="number" name="prijs" placeholder="prijs"><p />
                               <input type="submit">
                </form>
                              
                              
                              
                <?php  
  }
  else{
    //verwerking van de POST
    $id = $_POST['id'];
    $naam = $_POST['naam'];
    $prijs = $_POST['prijs'];
    include('connect.php');
    $sql = "UPDATE `gereedschap` SET `id` = '".$id."', `naam` = '".$naam."', `prijs` = '".$prijs."' WHERE `gereedschap`.`id` = ".$id;
    $result = $conn->query($sql);
               
                //terug naar toon.php
                  header("Location: toon.php");
  }
?>


verwijder.php

<?php
  if (empty($_POST)){
    ?>
                               <form action="verwijder.php" method="post">
                               <input type="number" name="id" placeholder="id"><br />
                               <input type="submit">
                </form>
                <?php  
  }
  else{
    //verwerking van de POST
    $id = $_POST['id'];
    include('connect.php');
                $sql="DELETE from gereedschap WHERE id = '".$id."'";  
                               $result = $conn->query($sql);
               
                //terug naar toon.php
                  header("Location: toon.php");
  }
 
 
?>



connect.php

<?php
$servername = "localhost";
$username = "toetssql";
$password = "toetssql";
$dbname = "toetssql";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
 
?> 


toon.php

<?php
include ("connect.php");
 
$sql = "SELECT id, naam, prijs FROM gereedschap";
$result = $conn->query($sql);
//uitzetten php want we gaan de tabel en de tabel header maken (in html)
?>
<table border="1">
  <thead>
    <th>id</th><th>naam</th><th>prijs</th>
  </thead>
  <tbody>
  <?php
  //php gaat weer aan omdat het uitlezen van de records een php-gebeuren is
  if ($result->num_rows > 0) {
      // output data of each row
      while($row = $result->fetch_assoc()) {
          echo "<tr><td>" . $row["id"]. "</td><td>" . $row["naam"]. "</td><td>" . $row["prijs"]. "</td></tr>";
      }
  } else {
      echo "0 results";
  }
  $conn->close();
  ?>
</tbody>
 
</table>


Zou je de code tussen [code] tags willen plaatsen (zie 'Veelgestelde Vragen') en een duidelijke titel gebruiken, door je bericht te wijzigen? Alvast bedankt.

Verder zijn we benieuwd wat er gebeurt.
Wat waarschijnlijk niet werkt is de redirect naar toon.php. Dit komt omdat je headers verstuurd NADAT je output (content) verstuurd hebt. Een splitsing van je code in twee gedeeltes is nodig om dit probleem op te lossen:

Deel 1: Je php applicatie MAAR zonder ook maar enige output. enigste uitzondering kan zijn het weergeven van een fatale foutmelding waarna een <?php exit(); ?> geplaatst is.

Deel 2: De output (template) van je pagina.

Je krijgt dan iets als:

<?php

// DEEL 1: start applicatie

// initialisatie van variabelen
$naam = '';

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	$naam = $_POST['naam'];

	// validatie
	if(strlen($naam) > 1)
	{
		header('Location: toon.php');
		exit;
	}
}

// DEEL 2: De OUTPUT van je applicatie. Hier geen PHP meer behalve om variabelen te echo-en 
// (al dan niet met een foreach)
?>
<doctype!>
<html>
	<head>
		<title>Mijn Formulier</title>
	</head>
	<body>
		<form action="" method="post">
			<input type="text" name="name" value="<?php echo $naam; ?>">
			<button>Verzenden</button>
		</form>
	</body>
</html>
?>
Ik heb de titel inmiddels zelf aangepast naar 'Script werkt niet naar behoren'.
Gelieve in het vervolg zelf een duidelijke titel in te voeren die je probleem of vraagstelling aangeeft.

Reageren