2015-12-08 4 views
4

Я искал здесь tirlessly и не видел, чтобы найти решение, чтобы заставить мой код работать, я пытаюсь создать простую систему регистрации для участия в моем сайте, но я могу не видел, чтобы получить мой PHP-код для отправки в базу данных, которую я создал, вот код.Код mysqli не отправляется в базу данных

<?php require 'lpgamers/connections/connect.php'; ?> 
<?php 

    if(isset($_POST['Register'])) { 

     session_start(); 
     $FName = $_POST['First_Name']; 
     $LName = $_POST['Last_Name']; 
     $Email = $_POST['Email']; 
     $PW = $_POST['Password']; 

     $sql = $con->query("INSERT INTO lpg-user-db (Fname, Lname, Email, Password)Values('{$FName}', '{$LName}', '{$Email}', '{$PW}')"); 
    } 
?> 
     <div class="rightbody"> 
      <form id="registerform" name="registerform" method="post"> 
      <div class="formelement"> 
       <input name="First_Name" type="text" required class="tfield" id="First_Name" placeholder="First Name"> 
      </div> 
      <div class="formelement"> 
       <input name="Last_Name" type="text" required class="tfield" id="Last_Name" placeholder="Last Name"> 
      </div> 
      <div class="formelement"> 
       <input name="Email" type="email" required class="tfield" id="Email" placeholder="Email"> 
      </div> 
      <div class="formelement"> 
       <input name="Password" type="password" required class="tfield" id="Password" placeholder="Password"> 
      </div> 
      <div class="formelement"> 
       <input name="Register" type="submit" class="button" id="Register" value="Register"> 
      </div> 
      </form> 

У меня также есть соединять файл, который требуется, и я это настроить и это подключиться к базе данных

<?php 

$con = mysqli_connect("localhost", "root", "", "lpgamers-user-db"); 

if (mysqli_connect_errno()) { 
    printf('Connect failed: %s\n', mysqli_connect_error()); 
    exit(); 
} 

?> 

я делаю Somthing неправильно здесь, или это просто проблема базы данных, В настоящий момент я использую сервер Wamp для тестирования?

Заранее спасибо Роб.

+2

[Ваш скрипт находится в опасности для SQL Injection атак.] (Http: // stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Используйте PHP-функции [встроенные функции] (http://jayblanchard.net/proper_password_hashing_with_PHP.html) для обработки прохода безопасность слова. Если вы используете версию PHP менее 5.5, вы можете использовать 'password_hash()' [пакет совместимости] (https://github.com/ircmaxell/password_compat). Проверьте свои журналы ошибок. –

ответ

4

mysqli_error($con) должен был выдать вам сообщение об ошибке, но вы не обнаружили ошибок.

Ваш lpg-user-db стол в

INSERT INTO lpg-user-db 

содержит дефис и MySQL интерпретирует, что как lpg MINUS user MINUS db, в думая, что вы хотите, чтобы сделать математику.

Имя таблицы потребуется иметь тиков вокруг него:

INSERT INTO `lpg-user-db` 

Либо сделать это, или заменить их подчеркиванием и переименовав его:

INSERT INTO lpg_user_db 

Ссылки:

Sidenote: Если в вашей таблице есть какие-либо ограничения, сообщите об этом mysqli_error($con).

Если данные, которые вы пытаетесь ввести, содержат символы, на которые будет жаловаться MySQL, и, например, John's Bar & Grill, тогда вам нужно будет избежать ваших данных; то, что вы должны делать в любом случае.

$FName = mysqli_real_escape_string($con, $_POST['First_Name']); 

и делает то же самое для других массивов POST.

Вы также можете использовать SQL-инъекцию, используя подготовленный оператор.


Пароли

Я также заметил, что вы можете хранить пароли в виде обычного текста. Это не рекомендуется.

Используйте одно из следующих действий:

Другие ссылки:

+0

Большое спасибо Фред -ii-. это сработало и получило всю мою отправку информации, я медленно добираюсь туда и скоро буду делать что-нибудь о моей безопасности. Спасибо снова Rob – rprince

+0

@rprince Добро пожаловать, * приветствует * –

Смежные вопросы