R
R
Roman Sergeev2017-04-21 21:35:06
PHP
Roman Sergeev, 2017-04-21 21:35:06

Problem with coding during autoloading. How to decide?

Good evening
, after clicking on the login button, it throws out the following page:
a68ada43b46e4e28bc6c02ce9cf2afde.jpg
What is the error? here is the code:

<meta charset="utf8">

<?php
header('Content-Type: text/html; charset=utf-8');
setlocale(LC_ALL,'ru_RU.65001','rus_RUS.65001','Russian_Russia.65001','russian');
    session_start();//  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("<body><div align='center'><br/><br/><br/><h3>Вы ввели не всю информацию, вернитесь назад и заполните все поля!" . "<a href='index.php'> <b>Назад</b> </a></h3></div></body>");
    }
    //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
    $password = stripslashes($password);
    $password = htmlspecialchars($password);
//удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
  
     //Подключаемся к базе данных.
    $dbcon = mysql_connect("localhost", "root", ""); 
    mysql_select_db("schedule", $dbcon);
  if (!$dbcon)
  {
    echo "<p>Произошла ошибка при подсоединении к MySQL!</p>".mysql_error(); exit();
    } else {
    if (!mysql_select_db("schedule", $dbcon))
    {
    echo("<p>Выбранной базы данных не существует!</p>");
    }
  }
 //извлекаем из базы все данные о пользователе с введенным логином
$result = mysql_query("SELECT * FROM имя таблицы WHERE login='$login'", $dbcon);
    $myrow = mysql_fetch_array($result);
    if (empty($myrow["password"]))
    {
    //если пользователя с введенным логином не существует
    exit ("<body><div align='center'><br/><br/><br/>
  <h3>Извините, введённый вами login или пароль неверный." . "<a href='index.php'> <b>Назад</b> </a></h3></div></body>");
    }
    else {
    //если существует, то сверяем пароли
    if ($myrow["password"]==$password) {
    //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
    $_SESSION['login']=$myrow["login"]; 
    $_SESSION['id']=$myrow["id"];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
   header("Location:index.php"); 
    }
 else {
    //если пароли не сошлись

    exit ("<body><div align='center'><br/><br/><br/>
  <h3>Извините, введённый вами login или пароль неверный." . "<a href='index.php'> <b>Назад</b> </a></h3></div></body>");
    }
    }
    ?>

Answer the question

In order to leave comments, you need to log in

1 answer(s)
T
tester_toster, 2017-04-21
@Roman777777

Headers cannot be sent after content.
mysql and escaping is bad form.
mysqli or pdo and placeholders.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question