首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP与模板与代码加密/优化 » [原创][请教]大虾请指点一下  


  作者:Wohl
  注册时间:2005-04-16
  主题/回复:5/2
  积分:427
  等级:★★☆(五级)
  称号:略有小成

  buaacuiying@sohu..
  未提供
  www.

 

 发表:2005-04-16 00:55:06 阅读 2182 次 回复 1 次 得分1  |   字号 字色
[原创][请教]大虾请指点一下
我在编程时遇到这个问题:
Notice: Undefined variable: to in e:\cy\easyphp1-8\www\mail.php on line 2

我的代码如下:
mail.html:
<html>
<head>
<title>邮件发送</title>
</head>
<body>
<div align=center>
<form action="mail.php" method="post">
<table width=88% border="0">
<tr>
<td bgcolor="#ffffdd"><font color="#0000ff">收信人:
<input type="text" name="to" size="40" value="">
</font></td>
</tr><tr>
<td bgcolor="#ffffdd"><font color="#0000ff">寄信人:
<input type="text" name="from" size="40">
</font></td>
</tr><tr>
<td bgcolor="#ffffdd"><font color="#0000ff">标  题:
<input type="text" name="title" size="40">
</font></td>
</tr><tr>
<td bgcolor="#ffffdd"><font color="#0000ff">正  文:
<textarea name="message" rows="6" cols="50">
</textarea>
</font></td>
</tr><tr>
<td bgcolor="#ffffdd"><center>
<input type="submit" name="submit" value="send">
<input type="reset" name="cancel" value="cancel">
</center></td>
</tr>
</table></form></div>
</body>
</html>

mail.php:

<?php
if(!$to)
{
echo "<p align=center><font color=red size=4>
<b>收信人地址不能为空!<br></b>请点击此处
<a href=javascript:history.go(-1);>返回</a></font></p>";
exit();
}

if(!$title)  $title="";

if(!$message)  $message="";

if($from)
{
$from="From:$from\n";
$reply="Reply-To:$from\n";
}
else
{
$from="";
}
if($cc)
{
$cc="CC:$cc";
}
else
{
$cc="";
}
if(@mail($to,$title,$message,$from,$reoly,$cc))
{
echo "<p align=center><font color=red size=4><b>
您的邮件发送成功!<br></b>请点击此处
<a href=javascript:history.go(-1);>返回</a></font></p>";
exit();
}
else
{
echo "<p align=center><font color=red size=4><b>
对不起!您的邮件发送不成功!<br></b>请点击此处
<a href=javascript:history.go(-1);>返回</a></font></p>";
exit();
}
?>

我在很多时候都遇到这种情况,提示没有定义变量,不知道是否要在判断前先定义。
请大虾指点指点,谢谢
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-04-16 02:17:44  评分:1 

if(!$to)

这个$to确实没有定义。
当然PHP不是强固类型化语言,可以不定义直接使用
但是你这个$to不仅没有定义,而且没有赋值。$to没有值怎么出现在表达式中做判断。

你的写法在PHP3中或许可以,但是php4以后默认不再支持register_globals,所以$to不会被默认注册。而且即使手工开启了register_globals,也建议关掉,因为这样可以带来很大安全问题。

比如你的代码,用户可以轻松通过在浏览器中输入  ...mail.php?to=1 就可以绕过你的if($to),所以安全性大大降低。
还是建议使用$_POST[]和$_GET[]接收变量。
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.005sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版