2017-11-10 23 views
0

ページ変数が$(未設定)であるかどうかを確認する必要があるページングプロジェクトがあります。ページ1のURL $ページ変数は整数

(たとえば、/my_pagination.php?Page=[six] & txtKeyword =)

の代わりに、(たとえば、/my_pagination.php?Page=[6]でない場合& txtKeyword =)。

これは私が試みたものですが、私のページネーションは他のページに行くのを止め、ページ1にとどまります。私は援助が必要ですか?

$Page= 1; 

     if(isset($_GET['Page'])){// Checks if the $Page variable is not integers) 
      $Page= preg_replace('#[^0-9]#', '', $_GET['Page']); 
     }` 

とここに私の元のコード

if(!isset($_GET['Page'])){ // Checks if the $page variable is empty (not set) 
    $Page = 1;  // If it is empty, we're on page 1 
} else{ 

    $Page = $_GET['Page']; 
} 
+0

: '' 'ヘッダー(「場所:/」+ $ページ)、ノートが、' '' –

+2

^'ヘッダ(つまり) 'あなたがそれを呼び出そうとする前にDOMに出力されたコンテンツを持っているなら、'はうまくいきません:) –

答えて

0

は、変数を使用すると、TRUEまたはFALSEhttp://php.net/manual/en/function.is-int.php を返しますどのis_int()を使用することができ整数であるかどうかを確認することですあなたから何かを検証したい場合がありますのでご注意ください$_GET変数は信頼できないため(ユーザー入力)、

また、$_GETの文字列は常に文字列です。 =>is_int() cannot check $_GET in PHP?

この理由から、代わりにis_numeric()を使用します。 =>http://php.net/manual/en/function.is-numeric.php

絶対に整数が必要な場合は、両方の機能を組み合わせて使用​​できます。

Benjamin Closeがコメントに述べたように、header()機能をリダイレクトに使用できます。 http://php.net/manual/en/function.header.php

<?php 
    if(isset($_GET['page']) && is_numeric($_GET['page'])) { 
     $page = (int) $_GET['page']; 
     //build url based on int based page number 
     $url = 'http://yourdomain.tld/page.php?numbers=' . $page; 
    } else { 
     $page = $_GET['page']; 
     //build url based on text based page number 
     $url = 'http://yourdomain.tld/page.php?letters=' . $page; 
    } 
    header('Location: '. $url); 
?> 
0

あなたのURLは改ページのようには見えません。通常はページがあり、次にページの内容を改ページする方法があります。ページにリダイレクトしないでください。コンテンツを計算し、ページに関連付けられたコンテンツの一部を表示する必要があります。ページは通常、実際のページではありません。それらは1つの長いページの内容の一部です。

page = foo.php 

/foo.php?page=$page 

of 

/foo.php/PAGE (ie /foo.php/1 /foo.php/2 etc) 

ページがどのようにページされるかはデザインの一部です。 1つの手法は、マーカーを使用することです。

<page> 

長いページがあるとします。

あなたはそれのようなもので、別のページに移動する必要がウェブブラウザに指示する必要があり
$pages = explode('<page>',$pageContent); 

$pages now have your pages in an array from 0 -> $page-1 

So for Example you could do: 

// url = /foo.php?page=3 

// You have to handle the case of /foo.php where no page is specified 

$page = intval($_GET['page']); // intval will return 0 if page is empty 
if ($page < 1) 
    $page = 1; 
$thisContent = $pages[$page-1]; 

// display $thisContent 
関連する問題