2013-07-27 47 views
0

我遇到了我的标题位置问题。我是新来的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未定义不变的 - 在/ home/clubbtpk假设 'db_selected'第15行的/public_html/connectionFile.php

警告:无法修改标题信息 - 已经发送的标题(输出始于/home/clubbtpk/public_html/connectionFile.php:15)在/home/clubbtpk/public_html/addEmail.php线路28上

在连接文件中的代码是:

<?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上,你会看到自己吧。

+0

我用回声来测试代码的逻辑。我现在拿出来,我只是得到一个空白页 – user2624044

+0

我添加了另一节到我的答案。您应该将此代码添加到脚本的开头并粘贴您在问题中收到的错误消息! –

+0

即使我有我可以添加到数据库的代码。如果我可能会问,你的修改版本如何改变什么?我的主要问题仍然是重定向,虽然 – user2624044