2009-12-04 3 views
0

사용자가 성을 입력하면 .html 파일에 기록한 다음 사용자는 방금 입력 한 정보를 볼 수있는 링크를 제공합니까?PHP는 사용자가 파일에 쓰기를 입력하고 볼 수 있도록 파일을 에코 아웃합니다.

Welcome 후 $ _POST [ 'userfName']을 사용하여 이미 수행하고있는 것처럼 알 수 있지만,이 .html 파일에이 정보를 다시 보내고 싶습니다. 만나다).

{ 
     $_SESSION['userEmail'] = $_POST['userEmail']; 
     $_SESSION['start'] = time(); 
     echo "Welcome, " . $_POST['userfName'] . $_POST['userlName'] .". A new session has been activated for you. Click <a href="sometextfile.html">here</a> to see your information."; 
     echo "<br>Your session id is: ".session_id(); 
    } 

답변

1

이와같이.

$message = ...; 
file_put_contents(dirname(__FILE__)."\message.html", $message); 
echo "<a href=message.html>Your message</a> 

그러나 웹 서버에 웹 디렉토리에 쓸 수있는 권한이있을 수 있습니다. 그리고 그것은 모든 종류의 나쁨을 위해 당신을 열어줍니다. 사용자가 메시지에 php 스크립트를 작성했다면 (예 : <? echo phpinfo()?>) 상상해보십시오. 이제 서버가 손상되었습니다. 이 경우 입력 내용의 유효성을 검사하고 치료해야합니다.

EDIT닉이 맞습니다. 사용자가 서로 메시지를 덮어 쓰게하는 방법을 제안했습니다. 나는 이것을하는 것을 권하지 않을 것이다. 동적으로 생성 된 페이지로 사용자를 보내는 Nicks의 제안을 따르십시오.

2

실제로 로그인하는 각 사용자에 대해 새 HTML 파일을 생성 하시겠습니까? 이런 종류의 것은 서버 측 스크립팅의 요점을 무시합니다.

실제로 보안상의 이유로 스크립트에 웹 서버 루트에 대한 쓰기 액세스 권한을 부여하는 것은 바람직하지 않습니다.

"sometextfile.php? sessid ="에 링크하거나 세션 ID가 포함 된 쿠키를 사용하여 해당 페이지를 동적으로 생성하십시오.

어딘가에 디스크에 텍스트 파일을 쓰고 싶다면 문자열을 만든 다음 file_put_contents (http://php.net/file_put_contents)를 사용할 수 있습니다. 이것은 웹 루트에 넣을 수 있습니다. 그러나 실제로는 당신이하려는 일이 아니라고 추측합니다.

+0

세션은 PHP의 쿠키에 자동으로 전파됩니다. 하지만 그렇지 않으면 좋은 대답. +1 –

+0

sometextfile.php? sessid =,이 보안 아이디어에 대해 자세히 설명해 주시겠습니까? 감사합니다. – Newb

+0

신경 쓰지 마라. 나는 네가 말한 것을 알아 냈다. 고마워. – Newb

0

데이터베이스의 필요성에 걸림돌이 들리는 것 같습니다. 축하해!

PHP를 사용하고 있으므로 가장 쉽고/저렴한 경로는 install이거나 MySQL server입니다.

사용자 이름을 저장하는 테이블을 만들고 정보가 포함 된 동적 페이지에 액세스 할 수있는 URL을 제공하면 유망한 경력을 쌓을 수 있습니다. MySQL에 대한 도움이 필요하면 this tutorial을 확인하십시오.

은 결국 당신은 아마 그래서 당신은 멋진 물건에 집중할 수 있습니다 당신을 위해 모든 더러운 일을 시작 (몇 가지 이름을) Code Igniter, CakePHP 또는 Symfony 같은 프레임 워크에 뛰어 싶을 것이다.

관련 문제