2014-04-17 2 views
0

(사용자 이름, 비밀번호, 이메일) 등의 사용자 정보를 txt 파일에 저장하는 웹 사이트를 만들고 있습니다. 내가 지금까지 가지고있는 코드.텍스트 파일에 중복 된 항목 확인

<?php 
$username = $_POST['username']; 
$password = $_POST['password']; 
$email = $_POST['email']; 
// 
//the data 
echo "<br>"; 
$data = "$username | $password | $email | $caesar || \n"; 
$fh = fopen("users.txt", "a"); 
fwrite($fh, $data); 
fclose($fh); 
print "User Submitted"; 
?> 

사용자가 첫 번째 페이지에서 세부 정보를 입력하고 제출 버튼을 클릭하면이 이벤트가 트리거되어 users.txt에 내용을 작성합니다.

질문은 다음과 같습니다

  1. USERS.TXT 의 모든 중복 항목이있는 경우 사용자가 중복 하나를 눌러 제출을 입력하면 내가, 사이트가 같은 "중복"
  2. 을 말할 것이다, 확인할 수 있습니다 방법
  3. 어떻게
Display.php 로 불리는 페이지에서 USERS.TXT 에있는 모든 항목을 표시 할 수 있습니다

나는에 코드를 넣어 가지고 :

나는

user3544440 @ 질문 1

고마워


감사를 코딩 할 때 내가 어떤 실수를하는 경우 죄송합니다, PHP는 아주 새로운 오전 내 코드, 실행되지 않았거나 코드의 순서가 잘못되었을 수도 있습니다.

echo "<br>"; 
$data = "$username | $password | $email | $credit | $caesar || \n"; 
echo "<br>"; 

//ur code 

//my code start again from here 
$fh = fopen("users.txt", "a"); 
fwrite($fh, $data); 
+0

NB : 하나에 기록 할 때 매우 조심 웹 서비스에서 이와 같은 파일. 웹 응용 프로그램에서 같은 (PHP) 페이지가 여러 스레드 **에서 동시에 여러 번 실행될 수 있지만 파일은 한 번에 하나의 스레드에서만 열 수 있습니다. 따라서 두 사람이 동시에 양식을 제출하려고하면 게시자가 게시 한 데이터를 잃어 버릴 확률이 있습니다. – RoToRa

+0

그들은 3 개의 별도 파일입니다. 나는 Caesar 암호화를 위해 그것을 만든다. 1 개의 파일은 사용자 정보를 입력하고, 1 개의 파일은 DB와 1 개의 파일에 대해 DB의 모든 정보를 표시합니다. 나는 txt 파일에 암호화 된 문자열을 쓰는 데 여전히 문제가 있습니다. Dunno 어떻게 고쳐야합니까? – user2846896

답변

0

1 중복 항목을 찾기 위해, 각 라인은 같은 루프를 사용하여 디스플레이를 들어 각 라인

$flag = 0; 
$handle = fopen("user.txt", "r"); 
if ($handle) { 
    while (($line = fgets($handle)) !== false) { 
     $user = explode("|", $line); 
     if($user[0] == $_POST['user']){ 
      $flag=1; 
      break; 
     } 
    } 
} else { 
    // error opening the file. 
} 
fclose($handle); 
if($flag==1){ 
    echo "duplicate entry"; 
}else{ 
    //Write user data in the file 
} 

이 모든 파일을 읽고 확인해야

$handle = fopen("user.txt", "r"); 
if ($handle) { 
    while (($line = fgets($handle)) !== false) { 
     $user = explode("|", $line); 
     echo "name:".$user[0]; 
     echo "password:".$user[1]; 
     echo "email:".$user[2]; 
    } 
} else { 
    // error opening the file. 
} 
fclose($handle); 
+0

Question1에 대한 코드는 어디에 두어야합니까 ??. 코드와 동일한 위치에 사용자 정보를 파일에 저장합니다. – user2846896

+0

@ user2846896 예를 들어 변수 $ flag가 1이면 파일에 사용자 데이터를 기록해야합니다. 오류를 인쇄하고 파일에서 데이터를 씁니다. – user3544440

+0

@ user2846896 파일을 열고 쓰기 작업을하기 전에 검사를했는데 실행되지 않습니다. – user2846896