标题,逻辑和数据库

时间:2013-07-27 20:52:04

标签: php mysql database insert

我的标题位置存在问题。我是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="">

1 个答案:

答案 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,您会自己看到它。