在php中按“刷新”按钮后停止插入数据库
我有一个php代码,我正在数据库中执行inset操作。Insert进行得很好,但问题是当我在Insert操作后按刷新按钮时,相同的数据在数据库中一次又一次地上传。我通过创建会话变量并在该会话中存储submit值并比较这两个值来尝试这一点。如果两个值都匹配,则不会执行插入操作,反之亦然。这是我的密码:-在php中按“刷新”按钮后停止插入数据库,php,mysql,Php,Mysql,我有一个php代码,我正在数据库中执行inset操作。Insert进行得很好,但问题是当我在Insert操作后按刷新按钮时,相同的数据在数据库中一次又一次地上传。我通过创建会话变量并在该会话中存储submit值并比较这两个值来尝试这一点。如果两个值都匹配,则不会执行插入操作,反之亦然。这是我的密码:- case 'insert' : $_SESSION['value']=$_POST['Submit'] if($_SESSION
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";}
案例“插入”:
$\会话['value']=$\发布['Submit']
如果($\会话['value']!=$\发布['Submit'])
{
如果($_文件[“上载”][“键入”]=“图像/gif”)
||($_文件[“上载”][“键入”]=“图像/jpeg”)
||($_文件[“上载”][“类型”]=“图像/png”)
&&($_文件[“上载”][“大小”]<10000))
{
$image=$\u文件[“上载”][“名称”];
移动上传的文件($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\);
echo$sql=“插入到用户集中
lastname=“$last_name”,
firstname=“$first_name”,
性别=“$SEXT”,
image=“$image”,
嗜好=“$HOBIDE”,
地址=“$address”,
cityy=“$city”,
用户_date=now()”;
mysql_查询($sql);
echo$user_id=mysql_insert_id();
$sql=“插入登录集”
用户标识=“$user\u id”,
用户名=“$user\u name”,
密码=“$pass”;
mysql_查询($sql);
//$_SESSION['submit']=$_POST['submit'];
}
其他的
{
echo“文件必须是JPEG、GIF或PNG格式且小于10000 kb”;
}
}
否则{echo“数据已提交”;}
请告诉我我做错了什么或我的逻辑是错误的…我只想在会话中执行此操作…您的答案非常受欢迎您可以通过更改流程避免重新提交: HTML或form.php-无论您将其命名为什么
<form action="submit_process.php" method="POST">
<input name="username">
<input name="password">
<!-- blah blah blah -->
</form>
注意
您的代码中存在各种严重问题,但这需要您去解决。您在这段代码中似乎有严重问题,因为您没有。另外,不推荐使用的
mysql\u查询
不应该在新的应用程序中使用,因为它将从PHP的未来版本中删除。一个现代的替代品。一定要有一个避免犯此类错误的指南。同样值得注意的是:明文密码非常糟糕。这一行似乎与您的第一个条件语句if($\u SESSION['value']!=$\u POST['Submit'])
相矛盾,因为您正在显式设置$\u SESSION,所以您永远不会输入第一个if
块['value']
到$\u POST['Submit']
就在它之前。我应该做什么…寻找代码我不想使用重定向功能来做这件事…如果你知道如何在会话thn的帮助下做这件事,请告诉我
$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');
}