2012-01-14 5 views
1

이 문제가 있습니다. $ _POST와 함께 사용하면 세션이 작동하지 않습니다. 수동으로 63 개를 추가하면 여러 페이지에서 작동합니다. I 출력을 63페이지간에 세션이 작동하지 않습니다.

$_SESSION['name'] = 63; 
echo $_SESSION['name'] ; 


를 볼 수 있지만 내가 페이지 사이를 전환 할 때이 아래 작동하지 않습니다. 은 $ 행 [ 'ID'] 출력은 내가 2 페이지에 갈 때 내가 출력을 볼 수 있지만 내가 첫번째 페이지로 돌아 갔을 때 출력이 사라도 63

$cari = "SELECT id FROM dns_soa WHERE `origin` = '".$_POST['origin']."'"; 
$keputusan = mysql_query($cari); 

$row = mysql_fetch_array($keputusan); 

$_SESSION['name'] = $row['id']; 
echo $_SESSION['name'] ; 


입니다. 어떤 생각?

+0

$_SESSION를 사용하기 전에 모든 페이지에 session_start를 호출했는지 확인 당신이 세션을 사용하려면 모든 페이지에서 세션을 사용하기 전에,으로 session_start을해야합니까? –

+0

예. 63 수동으로 초기화 할 때 출력이 두 페이지에 모두 표시됩니다. – sg552

+0

당신이 쿼리를 확인하지 않으면 actully 작동합니다. 그리고 SQL 인젝션 공격에 취약합니다. –

답변

1

다시 돌아 오면 세션 변수가 다시 설정되므로 이번에는 $ row [ 'id'] = ""로 연결되는 $ _POST [origin] 변수와 세션 변수 또한 NULL ... 다시 당신이 $_POST를 사용한 페이지로 이동

당신이해야 할 것은 ..

$cari = "SELECT id FROM dns_soa WHERE `origin` = '".$_POST['origin']."'"; 
$keputusan = mysql_query($cari); 

$row = mysql_fetch_array($keputusan); 

if(!isset($_SESSION['name'])) 
    $_SESSION['name'] = $row['id']; 

echo $_SESSION['name'] ; 
+0

입니다. iPad에서 타이핑하는 것은 짜증납니다. 나는 천천히된다. –

+0

이것은 트릭을합니다. 감사 Rajat 및 Shiplu :) – sg552

1

, $_POST이 비어되고, 브라우저 게시물하지 않는 한 다시. 따라서 SQL 쿼리는 결과를 반환하지 않습니다. 따라서 $_SESSION['name']이 비게됩니다. 또한

당신이

+0

사실 나는 똑같은 생각. 도와 줘서 고맙다. – sg552

관련 문제