NathanS Posted July 28, 2008 Share Posted July 28, 2008 Hi guys, Got a highly random problem which I can't figure out - have an "edit profile page" where you can fill in info about yourself, and it writes back to a MySQL database. All fields work fine apart from two: Gender and Website. The code is below - anyone any ideas what on earth I'm doing wrong? Thanks! if ($_POST["submit"]) { $form["fullname"] = htmlspecialchars(trim($_POST["fullname"])); $form["location"] = htmlspecialchars(trim($_POST["location"])); $form["website"] = htmlspecialchars(trim($_POST["website"]));; $form["gender"] = htmlspecialchars(trim($_POST["gender"]));; $form["favbands"] = htmlspecialchars(strip_tags(trim($_POST["favbands"]))); $form["bio"] = htmlspecialchars(strip_tags(trim($_POST["bio"]))); $form["level"] = (int)$_POST["level"]; if ($form["gender"] && $form["gender"] != "M" && $form["gender"] != "F") { $form["gender"] = ""; } if ($_FILES["avatar"]["name"]) { $size = getimagesize($_FILES["avatar"]["tmp_name"]); if ($size[0] <= 100 && $size[1] <= 100 && $_FILES["avatar"]["size"] <= 112640) { $current_av = $user->get_avatar(); if (file_exists($current_av) && $current_av != "images/default_av.png") { unlink($current_av); } $new_av = "images/avatars/".$user->_id.".".substr(strrchr($_FILES["avatar"]["name"], '.'), 1); move_uploaded_file($_FILES["avatar"]["tmp_name"], $new_av); } } $user->_fullname = $form["fullname"]; $user->_location = $form["location"]; if (ereg("^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\._\?\,\'/\\\+&%\$#\=~\-])*$", $form["website"]) || (!$form["website"])) { $user->_website = $form["website"]; } $user->_gender = $form["gender"]; $user->_favbands = $form["favbands"]; $user->_bio = $form["bio"]; if ($me->_level >= 3) { $user->_level = $form["level"]; } $user->update_profile(); $saved = true; And the writing back to database: function update_profile() { @mysql_query("update `members` set `fullname` = '".sanitize_sql_string($this->_fullname)."', `location` = '".sanitize_sql_string($this->_location)."', `birthday` = '".sanitize_sql_string($this->_birthday)."', `website` = '".sanitize_sql_string($this->_website)."', `gender` = '".sanitize_sql_string($this->_gender)."', `favbands` = '".sanitize_sql_string($this->_favbands)."', `bio` = '".sanitize_sql_string($this->_bio)."', `level` = ".$this->_level." where `id` = ".$this->_id." limit 1"); } Quote Link to comment https://forums.phpfreaks.com/topic/116952-two-fields-wont-write-back-to-database/ Share on other sites More sharing options...
ignace Posted July 28, 2008 Share Posted July 28, 2008 have you tried using print_r() on the posted data, to see if a value is set for it? did you try to echo both variables, and see that they contain a value before being written to database (echo at the latest possible moment, just before everything is written to the database)? Quote Link to comment https://forums.phpfreaks.com/topic/116952-two-fields-wont-write-back-to-database/#findComment-601413 Share on other sites More sharing options...
NathanS Posted July 28, 2008 Author Share Posted July 28, 2008 yep, all fine. Quote Link to comment https://forums.phpfreaks.com/topic/116952-two-fields-wont-write-back-to-database/#findComment-601427 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.