2017-05-14 12 views
0

visitorは、user_001、idのようにスクリプトを書いて、001.phpがユーザをリダイレクトする前に配列内にあるかどうかを確認します。リダイレクトの前に配列内にあるかどうかチェック

私はそれがin_array()関数を含むと推測していますか?

<?php 
    $exitlink = "error.php"; 
    $page_name=$_POST['usernumber']; 
    $pos=strpos($page_name,"_"); 
    if($pos==true){ 
     $valid_ids = array("001.php", "002.php", "003.php"); 
     $request = substr($page_name, strpos($page_name, "_") + 1); 
     header("Location:" . $request . ".php"); 
    }else { 
     header("Location:" . $exitlink); 
    } 
?> 

いいので、私は配列をリストされています:それは有効なの.phpや$exitlinkに行くことにしました前$requestが配列である場合

$valid_ids = array("001.php", "002.php", "003.php"); 

は、どのように私は、スクリプトチェックを作るのですか?

+3

使用 'in_array()' –

答えて

0

OK、みんな、あなたの組み合わせの助けのおかげで、一緒に使用する場合の例 "I_am_a_goat"については、「_」

することにより、各分割は["I", "am", "a", "goat"]に分けますとこれは、文字列の配列に文字列を変更します私はそれをひっくり返した!

<? 
$exitlink = "error.php"; 
$page_name=$_POST['usernumber']; 
$pos=strpos($page_name,"_"); 
$request = substr($page_name, strpos($page_name, "_") + 1); 
$valid_ids = array("123", "456", "789"); 
if(in_array($request, $valid_ids)){ 
header("Location:" . $request . ".php"); 
} 
else{ 
header("Location: " . $exitlink); 
} 
?> 

XD

2

ニースとシンプルなもの、in_array()を使用してください。また、あなたの有効なIDのは.phpが含まれていないことを確認してください、さもなければ、あなたは{id}.php.php

if(in_array($request, $valid_ids)){ 
    header("Location: " . $request); //Add ".php" only if the request doesn't have it in it. Or else you'll get Location: 001.php.php 
}else{ 
    header("Location: " . $exitlink); 
} 

EDITで終わることができます:常にuser_{some number}あることを行っている場合は、2番目の追加については、あなただけの機能を置き換えるのPHPを使用することができます次のように... ""

str_replace("user_", "", $request); 

EDIT 2 "user_"を交換する: を使用explode();

$stringExploded = explode("_", $request); 
    $requestId = $stringExploded[1]; 

explode("_", array);

+0

ああはいあなたは正しい、私のミス(の.php) は、どのように私は続けるだろう:$要求=のSUBSTR($のPAGE_NAME、strpos($のPAGE_NAME、 "_")+ 1);配列をチェックしますか? –

+0

|| !in_array - 多分これでしょうか? –

+0

@jinshun_li編集されたオリジナルの答え(: –

関連する問題