@new_onex

Почему не получается записать данные в БД MySql?

<?php
  $user_ip = $_SERVER["REMOTE_ADDR"];
  $user_info = file_get_contents("http://www.geoplugin.net/json.gp?ip=");
  $user_info = json_decode($user_info);
  $user_country = $user_info->geoplugin_countryName;
  if($user_country != 'Ukraine'){
   echo "Регистрация доступна только для пользователей из Украины";
   exit();
  }
  $host = 'localhost';
  $user = 'root';
  $pass = '';
  $db_name = 'sava';
  $conn = mysqli_connect($host, $user, $pass, $db_name);
  if (!$conn){
    echo 'Не могу соединиться с БД. Ошибка:' . mysqli_connect_errno() . mysqli_connect_error();
    exit;
  }
  if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['messenger']) && isset($_POST['phone']) && isset($_POST['company'])){
    $errors = [];
  if (preg_match("/[a-zA-Z]+/",$_POST['name'])){
    $name = trim($_POST['name']);}
  else
  { 
    $name = FALSE; echo 'Имя может содержать только буквы латинского алфавита';
    $errors = 'Имя может содержать только буквы латинского алфавита';
  }

  if (preg_match("/\b[\w. -]+@[\w. -]+\.[A-Za-z]{2,6}\b/",$_POST['email'])){
    $email = trim($_POST['email']);}
  else
   {
    $email = FALSE; echo 'Емейл введен некорректно';
    $errors = 'Емейл введен некорректно';
  }

  if (preg_match("/[-()+\s\d]+/",$_POST['phone'])){
    $phone = trim($_POST['phone']);}
  else
    {
      $phone = FALSE; echo 'Телефон введен некорректно';
      $errors = 'Телефон введен некорректно';
  }

  if (preg_match("/[a-zA-Z\s]+/",$_POST['company'])){
    $company = trim($_POST['company']);}
  else
    {
      $company = FALSE; echo 'Имя компании введено некорректно';
      $errors = 'Имя компании введено некорректно';
    }
  if (!empty($_POST['agre']));
  else {
    $agre = FALSE; echo'Не все поля заполнены';
    $errors = 'Не все поля заполнены';}
  if (isset($_POST['messenger']))
   {$messenger = $_POST['messenger'];}
  $chars = "qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP";
  $pass = "";
  for($i = 1; $i<=8; $i++){
    $pass .= $chars[rand(0, strlen($chars) - 1)];
  }
  $sql = "INSERT INTO usersdata (name,email,messenger,phone,company,pass) VALUES ($name,$email,$phone,$messenger,$company,$pass)";
  if (!mysqli_query($conn,$sql)) {
    echo "запись есть";
  } else {
    echo "нет записи:" . "<br>" . mysqli_error($conn);
  }
    session_start();
  $_SESSION['name'] = $name;
  $_SESSION['email'] = $email;
  $_SESSION['phone'] = $phone;
  $_SESSION['company'] = $company;
  $_SESSION['messenger'] = $messenger;
  $_SESSION[''] = $pass;
  if (empty($errors)){
    header("Location:pass.php");}
  }
    ?>


Подскажите новичку в чем проблема ? Знаю что код написан не очень? Все перпробовал не идет запись данных в БД
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
скорей всего ошибка тут:
$sql = "INSERT INTO usersdata (name,email,messenger,phone,company,pass) VALUES ($name,$email,$phone,$messenger,$company,$pass)";

вы вставляете строковые данные без кавычек, включите вывод всех ошибок, в том числе SQL.
наверное должно быть вроде:
$sql = "INSERT INTO usersdata (name,email,messenger,phone,company,pass) VALUES ('$name', '$email','$phone','$messenger','$company','$pass')";

Вообще код очень низкого качества, легко устроить SQL инъекцию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы