[thelist] stoopid PHP form problem

Stephen Rider evolt_org at striderweb.com
Tue Oct 23 15:09:06 CDT 2007

I've been beating my head against this for a long time now.  I  
suspect it's some stupidly simply thing I'm missing, and thought some  
extra eyes might flush it out quickly.

I have a form (generated by PHP) that calls the same page for  
processing.  At the top of the page is a bit of code that checks for  
POST and does its thing if there is POST data.

The generated HTML for the form is thus:
<form action="dunce.php" method="post">
	<h2>Dunce Cap</h2>
			<th>Tag Name</th><th>Image File</th><th>Title (optional)</th></tr>
			<td><input type="text" name="dunce_options[commtags][0][name]"  
value="dunce" /></td>
			<td><input type="text" name="dunce_options[commtags][0][image]"  
value="dunce.jpg" /></td>
			<td><input type="text" name="dunce_options[commtags][0][title]"  
value="Dunce!" /></td>
			<td><input type="text" name="dunce_options[commtags][1][name]"  
value="" /></td>
			<td><input type="text" name="dunce_options[commtags][1][image]"  
value="" /></td>
			<td><input type="text" name="dunce_options[commtags][1][title]"  
value="" /></td>
<div class="submit">
	<input type="submit" name="dunce_options_submit" value="Update  
Options &raquo;" /></div>

The PHP that handles the form is this:
if ($_POST['dunce_options_submit']) {
	$tags = array();
	for ($i = 0; $i < count($dunce_options['commtags']); $i++) {
		$tag = $dunce_options['commtags'][$i];
		if (!empty($tag['name']) && !empty($tag['image'])) {
			$tag['name'] = htmlentities($tag['name']);
			$tag['image'] = htmlentities($tag['image']);
			$tag['title'] = htmlentities($tag['title']);
			$tags[] = $tag;
	$dunce_options['commtags'] = $tags;
	update_option('dunce_options', $dunce_options);
	<p><strong>Options Saved</strong></p>

As you can see this is trying to post a multidimensional array to the  
database.  The entries should be something like (for example):


...but it seems the $tags[] array never gets populated.  As the form  
automatically populates with default values, it seems that _at least_  
that should get posted!  The entire array that gets posted to  
dunce_options in the database is this:


If anyone can help I would appreciate it.  Thanks.


More information about the thelist mailing list