2010-06-01 4 views
1

URL에서 변수를 이스케이프 처리하는 올바른 방법에 대한 Google 검색을 통해 좋은 가이드 라인을 찾을 수 없습니다. 기본적으로 테이블에있는 MySQL 쿼리의 결과를 인쇄하고 각 행의 항목 중 하나를 해당 결과 페이지에 대한 링크로 사용합니다. 나는 이것이 쉽다라고 생각한다, 나는 단지 아포스트로피 또는 백 슬래시를 어디인가에서 놓치고있다. 그러나 나는 그것을 이해할 수 없다. 여기에 오류를 일으키는 라인이다 :반향을 사용하여 PHP에서 URL의 변수 보내기

echo "<a href = \"movies.php/?movie_id='$row['movie_id']'\"> Who Owns It? </a> "; 

는이 내가지고있어 오류입니다 :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING 

가 어떻게이 오류를 수정합니까?

또한 URL의 에코 및 변수 작업에 대한 일반적인 지침은 무엇입니까?

+0

빠른 응답을 보내 주신 모든 분들께 감사드립니다. 나는 아래의 답을 모두 시험해 보았고 모든 것이 작동했다 (미래에 이것을 보는 사람들을 위해). 그것은 주로 선호도/가독성의 문제인 것 같습니다. – alexpelan

답변

2
echo "<a href = \"movies.php/?movie_id='$row['movie_id']'\"> Who Owns It? </a> "; 

여기에는 두 가지 사항을 변경해야합니다. 한 가지는 movies/php 뒤에 /가 없어야합니다. 두 번째는 URL 변수 주위에 사도 신경이 없다는 것입니다. movie_id = $ row [ 'movie_id'] 여야합니다. 언제든지 php 변수를 사용할 때마다 나는 그것을 인용문에 포함하는 대신에 보통 concatonate합니다.

echo "<a href=\"movies.php?movie_id=" . $row['movie_id'] . "\"> Who Owns It? </a>"; 
0

에코 또는 URL은 사용자의 문제와 아무 관련이 없습니다. 그것은 PHP strings syntax입니다.

0

큰 따옴표로 묶은 문자열 안에있는 $row['movie_id']은 허용되지 않습니다 (특히 작은 따옴표). 어느 '없이 쓰거나 중괄호의 구문을 사용합니다

echo "<a href = \"movies.php/?movie_id='$row[movie_id]'\"> Who Owns It? </a> "; 
echo "<a href = \"movies.php/?movie_id='{$row['movie_id']}'\"> Who Owns It? </a> "; 

은 자세한 내용은 variable parsing를 참조하십시오.

0

이 더 나은 방법입니다

$movie_id = urlencode($row["movie_id"]); 
echo '<a href="movies.php/?movie_id=', $movie_id, '"> Who Owns It? </a> '; 

행운을 빕니다!

0

이 더 나은 (어) 방법 : 나는 이런 식으로 뭔가를 할 거라고 그래서 결국

$movie_id = urlencode($row["movie_id"]); 
echo "<a href=\"movies.php?movie_id={$movie_id}\"> Who Owns It? </a> "; 

쉽게 읽을 수 있습니다. 단일 인용 부호와 이중 인용 부호는 더 이상 문제가되지 않습니다.