Hi, Tuesday, December 30, 2003, 3:02:24 AM, you wrote: CW> Let me give a quick background. I am a very experienced programmer but CW> I haven't done much php and only a little web development in perl. I am CW> now creating a web site with Apache, php and MySQL.
CW> I am having the user fill out a form and then save the data in MySQL. CW> Before I save the data I do a few checks and if there is a problem I do CW> a redirect back to the form and send all the data back so they don't CW> have to fill out the whole form again. Here is some sample code I use CW> to build my redirect url.... CW> $UserID = $_POST['UserID']; CW> $Password1 = $_POST['Password1']; CW> $Password2 = $_POST['Password2']; CW> $Email = $_POST['Email']; CW> $FName = $_POST['FName']; CW> $LName = $_POST['LName']; CW> do checking of data here. CW> if(there is a problem with the data){ CW> $ErrorMsg = "some error"; CW> $redirectStr = "$httpHost/CreateAccount.php?"; CW> $redirectStr .= "UserID=" . urlencode(stripslashes($UserID)); CW> $redirectStr .= "&Password=" . CW> urlencode(stripslashes($Password)); CW> $redirectStr .= "&Email=" . urlencode(stripslashes($Email)); CW> $redirectStr .= "&FName=" . urlencode(stripslashes($FName)); CW> $redirectStr .= "&LName=" . urlencode(stripslashes($LName)); CW> $redirectStr .= "&ErrorMsg=" . urlencode($ErrorMsg); CW> header("Location: $redirectStr"); CW> exit; CW> } CW> My problem is that any field that contains a double quote, all data CW> after the first double quote is missing from the form field. When I CW> look at the long URL I do see a %22 where the " are supposed to be, and CW> all other data is there too. CW> Any Ideas? If there is a better way to do this feel free to suggest a CW> change in my whole method here. Just as a note validation of the UserID CW> has to be done on the server side, to check for duplicates in the MySQL db. CW> I would also welcome insight on standard techniques to make sure the CW> user isn't trying to break the code by sending bogus data. I am already CW> checking that the data isn't longer than I am expecting. CW> Chris W Build the query string then url encode the whole thing in one go and then add it after the ? So I would do like this: $ErrorMsg = "some error"; $redirectStr = "$httpHost/CreateAccount.php?"; $query_string = 'UserID='.$UserID; $query_string .= '&Password=.stripslashes($Password); $query_string .= '&Email=.stripslashes($Email); $query_string .= '&FName='.stripslashes($FName); $query_string .= '&LName='.stripslashes($LName); $query_string .= '&ErrorMsg='.$ErrorMsg; $redirectStr .= urlencode($query_string); header("Location: $redirectStr"); -- regards, Tom -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php