2017-08-09 14 views
0

私は$_GET['start']が数字であることを証明しようとしていますが、私はそうではありません。

また、私はテストサーバーにコードを入力し、あるとして、それは私のために働いた10

$number = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'j'); 
$start = 2; 
$len = isset($_GET['len']) ? (int) $_GET['len'] : 2; 
$s = isset($_GET['start']) ? (int) $_GET['start'] + 2 : 4; 

foreach($number as $value) { 
    print_r($value); 
} 
echo '<br>' . '<br>'; 

if(isset($_GET['start'])) 
    $start = $_GET['start']; 

foreach(array_slice($number, $start, $len) as $k) { 
    print_r($k); 
} 
echo '<br>' . '<br>'; 

if(is_numeric($_GET['start'])) { 

    echo '<a href="http://192.168.1.6/alpha.php?start=' . $s . '&len=2"> 
            continue</a>'; 
} 

else { 
    echo "not a nummber"; 
} 
+1

を入力して、自分自身でそれをテストすることができます[**検証やサニタイズ**](https://stackoverflow.com/questions/44445913/filter-sanitize-vs-filter -validate-whats-the-difference-and-to-use/44446245#44446245)の値を指定します。 – Qirel

+1

@Blaiseが言ったように、あなたは '$ start'変数を使うつもりでしたか?変数をGETとして渡してもよろしいですか? – GrumpyCrouton

+0

私は同意する、これはすでに動作するようだ。問題の説明をもう少し追加できますか? –

答えて

1

より$startの値が大きくなっていないようにする必要があります。ただし、コードに$_GET['start']が定義されていないため、テストURLに?start=2が含まれていることを確認してください。

あなたは可能性が$_GET['start']=2あるいは$_GET['start']='2'