discuz email 已经被注册的解决办法

 更新时间:2016年11月25日 17:40  
如果论坛不唯一邮箱太多,又不能挨个修改,只能通过程序解决,防止修改的密码的时候报错。具体修改如下:
找到:



$ucresult = uc_user_edit($discuz_user, $oldpassword, $ne

如果论坛不唯一邮箱太多,又不能挨个修改,只能通过程序解决,防止修改的密码的时候报错。具体修改如下:

找到:


$ucresult = uc_user_edit($discuz_user, $oldpassword, $newpassword, $emailnew, 0, $questionidnew, $answernew);

在上面增加


if($emailnew==$member[email]){$emailnew="";$emailnew1=$member[email];}else{$emailnew1=$emailnew;}

找到:


if($regverify == 1 && $adminid == 0 && $emailnew != $email && (($grouptype == 'member' && $adminid == 0) || $groupid == 8)) {

将其中的

$emailnew改为$emailnew1

php教程下载jpg文件为空解决方法

jpg格式的文件,点击在浏览器中打开显示为红叉

代码如下:

$filetype = "image/pjpeg";
header("content-type: {$filetype}");
   

header("expires: 0");
header("cache-control: must-revalidate, post-check=0,pre-check=0");
header("pragma: public");

$file_content = file_get_contents($filepath);
echo $file_content;
exit; 

首先排查初始文件是否有问题

1、echo $filepath;

2、根据输出的文件完整路径,打开文件,没有问题

排除原始文件的嫌疑

然后排查在文件读取过程中是否存在问题

1、$filetype = "application/jpeg";

 header("content-disposition: attachment; filename="{$headername}";");

将文件强制下载

下载下来发现文件大小与原始文件一致,但是打开后还是为空,可以确定在文件输出的时候出现了问题

 使用file_put_contents("d:aaa.jpg",file_get_contents($filepath)),将文件保存到服务器,保存的文件可以打开

这时我怀疑在文件输出到客户端的时候编码出了问题

经过一段时间的折腾,终于把问题解决,代码如下:

header("content-type: {$filetype}");
header("expires: 0");
header("cache-control: must-revalidate, post-check=0,pre-check=0");
header("pragma: public");
//此处增加编码设定
header('content-transfer-encoding: binary');
//此处最重要,目的是要清空输出的字节
ob_clean();
//此处等于下面被注射的两行,可节省代码
readfile($filepath);

//$file_content = file_get_contents($filepath);
//echo $file_content;  
exit; 

此处附ob_clean()的解释:

clean (erase) the output buffer

我理解ob_clean()等于.net中的response.clear();

php教程判断页面输入字符编码方法

<?php
function convtoutf8($str)
{
if( mb_detect_encoding($str,"utf-8, iso-8859-1, gbk")!="utf-8" )
{

return  iconv("gbk","utf-8",$str);

}
else
{
return $str;
}

}
?>

不过有朋友说,mb_detect_encoding函数不支持gbk只支持utf-8,utf-7,ascii,euc-jp,sjis,eucjp-win,sjis-win,jis,iso-2022-jp和iso-8859-*
各位可以测试,我没测试过。

<?php
/* detect character encoding with current detect_order */
echo mb_detect_encoding($str);

/* "auto" is expanded according to mbstring.language */
echo mb_detect_encoding($str, "auto");

/* specify encoding_list character encoding by comma separated list */
echo mb_detect_encoding($str, "jis, eucjp-win, sjis-win");

/* use array to specify encoding_list  */
$ary[] = "ascii";
$ary[] = "jis";
$ary[] = "euc-jp";
echo

推荐一篇文章 http://www.111cn.net/phper/php-cy/36263.htm

php教程中文目录 include错误解决访求

include_path='.;c:php5pear'的错误

warning: unknown: failed to open stream: no such file or directory in unknown on line 0

fatal error: unknown: failed opening required 'e:/ttttt/中文/index.php' (include_path='.;c:php5pear') in unknown on line 0


在google和百后,都讲的是include_path的配置问题,所有的这些都配置无误。

最后排查,是因为中文路径的问题。


最后解决办法:

文件夹不用中文名


最后提示一下,apache2.2 配置的网络文件夹是可以用中文的,只需要把httpd.conf保存为utf-8即可。

 

关于php教程处理textarea回车换行替换方法(js调用出错)
在textarea输入框里面chr(13)是代表回车,但当我替换时确实可以我要的字符,但是他显示时回车的地方就会有一个空格,
经过反复调试是有一个n ,这个应该是数据库教程或程序的回车符吧。
-->

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