2014-01-25 2 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)를보십시오? 대신 [* prepared statements *] (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

가 :

<?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

이 코드는 작동하지만 지금은 DB에 쿼리를 삽입하고 싶습니다. (팀 테이블의 모든 팀 이름을 원합니다). 나는 다음과 같이 '$ into = $ con-> prepare ("INSERT INTO team (team_name) VALUES ($ _POST [ 'team_name'])"); $ into-> execute(); ' – SD7

+0

세션이 계속 인쇄되면 테스트 중입니다 ... '$ POSITION [ "abc"]! == ' 좋은 ') { \t 이 에코'확인하지만 세션이 발견되지 않음 '; } 다른 가 { \t가 메아리'당신의 ID가 확인 '; } >' – SD7

+0

삽입 하나는 있어야합니다 :?은 =로 ** $ $ con-> prepare ("나는 NSERT INTO 팀 ('team_name') VALUES (?) "); $ into-> bind_param ('s', $ _ POST [ 'teamname']);/* 문자열이기 때문에 mysqli :: stmt */ $ into-> execute(); **를 배우십시오. –

-1

당신은 헤더에 다음과 같은 대안을 사용할 수 있습니다.

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

헤더와 동일한 작업을 수행해야합니다. 새 MySQL 버전 (MySQLi)를 사용하는, 그래서 첫 번째 페이지가 될 것입니다 경우

+0

그는 머리글 앞에서 아무것도 울리지 않습니다. 그들은 다른 상태에 있습니다. – h2ooooooo

관련 문제