2016-08-03 3 views
0

kann mir jemand sagen, wie man auf eine andere Seite umleitet, wenn ".php? Date =" nicht gefunden wird. p.s habe ich es unterscheiden und ich denke, das ist ein Problem, also wie man es löst? Dank vor HandWie umleiten wenn date.php? Date = * nicht gefunden oder nicht existiert

<!--==================== 

links block.php ====================== ->

<ul class="side-block"> 
       <li><a href="#">არქივი</a></li> 
       <?php 
      $archive = mysqli_query($db,"SELECT DISTINCT left(date,7) as month FROM blog ORDER BY month DESC , id DESC LIMIT 6"); 
      while($myrow = mysqli_fetch_array($archive)){ 
       printf('<li><a href="date.php?date=%s" class="custom">%s</a></li>',$myrow["month"],$myrow["month"]); 
       } 
?> 
      </ul> 
<!-- 
=============================================== 
date.php 
=============================================== 
--> 

<?php 
    include 'bd/blocks/bd.php'; 
    $result = mysqli_query($db,"SELECT keywords,description,author FROM page WHERE page='blog'"); 
    $myrow = mysqli_fetch_array($result); 
if(isset($_GET['date']) && !empty($_GET['date'])){ 
    $date = $_GET['date']; 
} 
elseif (!isset($_GET['date']) && empty($_GET['date'])) { 
    header("Location: index.php"); 
    exit; 
} 
else{ 
    header("Location: index.php"); 
    exit; 
} 
$date= "$date"; 
$dates=substr($date,0,7); 
$result2 = mysqli_query($db,"SELECT date FROM blog WHERE date='$dates' "); 
$myrow2=mysqli_fetch_array($result2); 
echo mysqli_num_rows($result2); 
if(!mysqli_num_rows($result2)){ 
header("Location: index.php"); 
    exit; 
} 
    $date_title=$date; 
    $date_begin =$date; 
    $date++; 
    $date_end=$date; 
    $date_begin=$date_begin.'-00'; 
    $date_end=$date_end.'-00'; 
?> 
+0

Sie müssen erklären, was mehr ist nicht eindeutig festgestellt werden. Ist date.php selbst was fehlt? Oder wenn der Parameter 'date' vom Client nicht gesetzt/bereitgestellt wird? – alzee

+0

Datum Parameter ist nicht festgelegt/vom Client bereitgestellt –

Antwort

0
if(isset($_GET['date'])){ 
    $date = $_GET['date']; 
} 

else{ 
    header("Location: index.php"); 
    exit; 
} 
$dates= date("Y-m", strtotime($date)); 
$result2 = mysqli_query($db,"SELECT count(date) as total FROM blog WHERE date like '{$dates}%' "); 
//since the data contain month-year.. you should use other name for this fieldname. 
$myrow2=mysqli_fetch_array($result2); 
if($myrow2['total']==0){ 
    header("Location: index.php"); 
    exit; 
} 
0
<?php 
if(!isset($_GET["date"])){ 
header("Location: http://newsite"); 
} 
$date=$_GET["date"]; 
?> 

Wie macroman darauf hingewiesen hat, funktioniert dies nur, wenn es ganz oben auf der Seite steht, vor dem ersten oder Echo.

+0

funktioniert nicht, wenn ich schreibe date.php? Date = 99999, die nichts zeigt statt Umleitung –

+0

Dies ist keine Kopie zu Code einfügen. Es ist ein Beispiel, um Ihnen zu helfen, Ihren Code zu verbessern –

+0

, aber ich habe viele Dinge versucht, nicht funktioniert –

1

Sie können keine Header zum Umleiten verwenden, nachdem Sie etwas auf die Seite ausgegeben haben. Verwenden Sie so etwas wie dies statt, die aus Echos Javascript Alternative:

else { 
    echo("<script>location.href = 'www.myurlhere.com';</script>"); 
} 
+0

Aber hier $ result = mysqli_query ($ db, "SELECT * FROM Blog WHERE id = '$ id'"); $ myrow = mysqli_fetch_array ($ result); if (! Mysqli_num_rows ($ result)) { header ("Ort: index.php"); \t Ausgang; } alles funktioniert perfekt –

Verwandte Themen