包含database.php不起作用-白屏

时间:2019-01-27 18:56:00

标签: php

我有一个奇怪的问题。我将数据库连接插入到单独的.php文件中。如果我现在将这个php文件作为include插入,则该函数将不再执行(在这种情况下为Register)。有趣的是,他在login.php上接管了它,并且可以正常工作。另外,如果我将dbconnection.php的内容添加到register.php文件中,它将起作用。只有include命令不起作用。

代码如下:

dbconnection.php:

$db = new mysqli('xxx', 'xxx', 'xxx', 'xx');
if($db->connect_error):
  echo $db->connect_error;
endif;
正在运行的

login.php:

<?php

include ('dbconnection.php');


if(isset($_POST['absenden'])):
  $benutzername = strtolower($_POST['benutzername']);
  $passwort = $_POST['passwort'];
  $passwort = md5($passwort);

  $search_user = $db->prepare("SELECT id FROM users WHERE benutzername = ? AND passwort = ?");
  $search_user->bind_param('ss',$benutzername,$passwort);
  $search_user->execute();
  $search_result = $search_user->get_result();

  if($search_result->num_rows == 1):
    $search_object = $search_result->fetch_object();

    $_SESSION['user'] = $search_object->id;
    header('Location: '.$_SERVER['PHP_SELF']); 
  else:
    echo 'Deine Angaben sind leider nicht korrekt!';
  endif;
endif;

register.php无法正常工作(白屏,如果我将dbconnection.php的内容(不包括在内)添加到register.php,则可以正常工作。):

<?php

include ('dbconnection.php');


  $benutzername = $_POST['benutzername'];
  $passwort = $_POST['passwort'];
  $passwort_widerholen = $_POST['passwort_widerholen'];

  $search_user = $db->prepare("SELECT id FROM users WHERE benutzername = ?");
  $search_user->bind_param('s',$benutzername);
  $search_user->execute();
  $search_result = $search_user->get_result();


  if($search_result->num_rows == 0):
    if($passwort == $passwort_widerholen):
      $passwort = md5($passwort);
      $insert = $db->prepare("INSERT INTO users (benutzername,passwort) VALUES (?,?)");
      $insert->bind_param('ss',$benutzername,$passwort);
      $insert->execute();
      if($insert !== false):
        echo 'Dein Account wurde Erfolgreich erstellt! <a href="index.php?page=anmelden">HIER</a> kannst du dich anmelden.';
      endif;
    else:
      echo 'Deine Passwörter stimmen nicht überein!';
    endif;
  else:
    echo 'Der Benutzername ist leider schon vergeben!';
  endif;

endif;

1 个答案:

答案 0 :(得分:-3)

这可能是由于所包含的db文件的相对路径问题引起的。检查您的项目目录结构和相对路径