@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");}
  }
    ?>


Подскажите новичку в чем проблема ? Знаю что код написан не очень? Все перпробовал не идет запись данных в БД
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 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 инъекцию.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 11:55
1000 руб./за проект
27 апр. 2024, в 11:55
1500 руб./за проект
27 апр. 2024, в 11:52
12000 руб./за проект