2011-12-30 1 views
2

У меня есть следующий registration.php файл:Регистрация в PHP, начала сеанса и перенаправлении

<?php 
include_once("QueryNew.php"); 

if (!get_magic_quotes_gpc()) { 

$email=addslashes($_POST["email"]); 
$password=addslashes($_POST["password"]); 
$confirmpassword=addslashes($_POST["confirmpassword"]); 
$uid=uniqid(); 

} 

if (trim($email," ") == "" || trim($password," ") == "" && trim($confirmpassword," ") == ""){ 
    echo "<script type='text/javascript'>window.location='logintips.php?regErr=All fields are mandatory'</script>"; 
} 

if (trim($password," ") != trim($confirmpassword," ")){ 
    echo "<script type='text/javascript'>window.location='logintips.php?regErr=Passwords didnot match'</script>"; 
} 

if (trim($email," ") != "" || trim($password," ") != "" && trim($confirmpassword," ") != ""){ 

     $insertQuery = "INSERT INTO user VALUES('".$uid."','".$email."','".$password."','',1,".CURRENT_TIMESTAMP.")"; 
     $qry = new QueryNew(); 
     $insert = $qry->executeSelect($insertQuery); 

     $SELECT_STAR = "select uid, email, timezone from "; 

     $selectQuery = $SELECT_STAR . "user" . " where email = '".$email."'"; 

     $qry = new QueryNew(); 
     $select = $qry->executeSelect($selectQuery); 

     while($row = mysql_fetch_assoc($select)) { 
      $uidS = $row['uid']; 
      $emailS = $row['email']; 
     } 

**//store $uidS and $emailS in a session variable and redirect to a (home) page** 

} 
?> 

После того, как я закончу с вкладышем и выбрать запросы, я хочу, чтобы создать сеанс и перенаправлять на someother странице. .

Я попытался session_start(), как показано ниже:

 session_start(); 
     $_SESSION[uid] = $uidS; 
     $_SESSION[email] = $emailS; 

     echo $_SESSION[uid]; 
     echo $_SESSION[email]; 

Что дает ошибку:

**Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\website\try\MAIN\HOME\QueryNew.php:43) in C:\xampp\htdocs\website\try\MAIN\HOME\register.php on line 45** 

Если есть лучший способ, чем указано выше, пожалуйста, предложите.

+1

Оригинальное сообщение об ошибке раз зиллионы лучше, чем что-то вроде «выше Isnt работы .. говорит сессия уже создана» – zerkms

+0

может быть session_start (), уже определенный в файле, поэтому попробуйте удалить эту строку –

+0

@zerkms: отредактировал исходное сообщение - добавлена ​​фактическая ошибка –

ответ

0
ob_start(); 

------------------ 
----------- 
------- 

ob_end_flush() ; 
+0

спасибо .. но есть ли способ «создать сеанс со значениями db и перенаправить на другую страницу (например, на домашнюю страницу)» –

+0

http://stackoverflow.com/questions/3916729/php-headers-already-sent- проблема –

+0

я проверил этот вопрос .. есть только один тег в моем полном файле! –

0
<?php ob_start(); 
if(session_id()){ 
//Session is already started 
}else{ 
session_start(); 
} 
?> 
1

Прочитайте сообщение об ошибке.

QueryNew.php генерирует некоторый выход (по строке 43). Вы не должны эхо или печатать что-либо перед началом сеанса. Вы можете начать сеанс до, но вы включили QueryNew.php.

0

Просто поместите ob_start() в верхней части страницы будет устранить эту ошибку