0

http://net.tutsplus.com/tutorials/php/online-file-storage-with-php/comment-page-2/#commentsのチュートリアルを実行していました が、次のようになるまで問題なく動作していました。

if(strlen($message) > 0)
{
    $message = '<p class="error">' . $message . '</p>';
}

この php 行は index.php にあります。Firefox でページを数ページ表示すると、php パーサーが大なりで止まっているように見えます。キャラクターから逃げることはできますか?する必要がありますか?

編集:すべてのphpコード:

<?php 
//Load the settings
require_once("settings.php");

$message = "";
//Has the user uploaded something?
if(isset($_FILES['file']))
{
    $target_path = Settings::$uploadFolder;
    $target_path = $target_path . time() . '_' . basename( $_FILES['file']['name']); 

    //Check the password to verify legal upload
    if($_POST['password'] != Settings::$password)
    {
        $message = "Invalid Password!";
    }
    else
    {
        //Try to move the uploaded file into the designated folder
        if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) {
            $message = "The file ".  basename( $_FILES['file']['name']). 
            " has been uploaded";
        } else{
            $message = "There was an error uploading the file, please try again!";
        }
        }

    //Clear the array
    unset($_FILES['file']);
}


if(strlen($message) > 0)
{
    $message = '<p class="error">' . $message . '</p>';
}    
?>
<html> ... </html> //my html code
4

4 に答える 4

3

これ>により、PHP パーサーが停止することはありません。

サーバーによる HTML 出力を見ないと、確かなことは言えませんが、ファイル>の最初>にあるので、PHP パーサーは起動せず、ブラウザは<?phpファイルの先頭にある からstrlen($message) > タグとして

PHP がインストールされ、そのファイルを処理するように構成された Web サーバーを介して PHP にアクセスする必要があります (これは通常、.php ファイル拡張子を付けることによって行われます)。

于 2012-09-27T16:35:35.817 に答える
1

これはどうですか?

if(!empty($message)){
    $message = '<p class="error">'.$message.'</p>';
}

しかし、最初にエラーメッセージを割り当ててから段落タグを割り当てるのではなく、段落タグをエラーメッセージに直接割り当ててみません$messageか?

于 2012-09-27T16:33:49.990 に答える
0

if条件にエラーはありません正常に動作しています

ここに画像の説明を入力してください

で起こりうる問題

  1. if(isset($_FILES['file']))
  2. if($_POST['password'] != Settings::$password)
  3. if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path))

あなたがifボディに入っていない場合、それは問題を意味します

  if(isset($_FILES['file']))

なぜならそれが $message = "";

于 2012-09-27T16:34:59.453 に答える
-1

常にYoda Conditionsを使用し、そのようなステートメントを (逆の) 順序で記述します (通常は次のことに慣れています:

if ( 0 !== strlen( $message ) )
{
    $message = 'Hello World!';
}

とにかく、単にチェックすることもできます! empty( $message )

于 2012-09-27T16:29:33.183 に答える