【问题标题】:Include database.php doesn't work - white screen包含 database.php 不起作用 - 白屏
【发布时间】:2019-01-27 18:56:00
【问题描述】:

我有一个奇怪的问题。我将数据库连接插入到一个单独的 .php 文件中。如果我现在将此 php 文件作为包含插入,则该函数将不再执行(在本例中为寄存器)。有趣的是,在 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;

【问题讨论】:

标签: php


【解决方案1】:

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

【讨论】:

  • 这是什么意思?我在这个问题上并没有那么明目张胆。
猜你喜欢
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
  • 2012-06-20
  • 2018-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多