日期:2014-05-17  浏览次数:20412 次

【新手问题】为什么一个变量没有经过取值就直接使用了?
下面的代码中   $photo   为什么没有经过$_POST取值便可以直接使用了?而象$id之类的要经过$_POST取值后才可以使用?

(这段代码是一段   处理另一个注册页面传来数据   的代码,在另一个注册页面中有如下对应代码:   <input   type= "file "   name= "photo "   size= '25 '>   )

<?
//   取得网页的参数
$id=$_POST[ 'id '];
$name=$_POST[ 'name '];
$password=$_POST[ 'password '];

...

if   ($photo <> " "){
$fp=fopen($photo, "r ");
$data=addslashes(fread($fp,filesize($photo)));
}
$password=md5($password);
$sql= "insert   into   member   (id,   name,   password,   sex,   email,   oicq,   homepage,   city,   address,   zip,   tel,   edu,   introduction,   interest,   birthday,   photo,   regtime,   regip)   values( '$id ',   '$name ',   '$password ',   '$sex ',   '$email ',   '$oicq ',   '$homepage ',   '$city ',   '$address ',   '$zip ',   '$tel ',   '$edu ',   '$introduction ',   '$interest ',   '$birthday ',   '$data ',   '$now ',   '$ip ') ";

...

------解决方案--------------------
估计你的php.ini 里register_globals 状态为on吧?
------解决方案--------------------
register_globals 状态为on
photo他忘记用$_POST取值了
------解决方案--------------------
$photo 是沿用的以前的规则,以前的PHP可以不用$_POST 而直接取值即可。
$XXX也是可以直接使用的。