0

パスエラーがあります:

警告:require_once(test/assets/includes/memberfunc.php):ストリームを開くことができませんでした:C:\xampp\htdocs\test\assets\includes\logininc.php の 4 行目にそのようなファイルまたはディレクトリはありません

致命的なエラー:require_once():必要な 'test/assets/includes/memberfunc.php' (include_path='.;C:\xampp\php\PEAR') を C:\xampp\htdocs\test\assets\includes で開けませんでした\logininc.php の 4 行目

それでも私の道は正しい。ベースディレクトリはtestです。テストは、すべてのページが置かれる場所です。その上に、assets/includes/logininc.php と assets/configs/db_config.php があります。すべてが正しいはずです。お知らせ下さい

これは、login.php という名前のテスト用の非常に単純なフォームです。

<form id="login-form" method="post" action="assets/includes/logininc.php"> <fieldset> 
  <legend>Login </legend> 
  <p>Please enter your username and password to access the administrator's panel</p>
  
   <label for="username"> <input type="text" name="username" id="username" />Username: </label> <label for="password"> <input type="password" name="password" id="password" />Password: </label> <label for="submit"> <input type="submit" name="submit" id="submit" value="Login" /> </label> </fieldset> </form>

次に、以下のファイルに移動します。Logininc.php. assets/includes/logininc.php にあります。

<?php


require_once("/test/assets/includes/memberfunc.php");  //LINE 4
require_once("/test/assets/config/db_config.php"); 



session_start(); 

if($_SESSION['logged_in'] ==true) {
    
    redirect('/test/index.php');
        echo "success";
}
else{
    if ( (!isset($_POST['username'])) || (!isset($_POST['password'])) or                                        
    
    
    (!ctype_alnum($_POST['username'])))
    
    redirect("/test/login.php");
}
                                            
    $mysqli = @new mysqli(HOST, NAME, PW, DB);
    
//check connection

if(mysqli_connect_errorno())
{
    printf("Unable to connect to DB! : %s",
           mysqli_connect_error());
    exit();
}

//Escape unsafe chars 

$username = $mysqli->real_escape_string($_POST['username']);
$username = $mysqli->real_escape_string($_POST['password']);

//Time to make a SQL Q for execution

$sql = "SELECT * FROM users WHERE username= '".$username . "'AND password = '" . md5($password) . "'";
$result = $mysqli->query($sql);

// If one row is returned, USER AND PW is valid!

if (is_object($result) && $result->num_rows == 1) {
    
    //set session variable for login true
    
    $_SESSION['logged_in'] = true;
              
              redirect('../../index.php');
}
else{ //if number of rows is not one redirect back to login
redirect('../../login.php');
}

    
    ?>

.

お知らせ下さい。

4

3 に答える 3

1

「memberfunc.php」は同じディレクトリにあるため、パスは必要ありません。そして、せん断怠惰から、「db_config.php」のコピーもそのディレクトリに配置して、ステートメントが次のようになるようにします。

require_once("memberfunc.php");  //LINE 4
require_once("db_config.php"); 
于 2013-07-23T00:15:42.477 に答える
0

使用方法dirname(__FILE__)

require_once(dirname(__FILE__)."/test/assets/includes/memberfunc.php");
require_once(dirname(__FILE__)."/test/assets/config/db_config.php"); 
于 2013-07-22T22:42:09.353 に答える
0

必要なのは、現在の作業ディレクトリです。これは、次の 2 つの方法で実現されます。

相対パス:

require_once('./assets/includes/memberfunc.php');

絶対パス:

require_once(getcwd() . '/assets/includes/memberfunc.php');

ここでの主な違いは、HTML テンプレートがブラウザーに渡された URL に基づいて相対パスを作成することです。PHP は、ファイルが実行されるディスク上のディレクトリに基づいて相対パスを作成します。

于 2013-07-23T00:18:31.793 に答える