【问题标题】:Can't get value of $POST [closed]无法获得 $POST 的价值 [关闭]
【发布时间】:2012-08-01 10:14:45
【问题描述】:

大家好,我有这个问题,我无法比较这两个字符串

<?php
 $dir = '/var/www/devData/test';

 // create new directory with 777 permissions if it does not exist yet
 // owner will be the user/group the PHP script is run under
 if ( !file_exists($dir) ) {
  mkdir ($dir, 0777);
 }



         $flag = 0;
         $stringData = $_POST['data']; // echo = null
         $file = "/var/www/devData/test/ciao.txt"; 
         $fh = fopen($file, 'a+') or die("can't open file");

         while(!feof($fh)) {
                    $theData = fgets($fh, filesize($file));
                    array_push($arr,$theData);
                    $i++;
         }  
         for($j=0; $j<count($arr); $j++) 
         if($stringData == $arr[j]){ // is the problem 
            $flag = 1;
         }
         if($flag = 0){
            fwrite($fh, $stringData); // fwrite works perfectly even if i try to print $string the result is null 
         }
         fclose($fh); 



 ?>

谁能解释我如何解决这个问题?这个脚本的目标是避免用户写两次相同的东西

【问题讨论】:

  • 所以我们应该猜猜为什么$_POST['data'] 是未定义的?我的猜测:您的表单有问题
  • 不是因为我可以将 $_POST 的内容写入 stange 的文件中
  • 我看到这是用ajax 标记的,您是否将数据作为帖子传递?你在做什么样的ajax请求?你在使用像 jQuery 这样的库吗.. 这么多问题!!
  • $stringData = $_POST['data']; // echo = null 暗示数据从一开始就不存在。所以问题是:它应该从哪里来?
  • 您的表单中是否有任何包含名称数据的输入字段?

标签: php ajax file


【解决方案1】:
     if($stringData == $arr[j]){ // is the problem 
                           ^^^
                      is missing a $

激活错误报告,这应该会自动向您指出:

error_reporting(E_ALL);
ini_set('display_errors', true);

【讨论】:

  • 感谢,但即使使用 $j 就像每次 $flag = 1 一样,所以每次两个字符串的比较每次都是真的。并且不可能
  • 然后再做一些分步调试。在每个步骤打印不同的变量,以找出它们的值以及它们为什么具有它们的值。
  • alrady done 很奇怪,我打印了写入的值并且必须为 1 但为 0,所以我检查了文件并且数据存储正确。看起来如果在发送数据之前尝试打印值。真的不知道我这两天有这种问题
  • 也许可以通过使用内置函数来简化代码:file() 将文件的行读入数组,in_array() 用于在数组中搜索 $stringData。
猜你喜欢
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 2017-05-06
  • 2018-01-04
  • 1970-01-01
相关资源
最近更新 更多