2016-11-25 9 views
-3

は私がログインを作成し、PHPでシステムを登録しようとしていますし、私はheader("Location: index.php")を使用すると、エラーコードを取得しておくと、これは私が取得エラーです:ヘッダー場所PHPが動作していませんか?

警告:ヘッダー情報を変更することはできません - すでにによって送られたヘッダOmg \ Desktop \ XAMPP \ htdocs \ Websites \ Social-Network \ register(C:\ Users \ Omg \ Desktop \ XAMPP \ htdocs \ Websites \ Social-Network \ register.php:43で開始された出力)ライン上の.php 141 のindex.php

は、ここに私のPHPコードです:

if(!empty($_POST)) { 
    if(empty($_POST['username'])){ 
    echo("Please enter a Display Name<br />"); 
    } 
    if(empty($_POST['password'])){ 
    echo("Please enter a password<br />"); 
    } 

    if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){ 
    echo("Please enter a valid email address<br />"); 
    } 

    $query = " 
     SELECT 
      1 
     FROM users 
     WHERE 
      username = :username 
    "; 

    $query_params = array(
    ':username' => $_POST['username'] 
); 
    try{ 
    $stmt = $db->prepare($query); 
    $result = $stmt->execute($query_params); 
    } 
    catch(PDOException $ex) { 
    die("Failed to run query: "); 
    } 
    $row = $stmt->fetch(); 

    if($row){ 
    echo("This name is taken by another person<br />"); 
    } 
    $query = " 
     SELECT 
      1 
     FROM users 
     WHERE 
      email = :email 
    "; 

    $query_params = array(
    ':email' => $_POST['email'] 
); 
    try{ 
    $stmt = $db->prepare($query); 
    $result = $stmt->execute($query_params); 
    } 
    catch(PDOException $ex) { 
    echo("Failed to run query: "); 
    } 

    $row = $stmt->fetch(); 

    if($row){ 
    echo("This email is already taken!<br />"); 
    } 

    $query = " 
     INSERT INTO users (
     username, 
     password, 
     salt, 
     email 
    ) VALUES (
     :username, 
     :password, 
     :salt, 
     :email 
    ) 
    "; 

    $salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647)); 

    $password = hash('sha256', $_POST['password'] . $salt); 

    for($round = 0; $round < 65536; $round++) { 
    $password = hash('sha256', $password . $salt); 
    } 

    $query_params = array(
    ':username' => $_POST['username'], 
    ':password' => $password, 
    ':salt' => $salt, 
    ':email' => $_POST['email'] 
); 

    try{ 
    $stmt = $db->prepare($query); 
    $result = $stmt->execute($query_params); 
    }catch(PDOException $ex) { 
    echo("Failed to run query: "); 
    } 

    header("Location: index.php"); 



    die("index.php"); 

} 

私はこれを手助けするためにウェブサイトを使用していますが、データベース接続もありますが、それは言及していません。どんな助けもありがとう。

+0

エラーメッセージを見て、あなたに伝えようとしていること:**あなたがコンテンツを送った後**あなたが**ヘッダーを送ることはできません! –

+0

私はすべてのコードの前にそれを送信しますが、まだエラーが発生します –

+0

ここにウェブサイトがあります:[http://forums.devshed.com/php-faqs-stickies-167/program-basic-secure-login-system- using-php-mysql-891201.html](リンク) –

答えて

2

実際には、エラーは非常に説明的です。ヘッダーは、本文の前にクライアントに送信する最初のものでなければなりません。

すべてのエコーはボディの一部です。

さらに、ajax呼び出しと標準の呼び出しが混在しているように見えます。何を達成しようとしていますか?

関連する問題