2012-11-22 2 views
0

으로 리디렉션합니다. 새 $ _SESSION 변수를 찾고 선택한 데이터가 모두있는 해당 페이지로 다시로드하려고합니다. 하지만 그 대신로그인 할 때 고유 페이지

http://www.theqlick.com/findFriends/lesson.php?username=noahtheteacher의 난이 대신받을 : http://theqlick.com/findFriends/lesson.php?username=%3C?%20echo%20noahtheteacher;%20?%3E

이 왜입니까? 그것은 올바른 페이지를로드하지 않습니다 중 하나 ... 내 코드

아래는 페이지 상단입니다 :

 $new_user = $_SESSION['user_login']; 

     if (!isset($_SESSION["user_login"])) { 
     echo ""; 
     } 
     else 
     { 
    echo "<meta http-equiv=\"refresh\" content=\"0; url=lesson.php?username=<? echo $new_user; ?>\">"; 

     } 

로그인 실제 HTML 코드 :

 <h2>If your a teacher, login below ...</h2> 
     <form action="lessons_login.php" method="post" name="form1" id="form1"> 
      <input type="text" size="40" name="user_login" id="user_login" class="auto-clear" title="Username ..." /><p /> 
      <input type="text" size="40" name="password_login" id="password_login" value="Password ..." /><p /> 
      <input type="submit" name="button" id="button" value="Login to your account"> 
     </form> 
     </div> 
+0

에코 "<메타 HTTP-당량 = \"새로 고침 \ "함량 = \"0; url = 'lesson.php? username = $ new_user'\ ">"; –

답변

0

당신의 다음 줄을 교체 :

,691이 하나

echo "<meta http-equiv=\"refresh\" content=\"0; url=lesson.php?username=<? echo $new_user; ?>\">"; 

echo "<meta http-equiv=\"refresh\" content=\"0; url=lesson.php?username=$new_user\">"; 

<? echo $new_user; ?> 구문을 사용할 필요가 없으므로 구문은 PHP 코드 자체에 포함되지 않으므로 PHP 코드 자체에 포함되지 않습니다.

1

@nelson이 제안했듯이, 이미 파싱 된 줄 안에 태그가 있습니다. 따라서 인터프리터는이를 열고 닫는 태그로 해석하지 않고 에코 할 문자로 해석합니다.

큰 따옴표를 사용하여 줄을 열고 닫은 다음 줄 바꿈을 사용하여 그 줄을 벗어나므로 따옴표를 사용하지 않는 것이 좋습니다. 그런 다음 적절한 파싱을 위해 변수를 {}로 묶으십시오. 예컨대

,

<?php 
echo "<a href='www.example.com'>{$my_variable}</a>"; 
?>