Hallo,

PHP zijkt dat hij een $_POST variabele niet kan vinden, terwijl ie toch echt bestaat.
Kijk maar:

---pagina1.php---

<h1>e-Expositie</h1>
<form action="pagina2.php" method="POST" name="formulier" target="_self">
<?php
	$materiaal = $_GET['materiaal'];
	$query = 'SELECT * FROM materiaal WHERE id = \'' . $materiaal . '\'';
	$result = mysql_query($query);
	while ($row = mysql_fetch_array($result)){
		extract($row);
		echo '<p><input class="formulier" type="text" name="materiaal" size="5" value="' . $id . '" disabled> Het ID-nummer</p>';
		echo '<p><input class="formulier" type="text" name="naammateriaal" size="20" value="' . $naammateriaal . '"> Het materiaal</p>';
	}
?>
<p><input class="formulier" type="reset" value="Reset"> <input class="formulier" type="submit" value="Verzenden"></p>
</form>

Output:

<h1>e-Expositie</h1>
<form action="pagina2.php" method="POST" name="formulier" target="_self">
<p><input class="formulier" type="text" name="materiaal" size="5" value="1" disabled> Het ID-nummer</p>
<p><input class="formulier" type="text" name="naammateriaal" size="20" value="Aquarel"> Het materiaal</p>
<p><input class="formulier" type="reset" value="Reset"> <input class="formulier" type="submit" value="Verzenden"></p>
</form>


---pagina2.php---

<h1>e-Expositie</h1>
<?php
	$materiaal = $_POST['materiaal'];
	$naammateriaal = $_POST['naammateriaal'];
	$query = 'UPDATE materiaal SET naammateriaal = \'' . $naammateriaal . '\' WHERE id = \'' . $materiaal  . '\'';

	#als test:
	echo $query;
	echo '<pre>';
	print_r ($_POST);
	echo '</pre>';

	$result = mysql_query($query);
?>
<p>Het materiaal is aangepast.</p>

Output:

<h1>e-Expositie</h1>
<br />
<b>Notice</b>:  Undefined index:  materiaal in <b>/home/***/domains/***.***/public_html/***/***/pagina2.php</b> on line <b>3</b><br />
UPDATE materiaal SET naammateriaal = 'Aquarel' WHERE id = ''
<pre>
Array
(
    [naammateriaal] => Aquarel
)
</pre>
<p>Het materiaal is aangepast.</p>

[edit]
Er is een MySQL connectie.
Even niet beginnen over beveiligingslekken, want die zitten er, maar dit is voor de administrator, dus dit is beveiligd, en hij/zij weet nog niet eens wat mySQL is, dus er zal geen geklooi komen.
[/edit]
read = lezen, only = alleen dus dan is het wel zichtbaar, maar niet te wijzigen.

[edit]@ Jan, volgens mij kan je met het ook op xHTML beter: readonly="readonly" nemen ipv readonly="true"[/edit]
okay thnx
@ Boaz: weet ik, maar ik schrijf geen xHTML ;-) Vanwege betere crossbrowser CSS schrijf ik HTML4.0 strict.

Reageren