0
<?php
if (isset($_POST['login'])) 
    { 
        $login = $_POST['login'];                 
    } 
if (isset($_POST['password'])) 
    { 
        $password = $_POST['password'];  
    }
if (isset($_POST['data'])) 
    { 
        $data = $_POST['data'];  
    }
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$data = stripslashes($login);
$data = htmlspecialchars($login);
$login = trim($login);
$password = trim($password);
$data = trim($data);
include ("bd.php");  
$result = mysql_query("SELECT id FROM users WHERE login='$login'", $db);

$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) 
{
    exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
}
$result2 = mysql_query ("INSERT INTO users (login,password, data) VALUES('$login','$password', '$data')");
echo mysql_error();
if ($result2=='TRUE')
    {
        include 'scr.js';          
        require('index.php');
    }
else 
    {
        echo "Ошибка! Вы не зарегистрированы.";
    }

Народ, уже всё облазил, не могу понять в чём проблема. Почему в строку "data" в бд добавляется то же значение, что и значение "login"? То есть, поля "login" и "data" в бд одинаковы. Запрос вставки в строку написан вроде правильно. Как это исправить, и вообще, где ошибка тут может быть? Для уточнения, data - ФИО пользователя, login - логин. При вводе, например, login "aloha" и data "FIO", в поля бд login и data вставляется "aloha". Не кидайтесь помидорами, php начал совсем недавно заниматься.

  • Функции mysql_ использовать уже нельзя. Они удалены из PHP на данный момент. Для вставки данных в запросы используйте подготовленные выражения! https://ru.stackoverflow.com/q/511895/186083 – Visman Mar 26 '18 at 08:14

1 Answers1

1
$data = stripslashes($login);
$data = htmlspecialchars($login);

а надо

$data = stripslashes($data);
$data = htmlspecialchars($data);
Paul Wall
  • 1,733