【问题标题】:PHP data saving to databasePHP数据保存到数据库
【发布时间】:2014-01-15 22:31:37
【问题描述】:

==> 索引.php:

<form action="anotherpage.php" method="POST"/>
<br>Username: <input type="text" name="user_name"><br><br>
Password: <input type="password" name="pwd"><br><br>
Repeat:   <input type="password" name="pwd2"><br><br>
<input type="radio" name="sex" value="male">Male<br>
<input type="radio" name="sex" value="female">Female<br><br>
<input type="submit" value="Submit">
</form>

这是我的 index.php,我创建了一个“anotherpage.php”。

==> 另一个页面.php

<?php

define('DB_NAME', 'test');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');

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

if (!$link) {
    die('Could not connect: '. mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected) {
    die('Can\'t use '.DB_NAME.': '.mysql_error());
}

echo 'Connected successfully!<br>';

$username = mysql_real_escape_string($_POST['user_name']);
$password = mysql_real_escape_string($_POST['pwd']);
$sexuality = mysql_real_escape_string($_POST['sex']);

$sql = "INSERT INTO users (username, password, sexuality) VALUES ('".$username."','".$password."','".$sexuality."')";

if (!mysql_query($sql)) {
    die('Error: '. mysqli_error($con));
}

if(isset($_POST['user_name']) &&! empty($_POST['user_name']) && isset($_POST['pwd2']) &&! empty($_POST['pwd2']) && isset($_POST['pwd']) &&! empty($_POST['pwd']) && isset($_POST['sex']) &&! empty($_POST['sex']) or die('PART\'S ARE NOT FILLED!')) 
{
    $user_name = $_POST['user_name'];
    $user_name_up = strtoupper($user_name);
    $pwd = $_POST['pwd'];
    $pwd2 = $_POST['pwd2'];
    $sex = $_POST['sex'];

    $fp = fopen("formdata.txt", "a");
    $savestring = $user_name . "," . $pwd.",".$pwd2.",".$sex." - ";
    fwrite($fp, $savestring);
    fclose($fp);
}
if($pwd == $pwd2 or die('DIFFERENT PASSWORDS!'))
{
    echo $user_name_up.' ALL TAKEN!<BR>THANK YOU!!!<br><h1>You data has been saved!</h1>';
}


?>

我现在可以将输入保存到数据库。但我想如果我的 if 陈述成真,我想这样做。否则,即使密码不匹配,我也会将输入保存到数据库中。我该怎么做?

如果我更改代码的位置,我会收到错误消息。

从现在开始非常感谢! :)

【问题讨论】:

  • 好吧,您打开一个文本文件,将数据写入文件,然后在确定一切正常后关闭它。 php有file functions所以我真的不明白你的问题出在哪里?
  • 您可能想研究使用诸如MySQL 之类的数据库。
  • 嗯,有fwrite()file_put_contents() 你可以用谷歌搜索。您一定会在 Google 上找到 OODLES ;-)
  • 当你使用它的时候,检查flock函数
  • 各位好,谢谢!我发现了如何将它们保存到文件中,现在的问题是我无法保存到数据库... :D 编辑后的帖子!等待评论...

标签: php database save


【解决方案1】:

请注意sql注入,请阅读善待How can I prevent SQL injection in PHP?

sql放错了,下面的部分必须放在和你保存文件的地方一样的if语句中。

$sql = 'INSERT INTO users (username, password, sexuality) VALUES ("$_POST[user_name]","$pwd","$sex")';

if (!mysql_query($sql)) {
      die('Error: '. mysqli_error($con));
}

您还更改了引号并添加字符串连接以使其正常工作

$sql = "INSERT INTO users (username, password, sexuality) VALUES ('".$_POST['user_name']."','".$pwd."','".$sex."')";

if (!mysql_query($sql)) {
      die('Error: '. mysqli_error($con));
}

但请注意上面的代码仍然不安全,下面的代码更安全一些

$username = mysql_real_escape_string($_POST['user_name']);
$password = mysql_real_escape_string($pwd);
$sexuality = mysql_real_escape_string($sex);

$sql = "INSERT INTO users (username, password, sexuality) VALUES ('".$username."','".$password."','".$sexuality."')";

将密码直接存入数据库是不明智的,请阅读关注How to change a SALT password in a database using PHP?

【讨论】:

    猜你喜欢
    • 2016-05-15
    • 2014-04-23
    • 1970-01-01
    • 2012-09-29
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 2021-10-27
    相关资源
    最近更新 更多