2014-01-25 60 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