2017-12-28 9 views
0

"주석"을 클릭하면 새 파일 $ cname.txt가 열리지 않으므로 파일에 값을 삽입 할 수 없으므로 아무 것도 게시되지 않습니다. 사용자가 제출을 클릭 할 때 그 cname과 주석을 게시하고 싶습니다. 여기 내 코드입니다 :파일에 삽입

<?php 
$name=""; 
/*print_r($_POST);*/ 
if(isset($_POST['submit'])) { 
     global $name; 
     $name=$_POST['name']; 
     $query=$_POST['query']; 
     $my_query="My query"; 
    /* $files=fopen("$name.txt","w"); 
     fclose($files); */ 
     $po="$name <br> $my_query:$query \n"; 
     $myfile=fopen("posts.txt","a+"); 
     fwrite($myfile,$po); 
     fclose($myfile); 
} 
     $mypost=fopen("posts.txt","r"); 
     while($line = fgets($mypost)) { 
     echo '<form class="w3-container w3-card-4 w3-light-grey w3-text-blue w3-margin"> 
     <div class="w3-row w3-section"> 
     <div class="w3-col" style="width:50px"><i class="fa fa-question-circle-o" style="font-size:30px"></i></div> 
     <div class="w3-rest"> 
     <p class="w3-input w3-border"><i class="fa fa-user-circle-o"></i>'.$line; echo '</p> 
    </div> 
</div> 
    <p>comments</p> 
    <form method="post" action="' .htmlspecialchars($_SERVER['PHP_SELF']); echo '"> 
    Name:<textarea name="cname" rows="1" cols="4"></textarea><textarea name="comment" rows="1" cols="60"></textarea><br> 
    <input type="submit" name="submits" value="Comment" class="w3-button w3-section w3-blue w3-ripple"> 
    </form> 
    ' ; } 
    $cname=""; 
    if(isset($_POST['submits'])) { 
      global $cname; 
      $cname=$_POST['cname']; 
      $comment=$_POST['comment']; 
      $pos="$cname <br> $comment \n"; 
      $myfiles=fopen("$cname.txt","a+"); 
      fwrite($myfiles,$pos); 
      fclose($myfiles); 
      $myposts=fopen("$cname.txt","r"); 
      while($lines = fgets($myposts)) { 
       echo $lines; 
       } 

    }' 
    </form>' 
    ; 
     ?> 
+0

myfiles의 =하면 fopen이 $ 시도 ("{$의 CNAME}가 .txt를", "A +"); –

+0

사용자 제공 데이터를 사용하여 파일 이름을 결정하는 것은 위험합니다. 입력 내용을 필터링하십시오. – Philip

+0

조치 주위의 추가 공백도 제거합니다. –

답변

0
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>"> 
+0

사실, 내가 사용한 적이있는 일부 HTML 내용 사이에

+0

지금 @ halojoy를 참조하십시오. 나는 그것을 업데이트했습니다. –

+2

몇 가지 제한된 즉각적인 도움을 줄 수있는이 코드 조각을 가져 주셔서 감사합니다. [적절한 설명] (https://meta.stackexchange.com/q/114762/349538)은 이것이 왜이 문제에 대한 좋은 해결책인지를 보여줌으로써 장기적인 가치를 크게 향상시킬 것이고 미래의 독자들에게 더 유용하게 만들 것입니다 다른 비슷한 질문들. 귀하의 가정을 포함하여 몇 가지 설명을 추가하려면 답변을 [edit] (https://stackoverflow.com/posts/48005774/edit)주십시오. –