Php 警告:未知:无法打开流:第0行未知中没有此类文件或目录
您好,我正在尝试创建一个会员专用网站,我正在尝试创建一个包含会话等的脚本,但是当我单击我的登录按钮时,出现以下错误:Php 警告:未知:无法打开流:第0行未知中没有此类文件或目录,php,Php,您好,我正在尝试创建一个会员专用网站,我正在尝试创建一个包含会话等的脚本,但是当我单击我的登录按钮时,出现以下错误: 警告:未知:无法打开流:第0行未知中没有此类文件或目录 致命错误:未知:无法在第0行的未知位置打开所需的“prepend.php”(include_path=。:/Applications/XAMPP/xamppfiles/lib/php) 我不是100%确定这一切意味着什么,所以我会发布我的脚本,如果有人能深入地告诉我哪里出了错,我会很感激,这样我就可以掌握并为将来学习我做错了
警告:未知:无法打开流:第0行未知中没有此类文件或目录
致命错误:未知:无法在第0行的未知位置打开所需的“prepend.php”(include_path=。:/Applications/XAMPP/xamppfiles/lib/php)
我不是100%确定这一切意味着什么,所以我会发布我的脚本,如果有人能深入地告诉我哪里出了错,我会很感激,这样我就可以掌握并为将来学习我做错了什么
提前感谢您的任何意见和帮助
index.php
<div id="maincontentWrapper">
<div id="maincontent">
<div id="contentWrapper"></div><!--End loginWrapper -->
<article>
<p>Welcome to iManage, please login in below.</p>
</article>
<div id="loginform">
<div id="loginWrapper">
<form id="loginForm" method="POST" action="classes/class.Login.php">
<h1><span class="log-in">Log in</span> or <span class="sign-up"><a href="register">sign up</a></span></h1>
<div id="errorDiv"><?php
if (isset($_SESSION['error']) & isset($_SESSION['formAttempt'])) {
unset($_SESSION['formAttempt']);
print "Errors encountered<br/>\n";
foreach ($_SESSION['error'] as $error) {
print $error . "<br />\n";
} //end foreach
} //end if
?></div>
<p class="float">
<label for="login"><i class="icon-user"></i>Username</label>
<input type="text" id="email" name="email" placeholder="E-mail">
<span class="errorFeedback errorSpan" id="emailError">E-mail is required</span>
</p>
<p class="float">
<label for="password"><i class="icon-lock"></i>Password</label>
<input type="password" id="password" name="password" placeholder="Password" class="showpassword">
<span class="errorFeedback errorSpan" id="passwordError">Password is required</span>
</p>
<p class="clearfix">
<input type="submit" name="submit" value="Log in"></form>
</p>
</div>
</div>
</div>
</div>
</div>
将绝对路径设置为.htaccess中的prepend.php我的防病毒软件喜欢将router.php隔离(有效地将其从该目录中删除)。检查您的文件是否也执行了相同的操作,如果是,则恢复该文件并为该文件创建异常。此外,您应该配置您的防病毒软件,以便在它将某些内容置于隔离状态时通知您,以便您可以及时干预。此错误是由于缺少server.php造成的。我也会发生同样的情况。检查项目目录中的server.php文件。这是自动预结束文件和waf文件丢失或损坏的原因之一。
因此,请检查webroot上的php.ini或.user.ini文件,并删除或重新更正文件路径。如果添加了防病毒软件,请添加异常或删除防病毒软件。可能会从项目文件夹中删除文件(server.php)。检查文件是否可用。是
include(“connect/class.connect.php”)代码>有效路径?@RienNeVaPlus抱歉,最初我让它返回一个目录。/connect/class.connect.php
,它没有什么区别,通常如果它找不到数据库,它会输出不同的消息。当您尝试运行一些php脚本时,php会尝试包含文件“prepend.php”,因为.htaccess。.htaccess、prepend.php和脚本的文件夹是什么?.htaccess和prephend.php位于classes/class.Login.php的上一个目录中,它们是否需要位于同一根目录中?或者我可以给classes文件夹一个.htaccess吗@sanja谢谢sanja的工作!脚本中出现了一些错误,但我应该能够解决这些错误。请注意,即使您的Web空间严重chroot
-ed,您也可能需要绝对系统路径。很难调试。是的,就是这样,我的avast在静默模式下删除了我的server.php,谢谢^^
<?php
include("../connect/class.Connect.php");
class Login extends Database {
public $id;
public $email;
public $username;
public function __construct() {
if (session_id() == "") {
session_start();
}
if (isset($_SESSION['isLoggedIn']) && $_SESSION['isLoggedIn'] == true) {
$this->_initUser();
}
} // end construct
public function authenticate($user, $pass) {
$safeUser = $this->mysqli->real_escape_string($pass);
$query = "SELECT * from users WHERE email = '{$safeUser}'";
if (!$result = $this->mysqli->query($query)) {
error_log("Cannot retrieve account for {$user}");
return false;
}
// will be only one row, so no while() loop needed
$row = $result->fetch_assoc();
$dbPassword = $row['password'];
if (crypt($incomingPassword,$dbPassword) != $dbPassword) {
error_log("Passwords for {$user} don't match");
return false;
}
$this->id = $row['id'];
$this->username = $row['username'];
$this->email = $row['email'];
$this->isLoggedIn = true;
$this->_setSession();
return true;
} // end function autheticate
private function _setSession() {
if (session_id() == '') {
session_start();
}
$_SESSION['id'] = $this->id;
$_SESSION['email'] = $this->email;
$_SESSION['username'] = $this->username;
$_SESSION['isLoggedIn'] = $this->isLoggedIn;
} // end function setSession
private function _initUser() {
if(session_id() == '') {
sessions_start();
}
$_SESSION['id'] = $this->id;
$_SESSION['email'] = $this->email;
$_SESSION['username'] = $this->username;
$_SESSION['isLoggedIn'] = $this->isLoggedIn;
}// end function initUser
function validatelogin () {
$_SESSION['formAttempt'] = true;
if (isset($_SESSION['error'])) {
unset($_SESSION['error']);
}
$_SESSION['error'] = array();
$required = array("email","password");
//Check required fields
foreach ($required as $requiredField) {
if (!isset($_POST[$requiredField]) || $_POST[$requiredField] == "") {
$_SESSION['error'][] = $requiredField . " is required.";
}
}
if (!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) {
$_SESSION['error'][] = "Invalid e-mail address";
}
if (count($_SESSION['error']) > 0) {
die(header("Location: login.php"));
} else {
$user = new User;
if ($user->authenciate($_POST['email'], $_POST['password'])) {
unset($_SESSION['formAttempt']);
die(header("Location: authenticated.php"));
}else {
$_SESSION['error'][] = "There was a problem with your username or password.";
die(header("Location: login.php"));
}
}
}
}
$run = new Login();
$run->authenticate($user, $pass);
$run->validatelogin();
?>
<?php
if (!isset($_SESSION) ) {
session_start();
}
?>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
php_value auto_prepend_file "prepend.php"