>source

제출 제한이있는 양식이 포함 된 .php 페이지를 만들려고합니다. 다음 단계를 순서대로 찾고 있습니다.

  1. 사용자가 양식에 도착합니다
  2. 사용자는 해당 양식이 아직 열려 있음을 참조하십시오
  3. 사용자가 양식에 대한 정보를 제출합니다
  4. 양식은 txt 파일이 숫자 10에 도달 할 때까지 양식을 제출할 때마다 +1하는 txt 파일에 +1을 추가합니다.
  5. txt 파일이 사전 설정 10과 같으면 양식이 사라지고 더 이상 제출할 수 없습니다.

fopen을 사용해 보았는데 $limit = fopen ( "count.txt", "r")를 사용하여 작동 시켰지만 먼저해야 할 일이 너무 혼란 스러웠습니다. 내가 사용하는 코드는 온라인에서 작성하고 찾은 다른 PHP 코드의 스 니펫입니다. 일반적으로 가장 간단한 것으로 알고 있으므로 이와 같은 것을 알아낼 수 있습니다.

<?php 
$limit = fopen("count.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("count.txt"));
if ($limit = 10){
echo ("Cannot Submit Anymore");}
else{
echo ('<form>
First name:<br>
<input type="text" name="firstname"><br>
Last name:<br>
<input type="text" name="lastname">
</form>');}
fclose($myfile);
$limit = fopen('count.txt', 'c+');
flock($limit, LOCK_EX);
$count = (int)fread($limit, filesize('count.txt'));
ftruncate($limit, 0);
fseek($limit, 0);
fwrite($limit, $count + 1);
flock($limit, LOCK_UN);
fclose($limit);
?>

완전히 고착되어 모든 것이 작동해야하는 순서를 확신하지 못합니다


  • 답변 # 1

    코드가 호환되는지는 모르겠지만해야 할 일을 알아 냈습니다. 어쨌든, 여기 내가 한 일이 있습니다 :

    5 페이지 총계 :

    index.php [방문 페이지]

    tally.php [다른 txt 파일을 업데이트하기위한 PHP 코드]

    count.txt [구입 한 좌석 수. 이 경우 숫자 0을 입력했습니다.]

    left.txt [좌석 수. 이 경우 숫자 10을 입력했습니다.]

    max.txt [판매중인 좌석 수. 이 경우 숫자 10을 입력했습니다.]

    index.php [랜딩 페이지] :

    <?php 
    $max = file_get_contents('max.txt');
    $limit = file_get_contents('count.txt');
    $left = file_get_contents('left.txt');
    $maxed = 'Sorry, All Seats Have Been Sold';
    if ($limit >= $max){
    echo $maxed;}
    else{
    echo '
    <form action="tally.php"> // This form can be edited to your needs
    First name:<br><input type="text"><br>
    Last name:<br><input type="text">
    <input type="submit" value="Submit">
    </form>' . 'Seats Remaining:' . $left;}
    ?>
    
    

    tally.php [다른 txt 파일을 업데이트하기위한 PHP 코드] :

    <?php 
    $limit = fopen("count.txt", "c+");
    flock($limit, LOCK_EX);
    $count = (int)fread($limit, filesize("count.txt"));
    ftruncate($limit, 0);
    fseek($limit, 0);
    fwrite($limit, $count + 1);
    flock($limit, LOCK_UN);
    fclose($limit);
    $left = fopen("left.txt", "c+");
    flock($left, LOCK_EX);
    $remaining = (int)fread($left, filesize("left.txt"));
    ftruncate($left, 0);
    fseek($left, 0);
    fwrite($left, $remaining - 1);
    flock($left, LOCK_UN);
    fclose($left);
    header('Location: http://www.yoursite.com/'); // this links back to your submission form
    exit;
    ?>
    
    

    count.txt [구입 한 좌석 수] :

    0
    
    

    left.txt [좌석 수]

    10
    
    

    max.txt [판매중인 좌석 수]

    10
    
    

    이것이 장래 누군가에게 도움이되기를 바랍니다.이 코드는 서버에서 실행될 때 백엔드에서 볼 수 있지만 많은 양의 오류 로그를 던지지 만 저에게 필요한 것입니다. 누군가 언젠가이 부분을 개선 할 수 있다면 앞으로 나와 다른 많은 사람들이 매우 감사 할 것입니다.

  • 이전 elasticsearch - 쿼리 할 문자열의 일부 및/또는 추가 방법
  • 다음 node.js - 포트 3000에서 쿠키를 가져 오려고 할 때 쿠키와 서명 된 쿠키가 왜 비어 있습니까?