Deron,
By doing a Post to itself, this form will cause an error everytime someone
clicks the Back button on the browser (after the first post, of course).
What I do is have two forms, first invoked with a get via hot link or
redirect.
Form_1.php checks to see if variable $s has been passed (in the URL, of
course), if not it initializes and displays the form. The Form action on
this displayed form indicates to Post to Form_2.php.
Form_2.php displays nothing, just processes variables on the form. This one
would insert the row, and to avoid thread problems (multiple simultaneous
inserts, from multiple users) has a unique autoincrement variable as the
primary key to the table (MySQL will make the insert thread safe). When
the insert is successful this routine redirects the browser back to form_1
like so;
Header(Location: Form_1.php?s=$insertid);
Exit;
When control is passed to Form_1.php again, this time the variable $s is set
and the row is retrieved from the table (instead of using initialization
values) and displayed in the form giving confirmation of the updates that
were done.
Because Form_2 redirects to Form_1, Form_1 is the only one on the browser
history list(each separate instance is tracked, of course), and it is always
entered via a Get, meaning that the browser does include the passed variable
values in the history list (it doesn't do this with a Post). And the Back
button works. In the Post error you are working toward, the browser
complains that it does not have a record of the Post variable values (the
Data Has Expired).
There may be other ways to deal with this, but this is one way that I have
found that works.
Good Luck,
Warren Vail
-Original Message-
From: Deron [mailto:[EMAIL PROTECTED]]
Sent: Friday, December 21, 2001 11:38 PM
To: [EMAIL PROTECTED]
Subject:[PHP] Talkback or community type participation.
Hi there!
I have this script I just made based on a tutorial I found online and was
wondering if there was a better way to do this or not. Everything works
great so far except for a couple little things. Once the $submit is clicked
and runs the INSERT data into the table... I am looking to be able to have
the page auto refresh and display the new entry as well as the form again.
Here's my current code: (I have this built into the main review page via an
include. The entire page can be viewed here:
http://www.metalages.com/2002/reviews/reviews-test.php?band=Evergreyalbum=I
n%20Search%20of%20Truth
Feel free to post a dummy message, nothing is live yet, all in test mode :)
you'll notice once the entry is submitted also, if you try to refresh the
page it wants to readd the data again. any help or guidance appreciated, I
am a self professed still learning this stuff! kinda guy.
?php
if ($submit) {
// Process Form
$DBconn = mysql_connect(localhost, user, pass);
mysql_select_db(databasename, $DBconn);
if (!$DBconn) {
echo( pUnable to connect to the .
database server at this time./p );
exit();
}
$sql = INSERT INTO talkback (band_id, album_id,
talkback_name,talkback_email,talkback_comments) VALUES
('$currentid[0]','$currentid[1]','$talkback_name','$talkback_email','$talkba
ck_comments');
$result = mysql_query($sql);
echo Thank you! Information entered.\n;
} else {
// display form
?
form method=post action=?php echo $PHP_SELF . ?band=$band .
album=$album?
div align=centerbName/Nickname:/bbr
input type=Text name=talkback_namebr
bEmail (optional):/bbr
input type=Text name=talkback_emailbr
bComments:/bbr
textarea name=talkback_comments cols=50 rows=5/textarea
br
input type=Submit name=submit value=Speak Your Metal!
/div
/form
?php
} // end if
?
Deron
www.metalages.com
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]