我在php中有一段代码,正在对数据库执行插入操作。插入操作进行得很顺利,但问题是当我在插入操作后按下刷新按钮时,相同的数据会一次又一次地上传到数据库中。我通过创建会话变量并在该会话中存储提交值并比较这两个值来尝试此操作。如果两个值都匹配,则不会进行插入操作,反之亦然。这是我的代码:-
case 'insert' :
$_SESSION['value']=$_POST['Submit']
if($_SESSION['value']!=$_POST['Submit'])
{
if (($_FILES["upload"]["type"] == "image/gif")
|| ($_FILES["upload"]["type"] == "image/jpeg")
|| ($_FILES["upload"]["type"] == "image/png" )
&& ($_FILES["upload"]["size"] < 10000))
{
$image= $_FILES["upload"]["name"];
move_uploaded_file($_FILES["upload"]["tmp_name"],"E:/wamp/www/prakash/file_upload/" . $_FILES["upload"]["name"]);
echo $sql="INSERT INTO user SET
lastname='$last_name',
firstname='$first_name',
sex='$gender',
image='$image',
hobbies='$hobby',
addres='$address',
cityy='$city',
user_date=now()";
mysql_query($sql);
echo $user_id=mysql_insert_id();
$sql="INSERT INTO login SET
user_id='$user_id',
username='$user_name',
password='$pass'";
mysql_query($sql);
// $_SESSION['submit'] = $_POST['Submit'];
}
else
{
echo "Files must be either JPEG, GIF, or PNG and less than 10,000 kb";
}
}
else{echo"data has been already Submitted";}
请告诉我我做错了什么,或者我的逻辑是错误的。。。。我只想用会话来做这件事。。。您的回答完全欢迎
您可以通过更改流来避免重新提交:
HTML或form.php-无论您将其命名为什么
<form action="submit_process.php" method="POST">
<input name="username">
<input name="password">
<!-- blah blah blah -->
</form>
submit_process.php
$sql = "INSERT INTO `TABLE_NAME` (`username`,`password`) values ('".$_POST['username']."', '".$_POST['password']."')";
if(mysql_query($sql))
{
header('Location: success.php');
}
else
{
header('Location: fail.php');
}
注意
您的代码存在各种严重问题,但这些问题有待您解决。