我有一个奇怪的问题。我将数据库连接插入到单独的.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;
答案 0 :(得分:-3)
这可能是由于所包含的db文件的相对路径问题引起的。检查您的项目目录结构和相对路径