2017-08-18 5 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

IF文 – RiggsFolly

答えて

2

は、あなたの場合の状態を確認してください。 ifおよびelse if条件にセミコロンが含まれていてはなりません。 2つの比較を使用する場合は、& &または||それらの間に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

グレート上(http://php.net/manual/en/control-structures.if.php)[マニュアルを読みます]!働いた。ありがとうございます –

+1

この混乱を修正してその良い仕事を離れて、問題が何であるか、それを修正する方法についてのいくつかの説明を行うことができます。 –

2
があなたの

条件

場合を変更

それはあなたのif文のすべてが不正な形式を持っている

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($condition === true || $condition2 == 'hello'){ 
    doSomething(); 
} else if($condition === false || $condtion2 == 'bye'){ 
    doSomethingElse(); 
} 

EDIT:また、私はあなたのコードのインデントのスキルに取り組んで推薦する、これは本当に将来的にあなたのコードを読むのに役立ちます。

+0

これは最高の答えです。質問者用のコードを書くだけではありません。それがなぜ機能していないのか説明しています。 – Stender

+0

upvoteのおかげで、私はいつも '男に魚を与えて、あなたは一日彼に食べさせます。男に魚の釣りを教え、あなたは彼に生涯の哲学を与える。 –

0

これらのifで正しいブール式を作成していません。

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

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

また、die(); (リダイレクト後にコードを実行する必要がない限り)不必要な負荷を避けるためにリダイレクトした後

-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

すでにPHPファイルの先頭に()を置くためのob_startか、また、下記のように、このためにJavaScriptを使用することができ、その後に表示されるエラーを送ったヘッダがある場合。

<script>window.location.href = "a.php";</script> 
関連する問題