2014-07-12 2 views
0

<form>에 무엇인가를 입력하고 다른 PHP 파일에 넣고 싶다면 입력 한 것이 있는지 확인하십시오. 내가 텍스트 상자 "Jilly" 나는 그것이 "Jilly.txt" 을 감지 할에 넣어 말할 수 있습니다이 내 코드 파일 #의 1.php입니다 :PHP와 HTML을 사용하여 IF와 변수를 다른 파일의 변수로 테스트하는 방법

<form action="File#2.php" method="post"> 
<input name="user" type="text"> 
<input type="submit" value="Go"> 

파일 # 2 :

<?php 
$user = $_POST["user"] 
if (bool file_exists (string $user)) { 
    echo . $user . " filename exists." 
} 
else { 
    echo . $user . " filename doesn't exist." 
} 
?> 

가 그래서입니다 내가 잘못하고있어? "Go"입력을 클릭하면 파일 # 2에 빈 파일이 표시되므로 파일 # 2의 PHP 코드에 문제가있는 것입니다.

+1

URI의'#'가 수정해야 할 첫 번째 문제입니다. 왜냐하면'# '은 해시의 시작을 의미하기 때문에 URL을 혼동하게됩니다. 해쉬는 서버로 보내지지 않습니다. – Utkanos

+0

답장을 보내 주셔서 감사합니다. 파일 이름에는 실제로 #이 없습니다. 실제로는 "Login.php"와 "PLogin.php"입니다. – user287210

+0

왜 'bool','string'을 쓰나요? 이게 뭐야? –

답변

2

PHP에 오신 것을 환영합니다.

당신은 분명히 문서를 읽고 있습니다. 잘 했어! 데이터 유형은 문서 독자 만을위한 정보이며 실제 스크립트에 쓰여지지 않음을 이해하십시오.

따라서 당신은 아마 한

if (bool file_exists (string $user)) { 

to 

if (file_exists ($user . "txt")) { 

, 변경이

bool file_exists (string $filename) 

이 기능은 문서로 작성하는 방식이기 때문이다. 그러나 첫 번째 줄은 항상 모든 데이터 유형을 설명하는 매우 짧은 참조입니다. 실제 구문을 보려면 예제로 스크롤하십시오. (php.net에서 읽고 있다고 가정)

Bool은 '반환 유형'입니다. 아래로는 의미가 없으므로 오류가 발생합니다. 또한 ".txt"를 연결하여 Jilly 파일 대신 Jilly.txt 파일을 확인합니다.

에코도 괜찮습니다. 다음과 같이 작성하십시오 :

echo $user . " filename exists."; 

따라서 에코 후 즉시 점을 제거하십시오. 점은 두 개의 문자열을 "연결"하므로 왼쪽과 오른쪽에 각각 하나의 문자열이 있어야합니다. 세미콜론도 중요합니다.

마지막으로 #가 더 이상 포함되지 않도록 파일 이름을 변경하십시오.

+0

감사합니다. – user287210

+0

기꺼이 도와 드리겠습니다. 내 대답 옆의 체크 표시를 클릭하여이 대답을 올바른 것으로 '수락'할 수도 있습니다. –

+0

P. 'bool file_exists()'는 맞춤법이 틀린 값의 캐스팅이 될 수도 있습니다 (이 경우 부울을 부울로 바꿔 버리므로이 경우 쓸모가 없습니다). 올바른 구문은'(bool) file_exists()'입니다. – feeela

0

여러 오류가 있습니다. 첫 번째는 해시 #이 URL의 디렉토리 또는 파일 이름의 일부로 허용되지 않는다는 것입니다. 주석에 쓰여 있듯이 해시 후의 부분은 페이지 내 앵커로 사용되어 특정 섹션으로 이동합니다.

다음 요점은 @KjeldSchmidt의 대답을 참조하십시오.

관련 문제