首页 > 编程技术 > php

php Undefined index和Undefined variable的解决方法

发布时间:2016-11-25 17:40

php教程 Undefined index和Undefined variable的解决方法
$act=$_POST['act'];

用以上代码总是提示
Notice: Undefined index: act in F:windsflybookpost.php on line 18

另外,有时还会出现

引用内容
Notice: Undefined variable: Submit ......

等一些这样的提示

原因:由于变量未定义引起的

解决方法:
1) error_reporting设置:
找到error_reporting = E_ALL
修改为error_reporting = E_ALL & ~E_NOTICE

2) register_globals设置:
找到register_globals = Off
修改为register_globals = On

Notice: Undefined variable: email in D:PHP5ENOTEADDNOTE.PHP on line 9
  Notice: Undefined variable: subject in D:PHP5ENOTEADDNOTE.PHP on line 9
  Notice: Undefined variable: comment in D:PHP5ENOTEADDNOTE.PHP on line 9
  ........
  本来php是不需要定义变量的,但是出现这种情况应该怎么办呢?
  只要在C:WINDOWS找出php.ini的
  在php.ini中的302行 error_reporting = E_ALL
  修改成
  error_reporting = E_ALL & ~E_NOTICE再重启apache2.2就行了
  解决方法:修改php.ini
  将: error_reporting = E_ALL
  修改为:error_reporting = E_ALL & ~E_NOTICE
  如果什么错误都不想让显示,直接修改:
  display_errors = Off
  如果你没有php.ini的修改权限,可在php头部加入
  ini_set("error_reporting","E_ALL & ~E_NOTICE");
  即可

 

中文在php 开发中经常会有意无意的碰到问题,今天我们来看看json_encode中文乱码的解决办法吧,虽然方法不是很好,但可以解决问题只
 代码如下 复制代码

<?php
$arr = array
       (
          'Name'=>'希亚',
          'Age'=>20
       );

$jsonencode = json_encode($arr);
echo $jsonencode;
?>

结果如下

{"Name":null,"Age":20}

中文成了空,那是什么原因呢,下面接着看
我们来测试utf-8

 代码如下 复制代码

<?php
$array = array
 (
   'title'=>iconv('gb2312','utf-8','这里是中文标题'),
  'body'=>'abcd...'
 );

echo json_encode($array);
?>

结果
{"title":"u8fd9u91ccu662fu4e2du6587u6807u9898","body":"abcd..."}

也不是我们想的东西,那我们利用php urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下

这样中文就没有问题了哦。

Parse error: syntax error, unexpected T_LNUMBER

<?php教程
//首先你的变量赋值有问题,在没有进行str_replace()的时候就会报错
$a = '"女老师竭力向孩子们证明,<span>学习好功课的重要性女老师竭<a href="1">2222222222</a>力向孩子们‘证明’,学习好功课的重要性女老师竭力向孩子们证明,学习好功课的重要性女老师竭力向孩子们证明,学习好功课的重要性女老师竭力向孩子们证明,学习好功课的重要性女老师竭力向孩子们证明"';

 <? echo str_replace("",""",$a)

 

失败 提示 $a=""; 错误 Parse error: syntax error, unexpected T_LNUMBER

正确方法

方法一

echo str_replace(array('"',"'","‘","’"),"",$a);

方法二

str_replace("'"“","",$a)

empty 和 is_null有什么区别?
 
bool empty ( mixed $var )

如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 

除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词。参见转换为布尔值获取更多信息。 
///////////////////////////////////////////////////////////////////////////////////////////
在下列情况下一个变量被认为是 NULL: 

bool is_null ( mixed $var )

如果 var 是 null 则返回 TRUE,否则返回 FALSE。 


被赋值为 NULL。 

尚未被赋值。 

被 unset()。

Mail Body的来源有时直接就是TextBox中的文本内容,但是如果对文本内容没有做处理的话,文本就会没有任何的格式,挤在一起,逐行显示。现在说的是如何让文本内容可以换行,然后不至于挤在一起。
  单步调试时,会发现获取到的文本内容中,文本中的换行被替换成了"rn",因为一直没有发现这个,导致绕了很大的圈子。既然找到了这个原因的话,就可以将这个字符串替换成HTML的<br/>了。
ex:string strBody = Body.Replace("rn","<br/>");
  虽然很easy,但当时不知道的时候确实很头疼,希望对你也会有用。


实例

<form id="form1" name="form1" method="post" action="">
  <label>
  <textarea name="t" id="t" cols="45" rows="5"></textarea>
  </label>
  <label>
  <input type="submit" name="button" id="button" value="提交" />
  </label>
</form>
<?php教程
 if($_POST){
  echo str_replace(chr(13),'<br>',$_POST['t']);
 
 }
 ?>

更多详细内容请查看:http://www.111cn.net/phper/29/ff8b04e8f5b663b8b86d960321efcc83.htm

 

标签:[!--infotagslink--]

您可能感兴趣的文章: