rameer666
@rameer666
HTML, CSS, JS, PHP

Почему пропадает html при парсинге php?

Есть окно регистрации, которое появляется при нажатии на одну из кнопок в навигации. Появление я сделал через JQuery.

<div>
    <div class="col-md-8" id="popreg">

                <p>Registration</p> <!--RUNS-->
             
                <?php include_once "register.php";
                ?>

                <form method="post" action="logged.php"> <!--DOES NOT RUN-->
                    <p>
                        <input type="text" size="16" name="username" placeholder="username" required/>
                    </p>
                    <p>
                        <input type="text" size="16" name="email" placeholder="email" required/>
                    </p>
                    <p>
                        <input type="password" size="16" name="password" placeholder="password" required/>
                    </p>
                    <p>
                        <input type="password" size="16" name="check_password" placeholder="Repeat password" required/> <br>
                    </p>
                    <p id="signbutton">
                        <input type="submit" size="16" name="submit" value="Sign in"/>
                    </p>
                </form>
    </div>
</div>


(Если я что-то криво (непрофессионально делаю) - огромная просьба обязательно сказать. Возможно, я делаю сайт как его делали в 90-ых - если да, то буду рад услышать :) Опираюсь на форумы и литературу, понимаю, что могут быть ошибки).

Дело в том, что поле того, как я включил <?php?> в html файл, пропадает всё, что находится после этого фрагмента <?php?> - в данном случае, это поля input, которые нужны для регистрации.

Вот как примерно должно быть: (Здесь просто не вставлен <?php?>)

c6af3943df014f7cb186c8ca1424352b.png

А вот как оно на самом деле - с <?php?>
То есть, всё после php исчезает.

370982d9479449e4b3eaac5c8a024701.png

Вот код php: register.php
(Повторюсь, я понимаю, что может быть что-то не так, и что писать код через include_once не круто, но это прочитал на сайте.)

<?php
	# SQL CONNECTION
	$connect = mysql_connect('localhost:8889', 'root', '12439524') or die(mysql_error());
	mysql_select_db('pumprate');

	# REGISTRATION CHECK
	if (isset($_POST["submit"])) {
		$username = $_POST["username"];
		$email = $_POST["email"];
		$password = $_POST["password"];
		$check_password = $_POST["check_password"];

		# CHECKS PASSWORD AND IT'S CONFIRMATION
		if ($password == $check_password) {

			# WEAK CODE PROTECTION
			$password = md5($password);

			# CREATE A QUERY
			$query = mysql_query("INSERT INTO users VALUES ("","$username","$password")") or die(mysql_error());
		} else {
				# PAGE THAT ERRORS WRONG PASSWORDS
				die('Passwords must match!')
				};
	}
?>


Я читал, что не нужно использовать or die - но замену придумать я не в силах.

Заранее благодарен за любую критику и ответы :]
  • Вопрос задан
  • 276 просмотров
Пригласить эксперта
Ответы на вопрос 3
@slavabars
Веб программист
<?php
  # SQL CONNECTION
  $connect = mysql_connect('localhost:8889', 'root', '12439524') or die(mysql_error());
  mysql_select_db('pumprate');

  # REGISTRATION CHECK
  if (isset($_POST["submit"])) {
    $username = $_POST["username"];
    $email = $_POST["email"];
    $password = $_POST["password"];
    $check_password = $_POST["check_password"];

    # CHECKS PASSWORD AND IT'S CONFIRMATION
    if ($password == $check_password) {

      # WEAK CODE PROTECTION
      $password = md5($password);

      # CREATE A QUERY
      $query = mysql_query("INSERT INTO users VALUES ('','$username','$password')") or die(mysql_error());
    } else {
        # PAGE THAT ERRORS WRONG PASSWORDS
        die('Passwords must match!');
        }
  }
?>


Ошибка в коде

die('Passwords must match!')
        };
Ответ написан
Комментировать
@Silm
Как минимум есть две ошибки.
В 20 строке путаница с кавычками, должно быть:
$query = mysql_query("INSERT INTO users VALUES ('','" . $username. "','" . $password ."')") or die(mysql_error());

а вообще почитайте про PDO.

в 25 строке нет знака ";".

Проверьте что у вас включено отображение ошибок в PHP, просмотрите в браузере исходный код фрагмента в котором вы выполняете инклюд, там должно быть сообщение об ошибке с указанием проблемы.

Как правильно писать на PHP: www.phptherightway.com
Ответ написан
@Barmunk
Не работайте на прямую с базой.
Перепишите подключение как минимум с помощью mysqli.
Используйте Подготавливаемые запросы вместо прямой передачи переменных в sql запрос.
Напишите функцию, которая будет очищать переменные от мусора.
Поставьте редактор с простеньким валидатором, чтобы избежать проблем с кодом.
Ну и в самом конце можно закрыть подключение к бд.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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