我刚开始使用php,我想知道如何制作注册表单。我不确定如何将值添加到数据库中。我正在使用phpMyAdmin作为数据库。
我有输入:
<div id="registerSpace">
<form id="formulaireInscription2" name="formSignup" method="post" action="signUp.php">
<div class="registerUsername"><input type="text" placeholder="Username" name="txtUserName" /><span class="textInputs"></span></div>
<div class="registerNom"><input type="text" placeholder="First name" name="txtNom" /><span class="textInputs">First name</span></div>
<div class="registerPrenom"><input type="text" placeholder="Last name" name="txtPrenom" /><span class="textInputs">Family name</span></div>
<div class="registerPassword"><input type="password" placeholder="Password" name="txtPassword" /><span class="textInputs">Password</span></div>
<div class="dropLogonContentOptions"><input type="submit" value="Sign Up" name="send" />
</form>
</div>
我把所有代码都放在signUp.php中。
在phpMyAdmin中,我的数据库名为 jleggett_colourful ,我的表(用户,密码,名字blabla)是: t_usagers 。
在那里,我有u_id(自动增量,仅限数字),u_nom(姓氏),u_prenom(名字),u_courriel(邮件,也是用户名!)和u_password。
将数据库添加到数据库的最佳方法是什么?我在这里有这个代码:
<?php
session_start();
include 'inc/define.inc.php';
include 'inc/fct.inc.php';
if (isset($_POST["txtUserName"]) && isset($_POST["txtNom"]) && isset($_POST["txtPrenom"]) && isset($_POST["txtPassword"]))
{
// Ouvre une connexion au serveur MySQL
$connection = mysql_connect(NOM_SERVEUR, USER_NOM, USER_PASSWORD) or die("Impossible de se connecter : " . mysql_error());
if (!$connection) {
fin_perso('Problème de connexion au serveur : '. ' ---' . NOM_SERVEUR. '- - -' . USER_NOM. '- - -' . USER_PASSWORD. '- - - ' . mysql_error(), 'erreur_bd_');
}
// S�lectionne une base de données MySQL
if (!mysql_select_db(NOM_BD))
{
fin_perso('Problème de connexion à la base de données : ' . mysql_error(), 'erreur_bd');
}
$sql = "INSERT INTO t_usager (u_nom, u_prenom, u_password) VALUES ('fdfs', 'qwerty', '456789')";
else
echo "Please, enter all informations"
?>
我在这里有点迷失,但看起来应该是这样的!连接数据库的代码是正确的,我只是不知道如何使用我的表单中的值添加它。谢谢! (我输入了默认值,仅用于在$ sql中进行测试)。
答案 0 :(得分:4)
您将更改以下内容:
$sql = "INSERT INTO t_usager (u_nom, u_prenom, u_password) VALUES ('fdfs', 'qwerty', '456789')";
使用$ _POST数组中的值(即$ _POST ['txtUsername'])。然后在为查询构建字符串之后,需要调用mysql_query($ sql);为了实际运行查询。
我相信你的代码中也缺少一对{},因为其上带有$ sql的行当前无效(如果它可以与之相关,则在其后没有附近的其他地方)。
代码示例:
$nom = mysql_real_escape_string ( $_POST [ 'txtNom' ] );
$preNom = mysql_real_escape_string ( $_POST [ 'txtPrenom' ] );
$pass = mysql_real_escape_string ( $_POST [ 'txtPassword' ] );
$sql = "INSERT INTO t_usager (u_nom, u_prenom, u_password) VALUES ('$nom', '$preNom', '$pass')";
答案 1 :(得分:3)
Judda的答案肯定有效,但SQL注入的风险是如此之高,它超越了“风险”领域,变得更加确定。
我建议你获得一本好的基础手册(O'reilly的“学习PHP,MySQL和Javascript对于初学者来说非常简单和直接)”,并学习处理数据库时要遵守的基本安全规则。
掠夺者,逃跑是不够的;你需要准备好的陈述。
如果你不想买一本书,请在继续学习之前先阅读上帝的爱this。