2012-03-12 2 views
1

나는 미쳤다고 생각합니다.PHP 변수가 fwrite에서만 비어 있습니다.

코드 :

<? 
$meh = $_GET["q"]; 
echo (":" . $meh . ":" . strlen($meh) . PHP_EOL); 
$fp = fopen("/tmp/wtf.log","w+"); 
fwrite($fp, ":" . $meh . ":" . strlen($meh) . PHP_EOL); 
fclose($fp); 
?> 

는 요청이 응답에

/search.php?q=meh123 

가 (예상) :

이 파일에
:meh123:6 

:

[email protected]:/tmp# cat wtf.log 
::0 
+0

확실하게 액세스 했습니까? 그것은 파일에 쓰고있는 것입니까? –

+0

그냥 추측하지만 어쩌면 괄호를 추가하거나 문자열을 변수에 저장 해볼까요? '(":". $ meh. ":". strlen ($ meh). PHP_EOL)'또는'$ str = ":". $ meh. ":". strlen ($ meh). PHP_EOL; fwrite ($ fp, $ str); ' – nickb

+0

a + 모드를 사용하여 매번 글을 쓰려고 했습니까? –

답변

0

이 시도 :

<? 
$meh = $_GET["q"]; 
$writeline = ":{$meh}:{strlen($meh)}"; 
echo ($writeline); 
$fp = fopen("/tmp/wtf.log","w+"); 
fwrite($fp, $writeline); 
fclose($fp); 
?> 

을 또한, 제이 위의 코멘트에 말했듯이 :

경우 (는 isset ($ _ GET [ 'Q'])) {// 코드} 주위 퍼팅 시도하여 코드 (어쨌든해야 할 일)

+0

나는 그것을 보여주기 위해 필요한 최소한의 코드로 동작을 한정하려고 시도했다. $ _GET [ 'q']가 설정되어 출력에 울릴 때 분명합니다. –

+0

그래도 작동하는지 확인하려면이 방법을 시도해 봤습니까? (isset 부분이 아니라 다른 부분) – ramblinjan

+0

그래, 지금, 똑같은! 네가 그걸 더 많이 넣는 방식이 ... 방해 되긴하지만, 맞지? 아주 마지막에 var_dump ($ writeline)를 추가했는데 정상적으로 보입니다. string (10) ": meh123 : 6" –

관련 문제