Dave W wrote:
I'll show you all the steps it passes through.
Here's the form:
<form action="proc.php" method="post">
<fieldset>
<label for="Motto">Motto:</label>
<input class="text" type="text" size="25" name="motto"
value="<?php if($form->value("motto") == ""){
echo $session->nationinfo['motto'];
}else{
echo $form->value("motto");
} ?>" />
<label for="desc">Nation Description:</label>
<textarea name="desc" cols="50" rows="5"><?php
if($form->value("desc") == ""){
echo $session->nationinfo['desc'];
}else{
echo $form->value("desc");
}
?></textarea>
<input type="submit" value=" Edit Nation " />
</fieldset>
</form>
It's echoing the nationinfo right, but its not posting it. The motto
also works too. When it's submitted, it goes through the function
procEditNation().
$session->editNation($_POST['motto'], $_POST['desc']);
The editNation function:
function editNation($motto, $desc){
global $database, $form;
if($motto){
$field = "motto";
$motto = htmlspecialchars($motto);
$database->updateNationField($this->username,"motto",$motto);
}
if($desc){
$field = "desc";
$desc = htmlspecialchars($desc);
$database->updateNationField($this->username,"desc",$desc);
}
return true;
}
Then finally the updateNationField function:
function updateNationField($username, $field, $value){
$q = "UPDATE nations SET ".$field." = '$value' WHERE username =
'$username'";
return mysql_query($q, $this->connection);
}
I just don't know what's wrong since it's posting the motto (which is
just a text-type input) and not the description (which is a textarea). I
echo'd out the mysql queries and excuted them myself from what echo'd
out and it's selecting the desc column just fine.
That definitely all looks fine.
If you do:
echo 'post vars: ' . print_r($_POST, true) . '<br/>';
does it show up in post at all?
--
Postgresql & php tutorials
http://www.designmagick.com/
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php