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 条件并以 (the) reverse(d) 顺序编写此类语句(您通常习惯于:

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

无论如何,您也可以简单地检查! empty( $message )

于 2012-09-27T16:29:33.183 回答