繁体   English   中英

PHP表格:注册用户

[英]Php form: register users

我只是从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中进行测试)。

您将更改以下内容:

$sql = "INSERT INTO t_usager (u_nom, u_prenom, u_password) VALUES ('fdfs', 'qwerty', '456789')";

使用$ _POST数组中的值(即$ _POST ['txtUsername'])。 然后,在为查询生成字符串之后,您将需要调用mysql_query($ sql);。 为了实际运行查询。

我相信您在代码中还缺少一对{},因为上面带有$ sql的行当前无效(后面紧跟着else,因为如果可以关联,附近就没有)。

代码示例:

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

Judda的答案肯定有效,但是SQL注入的风险是如此之高,以至于超越了“风险”领域,变得更加确定。

我建议您获得一本不错的基本手册(O'reilly的“对初学者来说,学习PHP,MySQL和Javascript非常简单,直接”),并学习在处理数据库时要遵守的基本安全规则。

剧透,逃跑是不够的; 您将需要准备好的声明。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM