2012-07-15 147 views
0

我从一开始就一直在构建我的网站,直到今天没有框架或所见即所得的软件。我现在意识到,我做这件事的方式可能会更简单。URL重写和url参数

我是一个在PHP和MySQL noob,并希望了解它是如何工作的。这就是为什么我决定制作一个关于特定主题的网站。这是学习这些2种语言的最佳实践...

所以,

我的网站去了解视频内容每日更新。

我使用每个视频制作一个独特的网页......现在我有超过300页的视频内容,我想将所有这些内容放到我的数据库中,并将它们放在一个模板网页中。

当我想要应用更改时,我必须打开所有这些网页并在每个页面上进行所需的更改。幸运的是,搜索替换框可以帮助我。

我只是想在网站上做一些事情,可以让我的日常工作和工作更快更轻松。

我想用mysql请求做一些URL重写。

我正在处理一段代码,但是我找不到哪里出了问题。 Dreamweaver告诉我synthax没有错误,但是当我预览它(WAMP)时,它会一直显示我一个错误,直到摆脱“p”参数。以下,我将加入您使用的代码。

<?php 
include "connect.php"; 
$id = $_GET["id"]; 
$sql = "SELECT * FROM videos WHERE id=$id LIMIT 1"; //mysql tells me there's a error near LIMIT 1 
$req = mysql_query($sql) or die(mysql_error()." ERROR"); 
$data = mysql_fetch_assoc($req); 

if($data["url"]!=$_GET["url"]) 
{ 
    header("location:/video/atest.php/".$data["id"]."-".$data["url"]); //if the URL is altered, it will be immediatelly fixed thanks to this function 
} 
?> 

你有一个错误的SQL语法;检查 对应于你的MySQL服务器版本正确的语法使用 接近“LIMIT 1”在行1错误

感谢,我将能够在我的数据库每一块的内容插入用于手动每个独特的视频>标题,说明......无需进行数千项更改并上传新的网页。

URL参数也在我的数据库上,php脚本调用数据库来检索URL并使其看起来像一个独特的网页。

哦,我的英语对不起......

非常感谢。

+0

该死的,我忘了说你你好我的第一篇文章。 – 2012-07-15 16:39:48

+1

SQL和Header注入。 – 2012-07-15 16:44:26

+0

您不应该直接在SQL查询中使用请求参数。总是使用'mysql_real_escape_string'(http://php.net/manual/en/function.mysql-real-escape-string.php)转义参数来防止SQL注入。旧的'mysql'扩展名被弃用,使用'mysqli'。最好还是使用PDO(http://www.php.net/manual/en/mysqli.overview.php) – 2012-07-15 16:45:44

回答

1

尝试

$id = mysql_real_escape_string($_GET["id"]); 
$sql = "SELECT * FROM videos WHERE id=$id LIMIT 1"; 
+0

嗨, 谢谢你的回答。 问题依然存在。 注意:未定义的索引:第4行的C:\ wamp \ www \ video \ atest.php中的id 其他建议? – 2012-07-16 13:59:30

+0

你之前得到的是一个MySQL错误。您在上面的评论中发布的内容仅仅是一个PHP通知。你可以通过在使用它之前检查索引是否存在来避免它。$ id = mysql_real_escape_string(isset($ _ GET ['id'])?$ _GET [“id”]:'');'。我不确定你在这里做什么。你引用一个参数'p'来修正你遇到的问题,但是在代码中没有看到任何参数/变量'p'。 – 2012-07-16 16:23:55

+0

嘿乔伊斯, 对不起,这是一个错误,我想说“身份证”... – 2012-07-16 19:57:48

0

尝试呼应$ _GET [ “身份证”];在sql之前,检查你是否有任何价值。并且学习“PDO”比使用直接的sql语句更好,或者如Joyce所说的使用escape_string。

+0

嗨, 谢谢你的回答。如果我想正确使用PDO,我想我必须对最初的代码进行一些更改。 – 2012-07-16 14:32:00

0

更改您的行: $ sql =“选择*从视频WHERE id = $ id LIMIT 1”;

对此: $ sql =“选择*从视频WHERE id ='”。$ id。“'LIMIT 1”;

您的SELECT选择字符串'$ id'而不是php变量$ id。