Hallo iedereen !

Ik heb een fout in een van mijn PHP pagina's maar ik kom er niet uit.
Willen jullie misschien even een handje helpen.
Bij voorbaat dank!


<?
//ingelogt ? chek start
if (isset($_COOKIE['username'])){
//ingelogt ? chek stop
?>
<?
// artikel toevoegen php script start
if(mysql_connect('localhost','xxx','xxx')) 
  { 
    mysql_select_db('michelrakh_gfex') or die(mysql_error()); 
  } 
else 
  { 
    echo 'Kan geen verbinding maken'; 
    exit; 
  } 
  
 $soort = $_POST['soort'];
 $merk = $_POST['merk'];
 
 if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
 { 
 
 $aFouten = array();
 if($_POST['soort'] == '')
   {
	   $aFouten[] = 'Je Hebt geen soort ingeveuld';
   }
   
  if($_POST['merk'] == '')
  {
	  $aFouten[] = 'Je hebt geen merk ingevuld';
  }
  if($_POST['type'] == '')
  {
	  $aFouten[] = 'Je hebt geen merk ingeveuld';
  }
  if($_POST['artikelnummer'] == '')
  {
	  $aFouten[] ='Je hebt geen artikelnummer ingeveuld';
  }
  
  
  
  if(count($aFouten) != 0)
  {
	  echo 'De volgende fouten zijn opgetreden: <br/><br/>';
	  for($Fi = 0; $Fi <count($aDouten); $Fi++)
	  {
		  echo $aFouten[$fi].'<br/>';
	  }
	  echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
  }
  else
  {
	  mysql_query("INSERT INTO Voorraad (Soort,Merk,Type,Artikelnummer) VALUES ('".addslashes($_POST['soort'])."','".addslashes($_POST['merk'])."','".$_POST['Type']."','".addslashes($_POST['Artikelnummer'])."')") or die (mysql_error()); 
	  echo 'De gegevens zijn succesvol opgeslagen in de database<br/><a href="artikeltoevoegen.php">klik hier om terug te gaan'; 
	  } 
	    } 
else 
  { 

// artikel toevoegen php script stop
?>
<H1>Artikel toevoegen</H1>
<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
<table><tr><td>
<select name="soort"><option value="">Soort</option>
<?PHP
      $sql = "SELECT Soort FROM Soort ORDER BY Soort ASC";
      $query = mysql_query($sql);
      while($rij = mysql_fetch_object($query)) {
       
       $soort = htmlspecialchars($rij->Soort);
       echo "<option value=\"".$soort."\">".$soort."</option>\n";
      }
?>
</select>
</td></tr><tr><td>
<select name="merk"><option value="">Merk</option>
<?PHP
      $sql = "SELECT Merk FROM merken ORDER BY Merk ASC";
      $query = mysql_query($sql);
      while($rij = mysql_fetch_object($query)) {
       
       $merk = htmlspecialchars($rij->Merk);
       echo "<option value=\"".$merk."\">".$merk."</option>\n";
      }
?>

</select>
</td></tr><tr><td>
Type:<br /> <input type="text" name="Type"><br />
Artikelnummer:<br /> <input type="text" name="Artikelnummer"><br /> 
</td></tr>
<tr><td><input type="submit" name="verzenden" value="verzenden"></td></tr>
</table>
</form>
<?
//ingelogt ? error start
} else {
echo "Je bent niet ingelogd.";
}
//ingelogt ? error stop
?>


We kunnen veel, maar we kunnen met onze menselijk vermogen geen PHP-code parsen.
Dus is het niet handiger dat je vertelt wat er gebeurt?
Welke fout wordt er dan weergeven?

Aar was me net voor.
Browser IE: kan pagina niet weergeven

Dreamweaver CS5: There is a syntax error on line 102. Code Hinting may not work until you fix this error.
Gevonden! op regel 27, 36 en 40 spel je 'Gevuld' verkeerd.

Nee even serieus, behalve dat het een eitje is om een cookie aan te passen en dus in te loggen op dit systeem, is het script vatbaar voor Sql injectie, je bij een echo beter een enkelvoudige apostrof kunt gebruiken, de foutenafhandeling mist bij query's, <?=$_SERVER['PHP_SELF']?> toch niet de beste manier is om een formulier te versturen, tabellen niet gemaakt zijn voor formulieren, variabelen meervoudig kopiëren overbodig is, en ik zojuist vast nog wel e.e.a over het hoofd gezien heb, snijd je jezelf in de hand door op regel 48 hoofdletters te gebruiken en 2 regels verderop kleine letters toe te passen. Ik heb het vermoeden dat het daar fout gaat.

Succes!
Je script zit vol met lekken, je post je wachtwoord inclusief gebruikersnaam en db, en de fout die je zoekt zit hem in een } ;) Je vergeet namelijk de else af te sluiten bij if request_method=post ;) Dus op regel 100 nog een } erbij.

Reageren