Php форма: регистрация пользователей - PullRequest
0 голосов
/ 20 декабря 2010

Я только начинаю в 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 ]

4 голосов
/ 20 декабря 2010

Вы измените следующее:

$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')";
3 голосов
/ 20 декабря 2010

Ответ Джудды, безусловно, работает, но риск внедрения SQL настолько высок, что выходит за рамки «риска», становясь все более определенным.

Я предлагаю вам получить хорошее базовое руководство («Изучение PHP, MySQL и Javascript» довольно легко и просто для начинающих), а также изучить основные правила безопасности, которые необходимо соблюдать при работе с базами данных.

Спойлер, побега не достаточно; вам понадобятся подготовленные заявления.

Если вы не хотите покупать книгу, пожалуйста, ради бога, прочитайте это , прежде чем идти дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...