2013-07-27 67 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