2014-01-25 81 views
0

Page 1 abc.html ..在提交時會跳轉到此PHP頁面。 這是頁面PHP1.php在這裏我想驗證用戶輸入,如果名稱和ID在數據中,他將被轉發填寫第二部分的註冊,如果不是它只會給錯誤。標題無法正常工作PHP

<?php 
session_start(); 
$_SESSION["acb"] = "good"; 
$_SESSION['team'] = $_POST['team_name']; 
$con = mysql_connect("localhost", "user", "password"); 
if (!$con) 
    {die('Could not connect: ' . mysql_error());} 
mysql_select_db("mydbName"); 
if(isset($_POST['team_name'],$_POST['id'])){ 
$team_name = mysql_real_escape_string($_POST['team_name']); 
$id = mysql_real_escape_string($_POST['id']); 
if (!empty($team_name)) { 
$result= mysql_query("SELECT COUNT(`teamname`) FROM `table` WHERE `teamname`='$team_name' AND `id`='$id'");  
     $team_result = mysql_fetch_row($result); 
    if ($team_result[0] == '0') { //if does not exist print failed. 
      echo 'Varification failed'; 
     } else { 
header('Location: http://www.abc.com/REGISTERpart2.php'); 
}} } ?> 

RegisterPART2.php是我在哪裏檢查我的會話是否存在(我開始在最後一個文件中)。如果不是我想重定向回以形成一個和填充第一然後來登記部2

`<?php 
session_start(); 
$name = $_SESSION['team']; //a value stored in session which i used on this page 
if (($_SESSION["abc"] !== 'good')) { 
header('Location: http://www.abc.com/page1.html'); //take back to stage 1 coz user did not fill first part. 
} 
else{ 
echo $name. 'you have completed register process part one you may continue!'; 
} 

?>

+2

[**請不要在新的代碼中使用'mysql_ *'功能**] (http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**粉紅色框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – h2ooooooo

+0

..說,你的問題是什麼? – h2ooooooo

+0

基本上所有的東西都在localhost上工作,但是隻要將我的代碼上傳到託管服務器上就行不通。也沒有錯誤。 :O – SD7

回答

0

如果您使用的是新的MySQL版本(MySQLi的),所以在第一頁將變爲:

<?php 
session_start(); 
$_SESSION["acb"] = "good"; 
$_SESSION['team'] = $_POST['team_name']; 
$con = new mysqli("localhost", "user", "password", "mydbName"); 
if (!$con) { 
    die('Could not connect: ' . $con->error()); 
}; 
if (isset($_POST['team_name'],$_POST['id'])) { 
$team_name = $con->real_escape_string($_POST['team_name']); 
$id = $con->real_escape_string($_POST['id']); 
if (!empty($team_name)) { 
$result = $con->prepare("SELECT COUNT(`teamname`) FROM `table` WHERE `teamname`='$team_name' AND `id`='$id'"); 
$result->execute(); 
$result->bind_result($one,$two,$three,$etc); 
$result->fetch(); 
if (empty($one) and empty($two) and empty($three) and empty(etc)) { // may be and/or (pick one) 
    echo 'Varification failed'; 
} else { 
    header('Location: http://www.abc.com/REGISTERpart2.php'); 
} 
} 
} 
?> 
+0

此代碼正在工作,但現在我也想插入一個查詢到數據庫(我想團隊名稱中的所有團隊名稱)。我做了這個 '$ into = $ con> prepare(「INSERT INTO team(team_name)VALUES(($ _POST ['team_name'])」); $ into-> execute();' – SD7

+0

在下一頁我測試會話是否繼續他們打印.... '<?php session_start(); $ name = $ _SESSION ['team']; if($ _SESSION [「abc」]!=='好 '){ \t 回聲 '的驗證,但沒有會話發現';} 其他 { \t回聲' 您的ID驗證「; } >' – SD7

+0

的插入的一個必須是: ** $ =成$ CON組>準備(「我NSERT INTO team('team_name')VALUES(?)「); $ into-> bind_param('s',$ _ POST ['teamname']);/*這是因爲它是字符串,學習mysqli :: stmt */ $ into-> execute(); ** –

-1

您可以使用以下的替代頭部。

prinf('<script>window.location = "URL HERE"</script>'); 

它應該和標頭做同樣的事情。

+0

他從未在標題前回應任何內容。他們處於不同的狀態。 – h2ooooooo