如果URL字符串值在数据库中不是或有效,则重定向404?

时间:2016-06-01 10:06:09

标签: php pdo

我有一个视频'通过URL(video.php?id=VALUE)传递变量的页面。整个页面使用此id值来提取有关视频的各种详细信息 - 标题,静止年份等。

如果在字符串中输入了错误的值(/不在数据库中的某些内容),我想显示404 /错误,如果值正确,则显示从数据库中提取相应值的页面

我的代码目前的结构如下:

<?php 
    $video = $_GET['video'];
    $videodata = $pdo->prepare("SELECT * FROM video WHERE siteurl = ? LIMIT 1");
    $videodata->execute([$video]);
    ?>

    <head>
     <meta charset="utf-8">
     <meta http-equiv="x-ua-compatible" content="ie=edge">

     <title>   
     <?php
     foreach ($videodata as $videodatas) {
     echo "{$videodatas['title']}</title>";

     echo "<meta property=\"og:title\" content=\"{$videodatas['title']}\"/>"; }?>
     <meta name="description" content="Description lives here">

     <meta name="viewport" content="width=device-width, initial-scale=1">
     <meta name="apple-mobile-web-app-capable" content="yes">

     <meta property="og:url" content="<?php echo "http://" . $_SERVER['HTTP_HOST']  . $_SERVER['REQUEST_URI'];?>" />


     <link rel="apple-touch-icon" href="apple-touch-icon.png">

     <link rel="stylesheet" href="scripts/style.css">


    </head>

如果成功匹配,则会生成页面,在<title>标记和整个页面的其余部分列出正确的视频标题。

但是,当我在URL中测试不正确的变量/我的数据库中没有的东西时,页面会吐出一个完整的空白页面,其中包含{{1}中的所有原始HTML标签。

任何帮助(即使是在如何实现这一目标的教程方向)都将非常感激。

编辑:

我尝试编写一些代码作为测试,目的是在我使用它时替换<title>if语句。该代码目前无法运作,我不知道我哪里出错...:

else

0 个答案:

没有答案