我使用以下代码从mysql行获得echo结果,但我需要将这些输出发送到.text文件,该文件将被生成并下载(我不需要回显它)。我的sql数据是简单的字符串,如下面的 -
Ar2rew3
df3432ss
sddfdsf
sdfsdfsd
sdfsdsd3
sererere
我只需要在每个字符串中换行。请告诉我现在我应该用现有代码添加哪些代码?我需要非常简单的解决方案我希望我的所有回声输出都在.text文件中下载
echo '<form action="" method="post">
Email:<input type="text" name="emailadrs"><br>
Worklink:<input type="text" name="worklink"><br>
<input type="submit" name="submit" value="Submit"></form>';
if (isset($_POST['submit'])) {
$emailadrs = $_POST['emailadrs'];
$worklink = $_POST['worklink'];
$sub_stat=1;
$qu = mysql_query("SELECT asin FROM working WHERE w_email='$emailadrs' AND w_asin_link='$worklink' AND submission_status='$sub_stat'");
while ($row = mysql_fetch_array($qu)) {
$asin = $row['asin']."<br>";
echo $asin;
}
}
答案 0 :(得分:1)
好的,所以我不会直接回答你的问题,因为老实说我不相信它会对你有所帮助,但我会给你一些指示......
1)您的脚本对SQL注入攻击持开放态度 - 如果您继续这样做,很可能任何人都可以通过精心设计的SQL注入攻击导出数据库的任何部分。 - 如果您不知道SQL注入是什么,请在此处阅读http://shishirceh.blogspot.de/2011/06/sql-injection-beginners-tutorial.html。
2)看看你的代码我猜你是PHP的新手(我们都必须从正确的位置开始)。编码“vanilla”PHP可能是一件很痛苦的事情,幸运的是,PHP社区中的人们已经创建了“框架”,您可以使用这些框架来创建PHP应用程序带来很多风险。我喜欢亲自使用Symfony,它非常容易上手,tuturial:http://symfony.com/doc/current/quick_tour/the_big_picture.html
3)你使用MySQL的方式已经过时,与最新版本的PHP不兼容。看看这里有更好的选择:http://www.w3schools.com/php/php_mysql_prepared_statements.asp
4)你编程的方式(混合用户看到的位和使网站工作的位)将引发你很多问题(安全性,与其他库的兼容性,理智)框架将负责这对你来说,并给你一个特定的地方来放置这些元素。然而,要真正利用PHP并成为“优秀”程序员,您应该首先学习面向对象的编程 - 我建议您通读本书:http://www.ycit-he.org/files/Resources/PHP%20Objects,%20Patterns,%20and%20Practice.pdf
5)如果你走下symfony路线,他们就会有一个用于写入文件的filesytem组件:http://symfony.com/doc/current/components/filesystem/introduction.html
6)使用Symfony,您可以轻松强制用户在生成文件后下载文件
// Generate response
$response = new Response();
// Set headers
$response->headers->set('Cache-Control', 'private');
$response->headers->set('Content-type', mime_content_type($filename));
$response->headers->set('Content-Disposition', 'attachment; filename="' . basename($filename) . '";');
$response->headers->set('Content-length', filesize($filename));
// Send headers before outputting anything
$response->sendHeaders();
$response->setContent(file_get_contents($filename));
希望这有帮助,
标记