2011-12-16 2 views
1

저는 PHP에서 꽤 새로운데, 저는 현재 기술 학교에서 수업을 듣고 있습니다. 그 말에 우리 과제 중 하나는 세션을 사용하여 4 개의 CSS 속성을 수정해야한다는 것입니다. 본문 배경색, a : 링크 색, a : 호버 색 및 h1 색. 아이디어는 기본적으로 3 페이지 -1이 폼, 4 개의 드롭 다운, 색상으로 채워진 폼, 하나는 $ _POST 데이터로 실제 세션을 설정하는 페이지, 마지막으로 실제로 CSS를 사용하는 페이지가되는 것입니다. 같은 페이지에서PHP 세션을 통한 CSS 속성 사용자 정의?

session_start(); 
$_SESSION['bgColor']= $_POST['bgColor']; 
$_SESSION['lColor']=$_POST['lColor']; 
$_SESSION['hoverColor']=$_POST['hoverColor']; 
$_SESSION['h1Color']=$_POST['h1Color']; 

:

세션을 설정 내가 가지고있는 현재 코드는 다음과 같습니다

이 나는 ​​쿠키 작업 만 할당이 명시 적으로 볼 수있는 세션을 사용 말한다해야 세션 변수의 값을 반향 출력하는 코드가 있습니다 ... 저장되는 색상을 볼 수 있습니다. 내가 이런 식으로 CSS를 에코하려고 할 때, :

echo "a:link {color: ".$_SESSION['lColor'].";}"; 
echo "a:hover {color: ".$_SESSION['hoverColor'].";}"; 
echo "body {background-color: ".$_SESSION['bgColor'].";}"; 
echo "h1 {color: ".$_SESSION['h1Color']."; text-align:center;}"; 
내 웹 브라우저를 통해 페이지 소스를 확인할 때 그것이 작동하지, 그것은 빈 속성을 보여줍니다

:

a:link {color: ;}a:hover {color: ;}body {background-color: ;}h1 {color: ; text-align:center;}  

정말 것 여러분이 기꺼이 도와 주신 모든 도움에 감사 드리며, 이것이 PHP에서의 첫 수업이라는 것을 명심하십시오.

+1

모든 페이지에 session_start가 있는지 확인하십시오. – Galen

+0

[도움이되는 답변 수락] (http://meta.stackexchange.com/a/5235/160062). 해결 된 Dicurelaimer를 텍스트로 편집하지 마십시오. – oers

답변

1

session_start()에서 세션을 사용하는 모든 페이지를 시작하고 있는지 확인하십시오.

세션 변수를 호출하기 전에 선언해야합니다.

양식에 method = "post"를 사용하고 있는데 얻을 수 없습니까?

또한 많은 사람들이 $ _POST에서 얻은 모든 항목을 위생적으로 관리해야한다는 경고를받을 것입니다. 이 경우 단순히 라이브 사이트가 아니기 때문에 안전 할 수 있습니다.

+0

와우. 나는 내가 session_start()를 가져야한다는 것을 몰랐다. 세션을 사용하는 모든 페이지에서 그것의 지금 일하는, 감사합니다! 해결책은 바로 session_start(); – user1102700

1

File3에 session_start()을 추가하십시오.

사용자가 쿠키를 비활성화 한 경우 PHPSESSID (또는 세션 변수가 호출 된 항목)이 GET을 통해 File2에서 File3으로 전송되는지 확인하십시오.

+0

감사! session_start()가 문제였습니다. 솔루션이 쉽지 않다는 것을 믿을 수 없습니다. 당신들은 생명의 은인입니다! – user1102700