Probleem met data verzenden naar database

Status
Niet open voor verdere reacties.

bonkel007

Gebruiker
Lid geworden
5 mei 2011
Berichten
77
Ik gebruik dit stuk als formulier:

PHP:
<?php
include("checklogin.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>title</title>
</head>

<body>

<a href="ngebruiker.php">Nieuwe Gebruiker</a><br />
<form action="nieuwegebruiker.php" method="post">
Fucntie:<select name="functie"><br />
<option name="one" value="one">Beheerder</option>
<option name="two" value="two">Gebruiker</option>
</select><br />
Gebruikersnaam: <input type="text" name="user" /><br />
Wachtwoord:<input type="password" name="ww" /><br />
<input type="submit" value="Verzend"/>
</form>

</body>
</html>

En dit stuk is het script nieuwegebruiker.php:

PHP:
<?php

include("checklogin.php");

$con = mysql_connect("***","***","***");
if (!$con)
  {
  die('Kan niet verbinden ' . mysql_error());
  }

mysql_select_db("ticket", $con);

$nuser="INSERT INTO users (Functie, Login, Wachtwoord)
VALUES
('$_POST[functie]','$_POST[user]','$_POST[ww]')";

if (isset($_POST['one']))
{   $result=mysql_query($nuser,$con);

  if (!$result)
  {
    die('Fout ' . mysql_error());
  }
   echo "Beheerder Toegevoegd";
}

if (isset($_POST['two']))
{   $result=mysql_query($nuser,$con);

  if (!$result)
  {
    die('Fout ' . mysql_error());
  }
  echo "Gebruiker Toegevoegd";
}


mysql_close($con);
?>

Mijn vraag waarom wil het script dit niet verzenden als ik op verstuur klik geeft hij verder geen foutmelding alleen een lege pagina.
 
Je controleert of de waarde van een select is geset, echter als je in nieuwegebruiker.php de request print dan zul je zien dat de name van een <option> tag niet verstuurd wordt, maar alleen de waarde van de option en de name van de select.
Array ( [functie] => one [user] => [ww] => )

Je zult dus anders moeten controleren of je formulier verzonden wordt.
Hoewel de grote browsers het allemaal doen, zijn er browsers die niet alle names correct verzenden en is het dus veiliger te controleren of de server een request ontvangt met de POST method.

PHP:
    if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	$result=mysql_query($nuser,$con);
	if (!$result)
	{
		die('Fout ' . mysql_error());
	}
	echo "Beheerder Toegevoegd";
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan