HTML格式的PHP表单,赢得';t连接
所以我对PHP和数据库都是新手,所以请原谅我!) 我在HTML文件中创建了一个简单表单: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"
<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级别,我们大多数人都有这么高的访问级别。