2014-04-28 2 views
0

내 코드를 리디렉션하는 데 도움 것은 : $ 온도의 내 설정을 가정window.location.href -

$movie_id = $_GET['like']; 
$temp = "www.hifff.se/details.php?id=" . $movie_id"; 
echo ("<SCRIPT LANGUAGE='JavaScript'> 
window.alert('Du får bara lajka en gång per film och dygn. Lajka gärna en annan film eller se filmen igen och återkom imorgon!') 
window.location.href='" . $temp . "'; 
</SCRIPT>"); 

메신저가 잘못된 것입니다. 그 때문에 작동하지 않습니다. 하지만 나는 그것을 잘못 설정할 때 무엇이 ​​잘못되었는지 이해하지 못한다. 나는 또한 이것이 크롬에서 작동하지 않는다는 말을 들었습니까? 그리고 이것 :

setTimeout(function(){document.location.href = "page.html;"},500); 

해야합니다. 내가 어떻게 내 코드에 적용해야할지 모르겠다. 누군가 나를 친절하게 도와 줄 수 있습니까?

+1

봐 :


이 같은 코드를 작성합니다. 두 번째 줄에는 매우 분명한 구문 오류가 있으며 다른 문제가있을 수 있습니다. – Quentin

+0

$ temp 변수에 $ movie_id 뒤에 빈 큰 따옴표가 필요하지 않습니다. 다른 문제도있을 수 있습니다. – GarethL

+0

스크립트 유형 = "text/javascript", 임시 변수는 $ temp의 할당 끝 부분에 변수 (작은 따옴표 추가), 두 개의 임의의 따옴표로 출력됩니다. 어쩌면 더, 나는 전화 중이야 :). – Kai

답변

0
$temp = "http://www.hifff.se/details.php?id=" . $movie_id""; 

는 당신의 말에

$temp = "www.hifff.se/details.php?id=" . $movie_id; 

제거 쌍 따옴표와 함께이 라인

$temp = "www.hifff.se/details.php?id=" . $movie_id"; 

를 교체 올바른 리디렉션

+1

이었습니다. 문자열 끝의'' "을보고 다시 작동하는지 확인하십시오. – Ohgodwhy

+0

은이 $ movie_id를 좋아해야합니다. "" –

0

을 수행하기 위해 당신의 URL에 http를 추가해야 선.

2

함께 코드를 분석해 보겠습니다. 첫 번째 줄 :

$movie_id = $_GET['like'];

당신이 코딩으로, 당신은 당신이 진행 다른 디자인 패턴과 모범 사례를 배운다. 당신을위한 조언은 방어 적으로 프로그램하는 것입니다. 이 코드 조각은 처음에는 작동하지만 쉽게 손상 될 수 있습니다. isset 함수를 사용하여 GET 변수가 있는지 확인하십시오 (http://www.php.net/isset).

$temp = "www.hifff.se/details.php?id=" . $movie_id";

당신은 PHP's magic quotes을 사용하고 있습니다. 마술 따옴표는 그들과 다른 특수 문자 안에 변수를 허용합니다. PHP가 자동적으로 처리합니다, 그래서 거기에 연결을 사용할 필요가 없다 (그리고 코드 블록은 문장의 끝에 견적을 참조, 심지어 잘못) :

$temp = "www.hifff.se/details.php?id=$movie_id"; // this works.

참고 : 그냥 발견 그 마술 따옴표는 PHP 5.4 이후로 더 이상 사용되지 않습니다. 필요하지 않다고 생각하면 사용하지 마십시오. 긴 .. 대신 type="text/javascript"을 사용하기 때문에

echo ("<SCRIPT LANGUAGE='JavaScript'>

언어 속성

은 더 이상 사용되지 않습니다. 대부분의 새로운 브라우저는 어쨌든 <script> 태그에서 자바 스크립트를 사용하기 때문에이 방법이 효과적입니다.

또한 태그 속성에 큰 따옴표 "을 사용하는 것이 일반적입니다. 누구든지 소스 코드를 살펴 본다면 HTML의 모든 곳에서 작은 따옴표와 큰 따옴표를 사용할 수 있습니다. 다음 줄에

echo ('<script type="text/javascript">

, 당신은 window 객체를 호출 : 세부 사항은, 내 friend..This는 결과가 될 것입니다. 이 개체는 이미 전역 범위에 있으므로 더 이상 덮어 쓰지 않으면 window.을 쓸 필요가 없습니다.경고가 끝나면 ;도 누락되었습니다.

alert('Du får bara lajka en gång per film och dygn. Lajka gärna en annan film eller se filmen igen och återkom imorgon!');

마지막으로, 우리는 마지막에 있습니다. 다시 window은 이미 this이므로 다시 전체를 쓸 필요가 없습니다. 적은 것이 더 많습니다. 변수 temphttp://을 추가하는 것도 잊지 마세요. 이 상황에서는 전체 URL을 사용합니다. 웹 사이트 내에서 위치를 쓰는 것이 더 좋습니다.

echo은 마술 따옴표를 사용하므로 따옴표를 종료하고이 경우 변수를 연결하지 않아도되므로 따옴표가 모두 필요하지는 않습니다.

location.href='$temp';

최근 코멘트 : 당신이 echo이 .. 한 줄에 모든 것을 보내고있다하면은 당신에게 스트레이트/조직 보입니까? 제 생각에는 모든 것을 한 줄에 버리는 것이 아니라 작은 비트로 모든 것을 나누는 것이 낫습니다. 더 잘 보이고 구조적으로 보일 것입니다. 오류가 발생하면 훨씬 쉽게 찾을 수 있습니다. 코드를 다른 사람이 사용하거나 볼 때 programming style : http://en.wikipedia.org/wiki/Programming_style을 유지하는 것이 가장 좋습니다. 당신의 PHP의 출력에서 ​​

if (isset($_GET['like'])) { 
    $temp = "www.hifff.se/details.php?id=" . $_GET['like']; 
    $text = 'Du får bara lajka en gång per film och dygn. Lajka gärna en annan film eller se filmen igen och återkom imorgon!'; 

    echo '<script type="text/javascript">' 
      .  "alert($text); location.href='$temp';" 
      . '</script>' 
      ; 
} 
+0

은 내가 정말로 읽을 필요가있는 것처럼 보입니다. 고마워. 내가 집에 갈 때. 나는 isset 부분에 대해 알고 있고 $ temp 부분에 바로 게시 할 수 있습니다. 하지만 나는 $ movie_id를 4 번이나 5 번 더 코드에 사용하고 데이터베이스에 게시합니다. –

+0

프로그래밍은 컴퓨터에서 멈추는 것이 아니라 :), 모든 라인, 작성한 모든 문자는 프로그램의 전반적인 품질에 영향을 미칩니다. 결과, 당신과 코드를 볼 사람들. 모든 언어가 빨리 바뀌기 때문에 좋은 프로그래머가되는 것은 매우 어렵습니다. 수천 가지 방법과 간단한 작업을 수행하는 방법이 있습니다. 행운을 빌어 요 재미있는 프로그래밍을해라 :)! – Kai

관련 문제