PHP 条件语法;两个分支都出现了


php conditional syntax; both branches appearing

Kevin Yank教程中的php 'if statement'示例似乎不起作用。具体而言,条件的两个分支在页面加载时显示。我也尝试更改为非速记的"if"语法,但无济于事。问题不是语法?

代码如下:

<!DOCTYPE html>
<html>
<head>
<title> Sample Page </title>
</head>
<body>
<?php if(isset($name)) : ?>
    <p> Your name: <?php echo ($name); ?> </p>
    <p> This paragraph contains a <a href="goodone.php"> link</a> that passes the name variable on to the next document. </p> 
<?php else : ?>  
    <!-- No name has been provided, so prompt the user for one -->
    <form action="<php echo($PHP_SELF); ?>" method="get">
    Please enter your user name:
    <input type="text" name="name">
    <input type="submit" value="ok">
    </form>
<?php endif; ?>
</body>
</html>

这个脚本 遗漏了一个非常重要的元素>>> $name=$_GET['name']; <<<</p>

必须首先将name声明为变量。

它已添加到此行中:<?php if(isset($name)) : ?>

请参阅下面的代码:(经过测试并正常工作(

<HTML>
<HEAD>
<TITLE> Sample Page </TITLE>
</HEAD>
<BODY>
<?php $name=$_GET['name']; if (isset($name)): ?>
  <P>Your name: <?php echo($name); ?></P>
  <P>This paragraph contains a
<A HREF="newpage.php?name=<?php echo(urlencode
($name)); ?>">link</A> that passes the
name variable on to the next document.</P>
<?php else: ?>
  <!-- No name has been provided, so we
       prompt the user for one.         -->
  <FORM ACTION="<?php echo($PHP_SELF); ?>" METHOD="GET">
  Please enter your name: <INPUT TYPE="TEXT" NAME="name">
  <INPUT TYPE="SUBMIT" VALUE="GO">
  </FORM>
<?php endif; ?>
</BODY>
</HTML>

另外,作为额外的奖励(经过测试和工作(,您可以在提交表单后单击链接后,在goodone.php文件中使用下面的PHP代码来echo名称。您可以从这里做任何你想做的事情,用于数据库使用等。

<?php 
echo($_GET['name']);
// do something else
?>