我的标题位置存在问题。我是php的新手,在运行这个单独的php文件后,我无法重定向到我的索引页面。另外,我的函数无法判断文本框的内容是空白还是等于默认值“<>”。
谢谢
<?php
include('connectionFile.php');
//test for duplicate emails
$query="SELECT * FROM ClientEmail WHERE ClientEmailAddress = '$_POST[emailAdd]'";
$email=$_POST['emailAdd'];
$result=mysql_query($query);
$num=mysql_num_rows($result);
if($num==0)
{
if(isset($_POST['emailAdd']) && !empty($_POST['emailAdd']) && $_POST['emailAdd'].value != "<<please enter email>>")
{
// the form was submitted
//remove hacker HTML
$email2=strip_tags($_POST['emailAdd']);
//Insert data into database
$sql2="INSERT INTO ClientEmail SET ClientEmailAddress='$email2'";
$result=mysql_query($sql2);
//Direct back to homepage
echo "heloooo";
header('location:/index.php');
}
else
{
header('location:/index.php');
}
}
else
{
header('Location:http://www.google.com');
`enter code here`}
?>
修改
在建议更改后,我的错误日志如下
注意:使用未定义的常量db_selected - 在第15行的/home/clubbtpk/public_html/connectionFile.php中假定为“db_selected”
警告:无法修改标题信息 - 已在第28行的/home/clubbtpk/public_html/addEmail.php中发送的输出(/home/clubbtpk/public_html/connectionFile.php:15上的输出)
连接文件中的代码是:
<?php
$host="localhost";
$username="username";
$password ="password";
// Create connection to mysql server
$con=mysql_connect("$host","$username","$password");
// Check connection
if (!$con)
{
die ("Failed to connect to MySQL: " . mysql_error());
}
// Select database
$db_selected = mysql_select_db("DB", $con);
if(!db_selected)
{
die ("Cannot connect : " . mysql_error());
}
?>
编辑2
通过更改解决了第一个错误 如果(!db_selected) 至 如果(!$ db_selected)
分辨 在我的index.php文件中添加了以下代码行:
<?php
if(isset($_REQUEST["emailAdd"])){
include("addEmail.php");
}
?>
然后将表单的操作更改为“”,以便重新加载当前页面:
<form name="emailAddr" method="post" action="">
答案 0 :(得分:1)
在重定向之前,不得输出任何内容。
所以这是不允许的:
echo "heloooo";
header('location:/index.php');
编辑:你一定要在你的脚本上启用error_reporting。我在您的查询中发现了另一个错误:
$query="SELECT * FROM ClientEmail WHERE ClientEmailAddress = '$_POST[emailAdd]'";
应该是
$query="SELECT * FROM ClientEmail WHERE ClientEmailAddress = '" . $_POST['emailAdd'] . "'";
此外,您不应再使用mysql_ *函数,而是升级到mysqli_ *函数。并且在将输入的数据插入sql-queries之前,请务必检查输入的数据。
EDIT2:在脚本的开头添加:
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
EDIT3:
您还必须更改此行:
if(isset($_POST['emailAdd']) && !empty($_POST['emailAdd']) && $_POST['emailAdd'].value != "<<please enter email>>")
应该是:
if(isset($_POST['emailAdd']) && $_POST['emailAdd'] != "<<please enter email>>")
如果您打开error_reporting,您会自己看到它。