Пригласите php файл в html.

HTML-код, где я пытаюсь пригласить php.

с этим: <a id="login" href="regist.php">sasdasd</a>

register.php:

    <?php include('server.php') ?>
<html lang="hu">
<head>
 <meta charset="UTF-8">
  <title>Registration system PHP and MySQL</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
  <div class="header">
    <h2>Regisztrálás</h2>
  </div>

  <form method="post" action="register.php">
    <?php include('errors.php'); ?>
    <div class="input-group">
      <label>Felhasználó név</label>
      <input type="text" name="username" value="<?php echo $username; ?>">
    </div>
    <div class="input-group">
      <label>Email</label>
      <input type="email" name="email" value="<?php echo $email; ?>">
    </div>
    <div class="input-group">
      <label>Jelszó</label>
      <input type="password" name="password_1">
    </div>
    <div class="input-group">
      <label>Jelszó megerősítése</label>
      <input type="password" name="password_2">
    </div>
    <div class="input-group">
      <button type="submit" class="btn" name="reg_user">Regisztrálás</button>
    </div>
    <p>
        Regisztrált már? <a href="login.php">Jelentkezz be</a>
    </p>
  </form>
</body>
</html>

И сервер.php:


   <?php
session_start();

// initializing variables
$username = "";
$email    = "";
$errors = array(); 

// connect to the database
$db = mysqli_connect('localhost', 'root', '', 'registration');

// REGISTER USER
if (isset($_POST['reg_user'])) {
  // receive all input values from the form
  $username = mysqli_real_escape_string($db, $_POST['username']);
  $email = mysqli_real_escape_string($db, $_POST['email']);
  $password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
  $password_2 = mysqli_real_escape_string($db, $_POST['password_2']);

  // form validation: ensure that the form is correctly filled ...
  // by adding (array_push()) corresponding error unto $errors array
  if (empty($username)) { array_push($errors, "Username is required"); }
  if (empty($email)) { array_push($errors, "Email is required"); }
  if (empty($password_1)) { array_push($errors, "Password is required"); }
  if ($password_1 != $password_2) {
    array_push($errors, "The two passwords do not match");
  }

  // first check the database to make sure 
  // a user does not already exist with the same username and/or email
  $user_check_query = "SELECT * FROM users WHERE username='$username' OR email='$email' LIMIT 1";
  $result = mysqli_query($db, $user_check_query);
  $user = mysqli_fetch_assoc($result);

  if ($user) { // if user exists
    if ($user['username'] === $username) {
      array_push($errors, "Foglalt felhasználó név, próbáljon egy másikat.");
    }

    if ($user['email'] === $email) {
      array_push($errors, "Az email már szerepel az adatbázisban.");
    }
  }

  // Finally, register user if there are no errors in the form
  if (count($errors) == 0) {
    $password = md5($password_1);//encrypt the password before saving in the database

    $query = "INSERT INTO users (username, email, password) 
              VALUES('$username', '$email', '$password')";
    mysqli_query($db, $query);
    $_SESSION['username'] = $username;
    $_SESSION['success'] = "Sikeresen bejelentkeztél";
    header('location: index.php');
  }
}
// LOGIN USER
if (isset($_POST['login_user'])) {
  $username = mysqli_real_escape_string($db, $_POST['username']);
  $password = mysqli_real_escape_string($db, $_POST['password']);

  if (empty($username)) {
    array_push($errors, "Felhasználó név mező nem hagyható üresen");
  }
  if (empty($password)) {
    array_push($errors, "Jelszó mező nem hagyható üresen ");
  }

  if (count($errors) == 0) {
    $password = md5($password);
    $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $results = mysqli_query($db, $query);
    if (mysqli_num_rows($results) == 1) {
      $_SESSION['username'] = $username;
      $_SESSION['success'] = "Sikeresen bejelentkeztéln";
      header('location: index.php');
    }else {
        array_push($errors, "Rossz felhasználó név | Jelszó kombináció.");
    }
  }
}

?>

Если я только запускаю php, то это работает. Но в html просто текстовый код. Register.php - хороший интерфейс, и я хочу пригласить его с помощью кнопки / ссылки href. Что я могу сделать, если я хочу показать это. Xampp работает.

Это моя проблема на картинке

Всего 2 ответа


Во-первых, вы просматриваете веб-страницу в виде файла, а не с вашего веб-сервера. Используйте что-то вроде http://localhost/register.php

Во-вторых, чтобы отобразить PHP с расширением .html , необходимо добавить файл .htaccess в корень вашего веб-сайта со следующей строкой:

AddType application/x-httpd-php .html .htm

Теперь, когда вы включите PHP в файл HTML, он будет выполняться.

ВНИМАНИЕ! Маленький Бобби говорит, что ваш сценарий подвержен риску атак с использованием SQL-инъекций. Узнайте о подготовленных заявлениях для MySQLi . Даже избежать строки не безопасно!

Вы не должны использовать хэши паролей SHA1 или MD5. Пожалуйста, используйте встроенные функции PHP для обеспечения безопасности паролей. Если вы используете версию PHP менее 5.5, вы можете использовать пакет совместимости password_hash() . Нет необходимости экранировать пароли или использовать любой другой механизм очистки перед их хэшированием. Это изменяет пароль и вызывает ненужное дополнительное кодирование.


Похоже, вы просто открываете php-файл, а не запрашиваете его через веб-сервер PHP. Несколько возможных решений:


Есть идеи?

10000