我的php Post2 id代替了一个

我的php Post2 id代替了一个,php,sql,Php,Sql,我注册了一个账户,比如:我的,游戏 在我的sql EX中: id名称密码1我的游戏2我的游戏 但我只按了一次提交,它两次广告我的php它在下面,我的html它是一个表单标签输入提交 <?php define('DB_NAME', 'abcd'); define('DB_USER', 'abcd'); define('DB_PASSWORD', '******'); define('DB_HOST', 'localhost'); $link = mysql_connect(DB_HOST

我注册了一个账户,比如:我的,游戏 在我的sql EX中: id名称密码1我的游戏2我的游戏 但我只按了一次提交,它两次广告我的php它在下面,我的html它是一个表单标签输入提交

<?php

define('DB_NAME', 'abcd');
define('DB_USER', 'abcd');
define('DB_PASSWORD', '******');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

 if (!$link)
{
die('Could NOT Connect: rong pass ' . mysql_error(rong_pass));
}
$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected) 
{
die ('Cant\'t use' . DB_NAME. 'abcd' . mysql_error());
}
echo 'log in succes';
$id = $_POST["id"];
$com_name = $_POST["com_name"]; // Since method=”post” in the form
$log_in = $_POST["log_in"];
$password = $_POST["password"];



$sql = "INSERT INTO members (com_name, log_in, password) VALUES                   
('$_POST[com_name]','$_POST[log_in]','$_POST[password]')";
$result = mysql_query($sql);

$result = mysql_query($sql) or die (" could not save record sorry ");

mysql_close();
?>
</ p><a href="demo.html">inapoi</a>

//tot odata ai fost adaugat in baza noastra de date

原因是,您调用了
mysql\u query()
两次

$result = mysql_query($sql);

$result = mysql_query($sql) or die (" could not save record sorry ");
  • 删除一个。

重要旁注:

您当前的代码对用户开放。使用,或者,它们更安全


另外,这个
或die(“无法保存记录对不起”)
对您没有帮助

一旦触发,使用
或die(mysql_error())
获取真正的错误


添加到您的文件的顶部,这将有助于发现错误,如果有任何沿行

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code
登录时:

$sql = "SELECT * FROM users WHERE username = ?";
$stmt = $dbh->prepare($sql);
$result = $stmt->execute([$_POST['username']]);
$users = $result->fetchAll();
if (isset($users[0]) {
    if (password_verify($_POST['password'], $users[0]->password) {
        // valid login
    } else {
        // invalid password
    }
} else {
    // invalid username
}

您运行了两次SQL插入。去掉其中一个,一切都会好起来的!:)

看起来您正在运行两次查询

$result = mysql_query($sql);

$result = mysql_query($sql) or die (" could not save record sorry ");

我们需要查看表单页面中的元素,这些元素将发布到您在问题中发布的脚本中。当然,您需要执行两次查询:
$result=mysql\u query($sql)$result=mysql\u query($sql)
。您有一个sql注入问题。二:-)您易受攻击,您使用的是过时/不推荐的mysql库,如果您在数据库中插入了两个插件,那么此代码将执行两次:因为您调用的是mysql_query()两次。对,我找到并修复了它。现在我正在发布登录检查,以便能够查看该网站。当我将所有这些工作结合起来时,我将不得不回来,看看如何停止注射或其他攻击thx为帮助提供战利品看起来你会忙一段时间,我要去喝点咖啡。哦,整个纯文本密码的内容可能也需要复制粘贴;-)@杰伦:哦,是的。。。。那是下一个。享受咖啡吧@杰罗恩完成了。我也从不把我的“普通”当作额外的“特产”。另外,卡布奇诺更美味。请注意我在答案中的链接:我真的不知道为什么那个问答被删除了。我认为这是一个很好的参考。只有10k+会员可以查看,对不起。@jeroen啊,你会看吗啊!谢谢你的更新。我想我会从他的答案中提取密码,以防它再次消失。
$sql = "INSERT INTO members (com_name, log_in, password) VALUES                   
('$_POST[com_name]','$_POST[log_in]','$_POST[password]')";
$result = mysql_query($sql);

$result = mysql_query($sql) or die (" could not save record sorry ");
$result = mysql_query($sql);

$result = mysql_query($sql) or die (" could not save record sorry ");