HTML/php表单:提交链接时出错
我有一个由php处理的HTML表单。表单有各种文本输入字段,其中一个字段要求用户输入包含HTML/php表单:提交链接时出错,php,html,forms,Php,Html,Forms,我有一个由php处理的HTML表单。表单有各种文本输入字段,其中一个字段要求用户输入包含http://的链接 问题是当我提交一个像http://www.google.com/表单在我的网站上显示来自不同php文件的随机内容,严重失败 这是我的代码简历: <form action="add.php" method="post"> <input type="text" name="link" /> <input type="submit" value="subm
http://
的链接
问题是当我提交一个像http://www.google.com/
表单在我的网站上显示来自不同php文件的随机内容,严重失败
这是我的代码简历:
<form action="add.php" method="post">
<input type="text" name="link" />
<input type="submit" value="submit" />
如果不提交包含http://
的字符串,则可以正常工作。有人知道为什么会发生这种情况吗?旁注:您将在更深处找到一个基于mysqli.*
的版本
假设您已连接到数据库,则未在值中用引号括起$link
更改此行:
mysql_query("INSERT INTO mytable(link) values( $link )");
^ ^ <- missing quotes
测试并使用此示例:(表单设置为self)并使用http://www.google.com/
作为输入,其他一些包含http://
<?php
define('DB_NAME', 'xxx');
define('DB_USER', 'xxx');
define('DB_PASS', 'xxx');
define('DB_HOST', 'xxx');
$dbh = mysql_connect(DB_HOST, DB_USER, DB_PASS);
if(!$dbh)
{
die('Could not connect to database: ' . mysql_error());
}
$db_select = mysql_select_db(DB_NAME);
if(!$db_select)
{
die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}
if(isset($_POST['submit']) && !empty($_POST['link'])){
$link = mysql_real_escape_string($_POST['link']);
mysql_query("INSERT INTO mytable (link) values('$link')");
if(!mysql_query)
{
die("sorry");
}
else{ echo "Success"; }
mysql_close();
}
?>
<!DOCTYPE html>
<html>
<body>
<title></title>
<h3>Place your Link Below:</h3>
<form action="" method="post">
<input type="text" name="link" />
<input type="submit" name="submit" value="submit" />
</body>
</html>
“在我的网站上显示来自不同php文件的随机内容”
-这是。。。真奇怪。你确定这个代码是问题所在吗?进一步分析症状,当页面呈现时,是什么导致它显示来自其他文件的随机内容?在数据库表中插入记录肯定不会向用户显示随机内容。它不会向任何人展示任何东西。其他代码正在这样做。当您调试其他代码时,内容来自哪里?我的add.php文件中没有一条echo语句。它显示我的主index.php文件中的内容,该文件位于完全不同的文件夹中。更奇怪的是,该代码仅在web服务器上失败。我的电脑里有带xampp的apache,它运行得很好。不管怎样,我们都没有任何信息可以用来诊断或解决这个问题。发布的代码中没有任何内容会导致此行为。问题可能是这个代码和其他东西的组合,但我们不知道。据我们所知,这个“随机内容”可能只是response.SQL注入中的iframe
?您使用的mysql api不推荐使用,您应该切换到pdo或mysqli并使用参数化查询。
mysql_query("INSERT INTO mytable(link) values('$link')");
<?php
define('DB_NAME', 'xxx');
define('DB_USER', 'xxx');
define('DB_PASS', 'xxx');
define('DB_HOST', 'xxx');
$dbh = mysql_connect(DB_HOST, DB_USER, DB_PASS);
if(!$dbh)
{
die('Could not connect to database: ' . mysql_error());
}
$db_select = mysql_select_db(DB_NAME);
if(!$db_select)
{
die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}
if(isset($_POST['submit']) && !empty($_POST['link'])){
$link = mysql_real_escape_string($_POST['link']);
mysql_query("INSERT INTO mytable (link) values('$link')");
if(!mysql_query)
{
die("sorry");
}
else{ echo "Success"; }
mysql_close();
}
?>
<!DOCTYPE html>
<html>
<body>
<title></title>
<h3>Place your Link Below:</h3>
<form action="" method="post">
<input type="text" name="link" />
<input type="submit" name="submit" value="submit" />
</body>
</html>
<?php
define('DB_NAME', 'xxx');
define('DB_USER', 'xxx');
define('DB_PASS', 'xxx');
define('DB_HOST', 'xxx');
$dbh = mysqli_connect(DB_HOST, DB_USER, DB_PASS);
if(!$dbh)
{
die('Could not connect to database: ' . mysqli_error());
}
$db_select = mysqli_select_db($dbh,DB_NAME);
if(!$db_select)
{
die('Can\'t use ' . DB_NAME . ': ' . mysqli_error());
}
if(isset($_POST['submit']) && !empty($_POST['link'])){
$link = mysqli_real_escape_string($dbh,$_POST['link']);
mysqli_query($dbh,"INSERT INTO mytable (link) values('$link')");
if(!mysqli_query)
{
die("sorry");
}
else{ echo "Success"; }
mysqli_close($dbh);
}
?>
<!DOCTYPE html>
<html>
<body>
<title>Home Page</title>
<h3>Please Place your Order Below:</h3>
<form action="" method="post">
<input type="text" name="link" />
<input type="submit" name="submit" value="submit" />
</body>
</html>