Index.php вызывающий пустое предупреждение на живом веб-сайте


Итак, у меня есть index.php имеет мою страницу по умолчанию. Это прекрасно работает на xampp. Поэтому я загрузил весь свой сайт в 1&1 (мой домен/хостинг-провайдер), и когда я пытаюсь зайти в свой домен, я получаю пустое предупреждение без сообщения и полностью пустую страницу.

Я изменил имя файла на index.html и веб-страница загрузилась просто отлично. Поэтому я знаю, что это должно быть что-то с расширением .php или моим кодом сверху.

Я также добавил файл с именем .htaccess и он содержит только:

DirectoryIndex index.php

Вот мой php-код в верхней части index.php (заменил чувствительный информационный поток на *s):

<?php

//Connect to a database
  $host_name  = "******.db.1and1.com";
  $database   = "db****";
  $user_name  = "dbo******";
  $password   = "***z.0**";

  $connect = mysqli_connect($host_name, $user_name, $password, $database);
  //    echo("nice job");

//Take the values from the html form and assign them to variables
  $ID = $_POST['name'];
  $userpassword = $_POST['password'];

//If no passsowrd entered then go straight to index.php
  echo "<script type='text/javascript'>alert($userpassword);</script>";
  if ($userpassword == null) {
    header("Location: http://localhost:82/index3.php");
    die();
  }

//Check to see if the password matches the hashes
  if (md5($userpassword) === '******************' 
      or md5($userpassword) === '***********' 
      or md5($userpassword) === '****************' 
      or md5($userpassword) === '**************') 
 {
 //Add the visitor name to our list
    mysqli_query($connect, "INSERT INTO `WebsiteVisitors` (`Name`) VALUES  ('$ID')") or die("Error in INSERT: ".mysqli_error($connect));
      //    echo "You have entered the correct password, congrats.";

  // Start the session so they can access other pages
    session_start();
    $_SESSION['loggedIn'] = true;
  // Redirect them to rest of site
    header("Location: http://localhost:82/home.php");
    die();
   }

    else {
    header("Refresh: 0; url=index2.php");
    echo "<script type='text/javascript'>alert(\"Wrong Password. Check your     invitation card.\");</script>";

  }
  ?>
Author: Badrush, 2016-01-25

1 answers

С тех пор, как $_POST запрос приходит только после отправки формы в вашем случае вам нужно только выполнить проверку имени пользователя и пароля, если $_POST["name"] и $_POST["password"] существуют.

Итак, дайте утверждение if if(isset($_POST['name']) && isset($_POST['password'])) перед использованием и манипулированием переменными $_POST. Также session_start() должно быть указано в верхней части вашего сценария.

Ниже приведен ваш полный код, включая проверку

<?php
session_start();
// session start should be at top of your script

error_reporting(E_ERROR); // reports only errors

//Connect to a database

$host_name  = "******.db.1and1.com";
$database   = "db****";
$user_name  = "dbo******";
$password   = "***z.0**";

$connect = mysqli_connect($host_name, $user_name, $password, $database);

// $_POST request comes only when form is submitted in your case. So check for $_POST['name'] and $_POST['password']

if(isset($_POST['name']) && isset($_POST['password'])) 
{

        $ID = $_POST['name'];
        $userpassword = $_POST['password'];

        //If no passsowrd entered then go straight to index.php

        if ($userpassword == null)
        {
                echo "<script type='text/javascript'>alert("Empty Password");</script>";
                header("Location: http://localhost:82/index3.php");
                die();
        }

        //Check to see if the password matches the hashes

        if (md5($userpassword) === '******************' 
                  or md5($userpassword) === '***********' 
                  or md5($userpassword) === '****************' 
                  or md5($userpassword) === '**************') 
       {

             //Add the visitor name to our list

             mysqli_query($connect, "INSERT INTO `WebsiteVisitors` (`Name`) VALUES  ('$ID')") or die("Error in INSERT: ".mysqli_error($connect));

              $_SESSION['loggedIn'] = true;

              // Redirect them to rest of site

              header("Location: http://localhost:82/home.php");
              die();
         }
         else
         {
               echo "<script type='text/javascript'>alert(\"Wrong Password. Check your     invitation card.\");</script>";

               header("Refresh: 0; url=index2.php");

        }

  }
  ?>
 2
Author: Ijas Ahamed N, 2016-01-25 07:41:30