Php表单:注册用户

时间:2010-12-20 03:19:28

标签: php sql forms input phpmyadmin

我刚开始使用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中进行测试)。

2 个答案:

答案 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