Php 如何使用友好的URL?
我花了几天时间编写了一小段php脚本(我是一个noob) 这是我的密码:Php 如何使用友好的URL?,php,mysql,url,rewrite,Php,Mysql,Url,Rewrite,我花了几天时间编写了一小段php脚本(我是一个noob) 这是我的密码: <?php require ('connect.php'); $requete = mysql_query('SELECT * FROM videos WHERE id="'.$_GET['id'].'"') or die(mysql_error()); if(mysql_num_rows($requete)=='0'){ }else{ while($resultats = mysql_fetch_arr
<?php
require ('connect.php');
$requete = mysql_query('SELECT * FROM videos WHERE id="'.$_GET['id'].'"') or die(mysql_error());
if(mysql_num_rows($requete)=='0'){
}else{
while($resultats = mysql_fetch_array($requete)){
?> <!-- some html content --> <?php
}
}
mysql_close();
?>
</body>
</html>
出什么事了
我也想使用它,但我没有在屏幕上显示任何内容(无法找到此页面)
它在我的表中搜索,在其中找到URL关键字
谢谢大家! 我认为您的问题实际上可能很简单:RewriteRule以错误的方式捕获变量
RewriteRule atest/([a-zA-Z0-9\-]+)-([0-9]+)atest.php?id=$1&url=$2[L,QSA]
将匹配“atest/example-42”,并将其映射到“atest.php?id=example&url=42”-$1表示第一组括号,将$2映射到第二组括号。尝试一个print\u r()
或var\u export()
的$\u GET
顺便说一句,在某些边缘情况下,正则表达式可能会出错,因为它不会断言ID必须在最末尾出现——因此“atest/example-2-word-42”可能最终会选择ID为2,而不是42。添加一个“$”应该可以解决这个问题:RewriteRule-atest/([a-zA-Z0-9\-]+)-([0-9]+)$atest.php?id=$1&url=$2[L,QSA]
如果重写规则根本不起作用(你的问题不清楚结果是什么),那可能是Apache的.htaccess处理中的一些微妙之处…Hmm。。我不知道“Thank”是一个PHP关键字。它就像是throw,但你会看到一个充满小猫的页面。不要与
Spank
混淆,后者会让你看到一个完全不同的页面。你需要编写代码,将友好的url解释为id。你不能只是链接到它,然后期望脚本自己理解。除了要注意将$直接放入查询之外,这是一个很大的安全漏洞。使用(int)验证它,对于文本值,使用mysql real escape string函数欢迎来到美丽的SQL注入世界!你的网站可以不费吹灰之力就被黑客入侵。我知道你是个noob,所以现在是忘记旧的mysql\uuz
函数的最好时机,现在还不算太晚!如果你正在学习,那就学习mysqli或PDO编写的语句,让世界变得更快乐。
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.(css|png|jpe?g|gif|js|mp3|3gp|ico)$
RewriteRule atest/([a-zA-Z0-9\-]+)-([0-9]+) atest.php?id=$1&url=$2[L,QSA]
if($resultats["url"]!=$_GET["url"]) {
header ("location:/mysite/video/".$resultats["url"]."-".$resultats["id"]);
}