PHP网站URL ID请帮助


PHP site URL ID please Help!

请有人帮助我建立第一个从MySQL表中提取信息的网站,到目前为止,我成功地连接到数据库并提取了我需要的信息。

我的网站被设置为显示表中的单个记录,但我需要某种方式来更改每个记录的URL,这样我就可以将页面链接到特定的记录。我在facebook等网站上看到,每个人的个人资料都以一个唯一的数字结尾。例如。http://www.facebook.com/profile.php?id=793636552

我想把我的Id建立在表上的主键上,例如location_Id

到目前为止,我已经包含了我的php代码

<?php
require "connect.php";
$query =  "select * from location limit 1";
$result = @mysql_query($query, $connection) 
or die ("Unable to perform query<br>$query");
?>
<?php
while($row= mysql_fetch_array($result))
{
?>
<?php echo $row['image'] ?>
<?php
}
?>

感谢

使用$_GET从脚本的查询中检索内容(在某种程度上也称为命令行):

<?php
$id = (intval)$_GET['id'];  // force this query parameter to be treated as an integer
$query = "SELECT * FROM location WHERE id={$id};";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) == 0) {
   echo 'nothing found';
} else {
   $row = mysql_fetch_assoc($result);
   echo $row['image'];
}

如果这是您第一次涉足MsSQL开发,需要考虑很多事情。

SQL注入

有人可能会通过使用你的url中的id插入/删除等内容(小心!,清除你的输入)

泄漏数据

有人可能请求id=1234924,而您期望id=12134(因此可能会显示一些敏感数据,等等)。

使用轻型框架

如果你以前没有看过,我建议你使用框架(CodeIgniter或CakePHP)、mysql调用、连接、验证都是样板代码(总是必须这样做)。最好是节省时间并着手制作你的应用程序,而不是重新发明轮子。

从数据库中选择记录后,可以使用header()函数将用户重定向到其他url。示例:

header('Location: http://yoursite.com/page.php?id=123');

您需要创建一个链接,指向与您想要的URL相同的(或新页面),然后逻辑检查参数以提取特定图像。。。

如果你列出了所有的,你可以:

echo "<a href=samepage.php?id=" . $row['location_id'] . ">" . $row['name'] . "</a>"

这将使链接。。现在,当他们点击它时,你会想在samepage.php中查找它:

if (isset($_GET['id']) && is_numeric($_GET['id'])) {
   //query the db and pull that image..
}

您要查找的是查询字符串或get variables。您可以使用$_GET['name']通过php访问get变量。例如:http://www.facebook.com/profile.php?id=793636552CCD_ 5之后的所有内容都是查询字符串。变量的名称是id,因此要通过php访问它,您需要使用$_GET['id']。您可以在此基础上在变量之间构建一个&。例如:http://www.facebook.com/profile.php?id=793636552&照片=1234这里有$_GET['id']$_GET['photo']

变量可以很容易地从URL中提取出来:

www.site.com/index.php?id=12345

我们可以使用$_GET['id']访问id后的号码

echo $_GET['id'];

输出:

12345

因此,如果你有一个记录列表(或者图像,在你的情况下),你可以更容易地链接到它们:

$query = mysql_query(...);
$numrows = mysql_num_rows($query);
for ($num=0;$num<=$numrows;$num++) {
    $array = mysql_fetch_array($query);
    echo "<a href='"./index.php?id=". $row['id'] ."'" />Image #". $row['id'] ."</a>";
}

它会像这样显示你的所有记录:

Image #1 (links to: http://www.site.com/index.php?id=1)
Image #2 (links to: http://www.site.com/index.php?id=2)
Image #3 (links to: http://www.site.com/index.php?id=3)
...