<?php
$mailto="[email protected]";
if (($NAME!="") and ($ADD!="")) {
  $tmpfilename = tempnam("/tmp", "dm");
  $fp = fopen($tmpfilename, "w");
  fwrite($fp, "From: ".$EMAIL."\n");
  fwrite($fp, "Subject: ".$TOPIC."  <dingdan>\n\n");
  fwrite($fp, "E-mail:".$EMAIL."\n");
  fwrite($fp, "NAME:".$NAME."\n");
  fwrite($fp, "ADDRESS:".$ADD."\n");
  fwrite($fp, "TEL:".$TEL."\n");
  fwrite($fp, "CONTENT:".$CONTENT."\n");
  fwrite($fp, "IP:".$REMOTE_ADDR."\n");
  fclose($fp);
  $execstr="cat ".$tmpfilename." | /usr/lib/sendmail ".$mailto;
  exec($execstr);
  $execstr="echo $sender $REMOTE_HOST >> /var/log/mail.log";
  exec($execstr);
  echo "谢谢您的提交,我们会尽快处理!<p><br><br><br><br><br>";
} else {
  ?>
哪位帮着改改?通过了就给分。原程序在4下面好用,在5下面不好用了。

解决方案 »

  1.   

    将类似于 $NAME,$ADD之类的变量转成$_POST["NAME"],$_POST["ADD"],应该是这个问题想想应该是通过POST提交过来的变量不能接收导致的问题。。
      

  2.   

    没有linux环境帮不了你,前面说得也有道理 $EMAIL 不知道是怎么来的,如果是通过表单得到的,那写正规一点就可以了.整个代码没有什么问题
      

  3.   

    把php.ini中的register_globals = Off改成register_globals = On重启服务器看看吧,
    如果是,就是变量自动注册的问题,你得写个程序处理这个问题!
      

  4.   

    晕 那么多fwrite,难道就不能 组成一个字符串后再一次fwrite?还有  发信怎么这样写? 第一次见,长见识了
      

  5.   

    实际就是个表单提交功能!
    原来PHP4时,提交后,我会收到一封信。
    现在成5了,我就收不到信了!
    我用的WINDOWS服务器。
    不要笑话俺的代码写的不好,俺本来就对写代码不感兴趣,能实际功能就可以了。
      

  6.   

    二楼大哥说是这样改吗?我确实不懂,请给我做一句范例,谢谢!
    fwrite($fp, "From: ".$_POST["EMAIL"]."\n");
      fwrite($fp, "Subject: ".$_POST["TOPIC"]."  <dingdan>\n\n");
      fwrite($fp, "E-mail:".$_POST["EMAIL"]."\n");
      

  7.   

    windows? 用什么发信的?
    php.ini里是否设置了smtp了?