0

I am redirecting various messages from a header and echoing them onto a new page. How can I change this so that the html only appears if there is a message variable to echo. i.e., if one of the $_GET conditions are met? Thanks

$message="";

if(isset($_GET['pw']))
{
  $message = "first message";
}
else if(isset($_GET['em']))
{
  $message = "second message";
}
else if(isset($_GET['fn']))
{
  $message = "third message";
}
else if(isset($_GET['ln']))
{
  $message = "forth message";
}
    ?>
<html>
     <body>
         <table class='tab2'>
             <td class='td2'><?php echo $message; ?></td>
         </table>
     </body>
<html>
4

5 回答 5

2
<?php
   if($message)
   {
?>

   <html>
   ....

   </html>

<?php
   }
?>
于 2012-07-18T23:54:38.580 回答
1

你可以使用这个:

<?php
$message="";

if(isset($_GET['pw']) && !empty($_GET['pw']))
{
  $message = "first message";
}
else if(isset($_GET['em']) && !empty($_GET['em']))
{
  $message = "second message";
}
else if(isset($_GET['fn']) && !empty($_GET['fn']))
{
  $message = "third message";
}
else if(isset($_GET['ln']) && !empty($_GET['ln']))
{
  $message = "forth message";
}
echo $message;
?>

演示:http ://shaquin.tk/experiments/get-conditions.php

它检查$_GET是否定义了变量,如果它不为空,则设置$message为适当的消息。

请参阅空 - PHP 手册isset - PHP 手册

编辑:

如果要显示多条消息,请使用以下代码:

$message=array();
if(isset($_GET['pw']) && !empty($_GET['pw']))
{
  $message[] = "first message";
}
if(isset($_GET['em']) && !empty($_GET['em']))
{
  $message[] = "second message";
}
if(isset($_GET['fn']) && !empty($_GET['fn']))
{
  $message[] = "third message";
}
if(isset($_GET['ln']) && !empty($_GET['ln']))
{
  $message[] = "forth message";
}
echo implode("\n", $message);

演示:http ://shaquin.tk/experiments/get-conditions2.php

它初始化$message为一个数组,然后在满足条件时添加到数组中。

在打印消息之前,它就是implode它,使用换行符作为“胶水”。

请参阅implode-PHP 手册

对于 HTML 页面,您可能希望将“胶水”设置为<br />元素,如下所示:

echo implode('<br />', $message);

(或者如果您使用的是 HTML4):

echo implode('<br>', $message);
于 2012-07-19T00:13:12.190 回答
0

你可以做

if ($message != "") { ?> 
   All your HTML code (including echo $message) goes here 
<?php
} else { do nothing here }
?>
于 2012-07-18T23:59:11.723 回答
0

<?php if (!empty($message)) { echo $message;}?>

or

<?php if (isset($message)) { echo $mssage;}?>

or

<?php if (($message !== "") || (isset($message)) { echo $message; } ?>

or anything to do if message exists then do this

于 2012-07-18T23:51:58.923 回答
-1

每个人的答案都有几乎相同的想法,但具体来说,您可以这样做:

$message="";

if(isset($_GET['pw']))
{
  $message = "first message";
}
else if(isset($_GET['em']))
{
  $message = "second message";
}
else if(isset($_GET['fn']))
{
  $message = "third message";
}
else if(isset($_GET['ln']))
{
  $message = "forth message";
}
?>
<?php if ($message) :?>
<html>
    <head>
    <style type='text/css'>
        .tab2
        {
            width:400px; height:40px;
            position: absolute; right: 300px; top: 70px;
        }

        .td2
        {
            background-color:pink;
            color:blue;
            text-align:center;
        }
     </style>
     </head>
     <body>

         <table class='tab2'>
             <td class='td2'><?php echo $message; ?></td>
         </table>
     </body>
<html>
<?php endif;?>
于 2012-07-19T00:11:10.110 回答