Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML格式的PHP表单,赢得';t连接_Php_Database_Forms - Fatal编程技术网

HTML格式的PHP表单,赢得';t连接

HTML格式的PHP表单,赢得';t连接,php,database,forms,Php,Database,Forms,所以我对PHP和数据库都是新手,所以请原谅我!) 我在HTML文件中创建了一个简单表单: <h1> Créez votre compte ici</h1> <form action="form.php" method="post"> <p id="textdone"> </p> <input type= "text" name="Surname" autocomplete="on" placeholder="Votre nom"

所以我对PHP和数据库都是新手,所以请原谅我!)

我在HTML文件中创建了一个简单表单:

<h1> Créez votre compte ici</h1>
<form action="form.php" method="post">
<p id="textdone"> </p>
<input type= "text" name="Surname" autocomplete="on" placeholder="Votre nom" required/> <br> <br>
<input type= "text" name="Name" autocomplete="on" placeholder ="Votre prenom" required/> <br> <br>
<input type= "email" name="Email" autocomplete="on" placeholder ="Adresse mail" required/> <br><br>
<input type= "text" name="Pseudo" autocomplete="off" placeholder ="Votre pseudo" maxlength="20" required/> <br>
<p>Ajoutez une photo de profil: <input type= "file" /> <br><br></p>
<p> Entrez un mot de passe: <input type="Password" name="Passwird" autocomplete="off"  maxlength="20" required placeholder="Mot de passe"/> <br><br>
Validez votre mot de passe: <input type="password1" autocomplete="off"  maxlength="20" required placeholder="Mot de passe"/> <br><br>
    </p>
<input type="submit" value="Soumettre"/>
</form>
    </body>
Créez votre compte ici








阿胡特兹照片档案:

没有通行证:

Validez votre的通行证:

因此,我的操作文件form.php文件保存在同一个文件夹中(我确保),如下所示:

<?php
define('DB_NAME', 'Matchy');
define('DB_USER', 'root@localhost');
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 'Successful connection';

$surname = $_POST['Surname'];
$name = $_POST['Name'];
$email = $_POST['Email'];
$pseudo = $_POST['Pseudo'];
$password = $_POST['Password'];

$sql = "INPUT INTO users (Name) VALUES ('$name')";
$sql1 = "INPUT INTO users (Surname) VALUES ('$surname')";
$sql2 = "INPUT INTO users (Pseudo) VALUES ('$pseudo')";
$sql3 = "INPUT INTO users (Email) VALUES ('$email')";
$sql4 = "INPUT INTO users (Password) VALUES ('$password')";

if (!mysql_query($sql)) {
    die ('Error: ' .mysql_error());
}
if (!mysql_query($sql1)) {
    die ('Error: ' .mysql_error());
}
if (!mysql_query($sql2)) {
    die ('Error: ' .mysql_error());
}
if (!mysql_query($sql3)) {
    die ('Error: ' .mysql_error());
}
if (!mysql_query($sql4)) {
    die ('Error: ' .mysql_error());
}

mysql_close();
?>

是的,@gmiley提出了一个很好的问题,检查您是否可以使用input,而是在一条语句中对所有值使用insert查询。有关语法,您可以参考以下链接:

让我们在此概述错误

INPUT-INTO
不是有效的MySQL表达式,语法为
INSERT-INTO

然后,您有不匹配的
name=“Passwird”
$\u POST['Password']
,错误报告会告诉您

然后,如另一位成员的评论所述:

这一个也没有提供爱。无输入类型密码1–Hendra Nucleo

应该是
密码
,而不是
密码1

最好使用正确的和官方的引用,并切换到with或,因为
mysql.*
函数已被弃用。官方手册是最好的参考资料

  • 他们不会误导你;-)
那篇教程可能没有提到任何东西,所以这本书本身就是一本不错的读物

它也没有提到任何关于密码的事情

我注意到您可能正在以纯文本形式存储密码。不建议这样做

使用以下选项之一:

  • PHP5.5的函数
  • 兼容性包(如果PHP<5.5)
其他链接:

关于列长度的重要旁注:

如果您决定使用
password\u hash()
或兼容包(如果PHP<5.5),请务必注意,如果当前密码列的长度小于60,则需要将其更改为60(或更高)。手册建议长度为255

您需要更改列的长度,并使用新的哈希重新开始,以使其生效。否则,MySQL将以静默方式失败


编辑:

整个代码块可以很容易地在几行代码中完成,例如,不需要对同一个表进行太多调用:

$sql = mysql_query("

        INSERT INTO users (Name, Surname, Pseudo, Email, Password) 
        VALUES ('$name', '$surname', '$pseudo', '$email', '$password')

        ");

if($sql){
echo "Success!";
}

else { "Error: " . mysql_error(); }

INPUT
是有效的mysql命令吗?它不应该是
插入到用户(Name)值(“$Name”)中吗而不是?也许这只是一个我不熟悉的mysql问题。从哪里生成错误:“Cannot Post/form.php”?我在你上面的代码中没有看到。啊哼
name=“Passwird”
$\u POST['Password']
=没有爱。这本应该告诉你的。@Fred ii-Hat off:D
这本书也没有提供爱。无输入
类型
password1@AndreDebuisne嗯,那个视频需要被拍下来。洛威尔·盖伊·斯迈利没有发现其他东西,你看,这不是我的反对票;-)我没听懂你的意思,你是想说这不是一个真正的答案,更多的是一个评论。好的,我会从下次开始注意。Thanks@Fred-ii-一个简单的问题,为什么在使用过程方法打开连接并选择数据库,然后使用“$var->query('select*FROM table_name')运行查询时没有错误?这肯定是一个比另一个好得多的答案,涵盖了几个优点。这是一个很好的起点。这样做的一个好方法是:尽量提前进行分析和规划,尤其是在数据库设计和技术(语言、代码结构、框架和库)方面。尽管看起来你只是想学很多,但最好早点养成好习惯。它可以最大限度地减少问题,并使其他人在出现问题时更容易帮助您。@HendraNucleo在代码执行过程中,特定错误很可能发生得比特定调用早得多。@gmiley绝对没有错误,使用从数据库中提取的数据进行成功查询。@HendraNucleo如果在过程或面向对象中未使用错误检查,则不会抛出任何内容,除非服务器本身已设置为在不使用错误检查功能的情况下抛出它们。我的意思是在*NIX系统上的sysop级别,我们大多数人都有这么高的访问级别。