2017-08-18 147 views
-2

请专业程序员在房子里,这段代码有什么问题?Php从if语句重定向到新页面

每当我尝试运行它时,都会收到此错误。

Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\a\go.php on line 8

PHP代码:

<?php 

$term=$_POST['term']; 
$level=$_POST['level']; 

if (

$term = 'First'; 
$level='js1'; 

) 
{ 
header("Location: result.php"); 
exit(); 
} 
elseif (
$term = 'First'; 
$level='js2'; 
) 
{ 
header("Location: result2.php"); 
exit(); 
} 

else { 
$error = "Entry is invalid"; 
} 

?> 
+4

[阅读手册](http://php.net/manual/en/control-structures.if.php)关于IF声明 – RiggsFolly

回答

2

检查,如果条件。 if和else条件不得包含任何分号。如果您使用两种比较,则必须使用& &或||在他们之间。如果您在if和elseif语句中使用=,那么它将始终返回true。

<?php 

$term=$_POST['term']; 
$level=$_POST['level']; 

if ($term == 'First' && $level=='js1') 
    { 
    header("Location: result.php"); 
    exit(); 
    } 
else if ($term == 'First' && $level='js2') 
    { 
    header("Location: result2.php"); 
    exit(); 
    } 
else { 
    $error = "Entry is invalid"; 
} 

?> 
+0

太棒了!工作。谢谢 –

+1

除了解决这个混乱问题的工作外,还可以解释一下问题是什么以及如何解决问题。 –

2

更改,如果条件

应该

if($term = 'First'&& $level='js1') or if($term = 'First'|| $level='js1') 

    elseif ($term = 'First' && $level='js2') or elseifif($term = 'First'|| $level='js2') 

if ($term = 'First'; $level='js1';) 

elseif ($term = 'First' ; $level='js2';) 
+0

'elseif'也是错误的。也许值得一提的还有 – RiggsFolly

1

你的所有if语句有畸形格式。您所做的只是在您的if声明中设置变量。因此,您没有正确使用赋值运算符。您if说法应该是什么样子的一个例子是:

if($condition === true || $condition2 == 'hello'){ 
    doSomething(); 
} else if($condition === false || $condtion2 == 'bye'){ 
    doSomethingElse(); 
} 

编辑:另外我建议你的代码缩进技能的工作,这将真正帮助在未来的阅读你的代码。

+0

这是最好的答案。不只是为提问者编写代码。但解释了为什么它不起作用。 – Stender

+0

感谢upvote,我试着总是用'给男人一条鱼,你喂他一天;教一个男人去钓鱼,你养活他一辈子的哲学。 –

0

您在这些ifs中没有创建正确的布尔表达式。

if ($term === 'first' && $level === 'js1') {...} 

elseif($term === 'First' && $level === 'js2') {...} 

另外,我强烈建议你把死();重定向后避免不必要的负载(除非你需要在重定向后执行代码)。

-1

试试这个。

<?php 

    $term=$_POST['term']; 
    $level=$_POST['level']; 

    if($term == 'First' && $level=='js1'){ 
     header("Location: result.php"); 
     exit(); 
    } elseif ($term == 'First' && $level=='js2'){ 
     header("Location: result2.php"); 
     exit(); 
    } else { 
     $error = "Entry is invalid"; 
    } 
?> 
-1

如果已经发出已收到那么错误的标题把ob_start()到你的PHP文件的顶部,或者您也可以使用JavaScript这个像下面。

<script>window.location.href = "a.php";</script>