2010-12-20 196 views
0

我刚开始用php,我想知道如何制作注册表单。我不确定如何将值添加到数据库。我使用phpMyAdmin作为数据库。PHP表格:注册用户

我输入的位置:

<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测试)。

回答

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')"; 
+0

THX我调整了一下,它使用默认值。我尝试了:$ sql =“INSERT INTO t_usager(u_nom,u_prenom,u_password)VALUES($ _P OST [“txtNom”],$ _POST [“txtPrenom”],$ _POST [“txtPassword”])“;但给我的错误:解析错误:语法错误,意外的'“',预计在/ home/jleggett/domain/jleggett.tim.college-em.qc.ca/public_html/signUp.php在线T_STRING或T_VARIABLE或T_NUM_STRING 23 – Elggetto 2010-12-20 03:36:09

+0

真棒:) ...只记得在用户输入数据之前清理输入信息,看看我更新后的帖子 – judda 2010-12-20 03:37:10

+0

sanitize?hehehe抱歉,但我不知道这意味着什么...... sry!我也得到错误:解析错误:语法错误,意外的T_STRING在第23行的/home/jleggett/domains/jleggett.tim.college-em.qc.ca/public_html/signUp.php – Elggetto 2010-12-20 03:44:04

3

Judda的回答肯定的作品,但SQL注入的风险是如此之高,它超越了“风险”的境界,成为更多的是肯定的。

我建议你得到一个良好的基础手册(O'Reilly的“学习PHP,MySQL和JavaScript是非常容易和简单,适合初学者),并学习基本的安全规则与数据库打交道时观察。

扰流板,逃避是不够的;!你需要准备的语句

如果你不想买一本书,那么请对上帝的爱才去任何进一步的阅读this

+0

我同意使用预准备语句是实现所需安全性的最佳方式。 – judda 2010-12-20 04:16:22

+0

另外你的回答是正确的 - 我只关心Elggetto。 – cbrandolino 2010-12-20 04:17:51

+0

这是一个更清晰的例子......因为这篇文章不是关于他们脚本的安全性,我认为最基本的安全性是足够的。 – judda 2010-12-20 04:23:33