使用php和mysqli自动创建新页面
我仍然在学习php和mysqli,有很多东西需要学习,但在这一点上,这个问题是我最重要的优先事项之一 我做了一些关于这个问题的研究,但老实说,就我的水平而言,我现在被相当复杂的东西压得喘不过气来。我想找到一种最简单、最有效的方法来“自动”生成大量页面,每个页面中都有不同的数据 下面第1页代码的示例非常简单,因为实际的页面实际上有更多的内容,但我希望,简化的示例能够说明我的观点使用php和mysqli自动创建新页面,php,mysqli,Php,Mysqli,我仍然在学习php和mysqli,有很多东西需要学习,但在这一点上,这个问题是我最重要的优先事项之一 我做了一些关于这个问题的研究,但老实说,就我的水平而言,我现在被相当复杂的东西压得喘不过气来。我想找到一种最简单、最有效的方法来“自动”生成大量页面,每个页面中都有不同的数据 下面第1页代码的示例非常简单,因为实际的页面实际上有更多的内容,但我希望,简化的示例能够说明我的观点 <?php $servername = "servername"; $username = "username"
<?php
$servername = "servername";
$username = "username";
$password = "password";
$db= "db";
$conn = mysqli_connect("servername","username","password","db");
$query = "SELECT word FROM demo WHERE group=1";
$result = $conn->query($query);
$row = mysqli_fetch_assoc($result);
$word = $row['word'];
echo $word;
?>
在我的表格中,我在“组”列中有大约500个条目(记录?),编号为1、2、3等等,一直到500。
出于我的特定目的,我绝对需要创建尽可能多的在线页面,就像有组一样——在本例中,500个页面
第2页的回音必须指向第2组,第3页的回音必须指向第3组,依此类推
显然,有一种方法可以做到这一点,无需复制和粘贴代码500次,也无需手动更改每个组中的组!哈哈。但最简单的方法是什么
提前感谢您的理解和帮助,祝您度过愉快的一天。如果我理解正确,我相信您正在等待从数据库动态创建页面。您可以在请求
http://yoursite.com/page.php?group=1.
然后在代码中更新查询以执行以下操作:
$query = "SELECT word FROM demo WHERE group=".$_GET['group'];
该查询是不安全的,因为任何用户都可以将原始mysql注入$\u GET['group']变量
$group = mysqli_real_escape_string($conn, $_GET['group']);
$query = "SELECT word FROM demo WHERE `group`='$group'";
这样更安全 因此PHP将在其访问的任何目录中默认查找名为
index.PHP
的文件。您可以将这样的文件放在public_html或www的根目录中,或者您的站点访问的任何地方。现在,在此文件中,您可以执行以下操作:
<?php
if($_GET['group']){ //Make sure you have the var
$query = "SELECT word FROM demo WHERE `group`=?"; //The query with param
if ($stmt = mysqli_prepare($conn, query){ // try it out
mysqli_stmt_bind_param($stmt, "i", $_GET['group']); // bind the data
$stmt->execute(); //run it
$result = $stmt->get_result(); // get results
//use result to echo and stuff
}
} else {
//Do something incase there is not a group specified.
echo "Nothing here";
}
?>
了解$\u获取
参数。组
是真实的列名()吗?你不应该需要500页。拥有一个动态构建内容的页面。使用GET
参数了解用户所在的页面。使用参数化查询。谢谢你们。我将研究$\u GET参数和参数化查询。不,“组”不是实际的字段名。但是如果是的话,这会是一个问题吗?是的,group
是mysql
中的一个保留术语。请参阅链接的文档。带有(R)
的所有内容都是保留的术语,除非在backticks中使用(或者您可以一直使用backtick)。已编辑。应建议新用户使用参数化查询。此查询将出现语法错误,因为zgroup
是一个保留的mysql单词。在参数绑定警察到达之前,您应该删除更安全的部分。清除键入错误。我同意应该使用陈述,但这超出了回答他们问题的范围。谢谢大家。我会尽力的。顺便说一句,感谢大家对mysql注入的关注。我正在阅读it和表单等的其他安全问题,但为了我自己的练习/学习,我现在正在优先尝试解决这个500页的问题。我会确保我有安全措施,在我把他们从私人演示带到公共场合之前,还有更多的安全措施。但我现在需要一段时间才能把这件事做好。。。一次只做一件事谢谢你的书呆子提供了详细的例子。老实说,我仍然对一些基本问题感到困惑,认为我不能马上让它工作。我认为我需要更多的学习/实践,这样我才能理解你们在代码中使用的一些东西,我并不真正理解,但我非常感谢你们的输入和示例。最终,我将准备好正确地使用它,并掌握代码中的所有内容。再次感谢大家