2013-10-10 2 views
1

$ _SESSION 변수를 사용하여 사용자의 로그인 자격 증명이 저장되고 화면의 데이터베이스에서 관련 데이터를 표시하는 데 사용되는 로그인 프로세스를 작성하려고합니다 (예 : 작동).

<?php  
session_start(); 

if(!isset($_SESSION['Initials'], $_SESSION['Surname'])) 
{ 

$host = "xxx"; 
$username = "xxx"; 
$password = "xxx"; 
$database_name = "xxx"; 
$table_name = "xxx"; 

mysql_connect($host, $username, $password) OR die("Can't 
connect"); 
mysql_select_db($database_name) OR die("Can't connect to 
Database"); 

$query = "SELECT Class FROM $table_name WHERE Initials = '". 
$_SESSION['Initials']."' AND staff LIKE '%".$_SESSION['Surname']."'"; 
$result = mysql_query($query); 
$class = mysql_fetch_array($result); 
$count = mysql_num_rows($result); 

if($count === NULL) 
{ 
    echo "ERROR"; 
} 
    else 
    { 
    $_SESSION['Class'] = $result; 
    echo "Class added to sessions"; 
    } 
} 
?> 

쿼리가 세션 변수를 인식하지 못하는 초기 문제는 if 문에 올바른 대괄호를 추가하여 쉽게 해결할 수있었습니다. 내 다음 문제는 비록 쿼리가 성공해야한다고해도 ($ count가 FALSE 또는 NULL 일 때 'ERROR'라는 에러 메시지를받지 못한다.) 결과 배열을 새로운 세션으로 생성하지 않는다. 새 페이지에 세션 배열을 인쇄 할 때 '이니셜'및 '성'세션 만 수행하기 때문입니다.

여러 개의 결과를 던질 수 있기 때문에 배열에 대해 내 쿼리 또는 사후 쿼리 프로세스를 변경하려면 무엇이 필요합니까?

초기 문제에 대한 답변을 주셔서 감사합니다.

+0

'if'문에 대한 코드 블록 주위에 중괄호가 누락되었습니다. 즉, 다음 문장은 조건부 일 뿐이며 나머지는 무엇이든 상관없이 실행됩니다. – JAL

+0

내가 그런 작은 세부를 놓쳤다라고 생각할 수 없다! !! 고마워, 쿼리의 변수는 더 이상 인식되지 않지만 유감스럽게도 결국 새 세션 (클래스)이 생성되지 않습니다 ... ($ count 매개 변수와 관련이 있습니까?) –

+0

mysqli 또는 PDO를 사용하십시오. – JAL

답변

0

- 그것은 내가 적절한 배열로 세션 변수 중 하나를 치료되지 않았으며, 따라서 제대로로드하지 않을 것이라고 밝혀졌다. 나중에 비슷한 문제가있는 사람들이 참조 점으로 사용할 수 있도록 스크립트를 추가했습니다.

<?php 

session_start(); 


// Server Details // 
$host = "---"; 
$username = "---"; 
$password = "---"; 
$database_name = "---"; 
$table_name = "---"; 


// Connect Command // 
mysql_connect($host, $username, $password) OR die("Can't 
connect"); 
mysql_select_db($database_name) OR die("Can't connect to 
Database"); 


// Query to call up the unique school name // 
$query_school = mysql_query("SELECT DISTINCT School FROM $table_name 
WHERE Initials = '".$_SESSION['---']."' 
AND staff LIKE '%".$_SESSION['---']."'") or die(mysql_error()); 
$result_school = mysql_result($query_school, 0); 


// Query to call up the unique centre no // 
$query_centreno = mysql_query("SELECT DISTINCT CentreNo FROM 
$table_name WHERE Initials = '".$_SESSION['---']."' 
AND staff LIKE '%".$_SESSION['---']."'") or die(mysql_error()); 
$result_centreno = mysql_result($query_centreno, 0); 


// The newly created sessions for school info // 
$_SESSION['---'] = $result_school; 
$_SESSION['---'] = $result_centreno; 


// Query to call up the array of classes // 
$query_class = mysql_query("SELECT Class FROM $table_name WHERE 
Initials = '".$_SESSION['---']."' 
AND staff LIKE '%".$_SESSION['---']."'") or die(mysql_error()); 
$query_class__array = array(); 
while($row = mysql_fetch_assoc($query_class)) 
$query_class_array[] = $row; 

$_SESSION['---'] = $query_class_array; 

?> 
1
if(!isset($_SESSION['Initials'], $_SESSION['Surname'])) { 
// code 
} 

u는 {필요}

경우 (라!는 isset ($ _ SESSION [ '이니셜'], $ _SESSION [ '성'])) = "xxxxx는"

$ 호스트 브래킷 ; $ username = "xxxxx"; $ password = "xxxxx";

내가 답을 찾았습니다

if(!isset($_SESSION['Initials'], $_SESSION['Surname'])) { 

$host = "xxxxx"; 
} 
$username = "xxxxx"; 
$password = "xxxxx"; 
관련 문제