2016-07-28 2 views
0

도와주세요 사용자 입력의 유효성을 확인한 후 데이터베이스에 사용자를 만들고 삽입하는이 PHP 코드 (아래)가 있습니다. 사용자 입력을 배열에 저장합니다. 문제는 입니다. 사용자를 생성하여 데이터베이스에 삽입하지만 리디렉션하지 않습니다. 여기헤더 기능이 리디렉션되지 않습니까?

$validation = new Validate(); 

if($validation->passed()) { 
//if success, insert(create) user 
try { 
    $user = new User(); 
    $salt = Crypt::salt(32); 
    $user->insert(array(
    'username' => Accept::get('username'), 
    'password' => Crypt::make(Accept::get('password'), $salt), 
    'salt' => $salt, 
    'name' => Accept::get('name') 
    )); 
    //After creation, redirect user 
header('Location : index.php'); 
exit(); 

} catch(Exception $e) { //otherwise display errors 

    die("ERROR : CAN NOT REGISTER USER ".$e->getMessage()); 
} 

이 코드는 데이터베이스에서 사용자를 작성 코드,하지만 그것은 리디렉션하지 않습니다. 나는 왜 그런지 이해하지 못한다.

+0

오류가 발생 했습니까 (오류보고가 켜져 있습니까?) 아니면 단순히 리디렉션하지 않고 있습니까? – Epodax

+0

오류보고를 사용하도록 설정했습니다. 나는 메시지를 전혀받지 못한다. 심지어 데이터베이스에 삽입됩니다. 방금 리디렉션하지 마십시오. – Vick

답변

0

1) 당신이 header() function조차 빈 공간

2 전 echo/output 아무것도하지 있는지 확인)) 오류

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

3 참조 페이지의 상단에있는이 쓰기 시도 ob_start(); 또는 ob_flush();

ob_start();// at top of page 
    $validation = new Validate(); 

    if($validation->passed()) { 
    //if success, insert(create) user 
    try { 
     $user = new User(); 
     $salt = Crypt::salt(32); 
     $user->insert(array(
     'username' => Accept::get('username'), 
     'password' => Crypt::make(Accept::get('password'), $salt), 
     'salt' => $salt, 
     'name' => Accept::get('name') 
     )); 
     //After creation, redirect user 
    header('Location : index.php'); 
    exit(); 
    ob_flush(); 

    } catch(Exception $e) { //otherwise display errors 

     die("ERROR : CAN NOT REGISTER USER ".$e->getMessage()); 
    } 
관련 문제