困扰了2天的$_POST传值,帮个忙吧。

gxpotato gxpotato 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近因为朋友要求,帮忙做个可以自由发布MP3或者WMA的PHPWIND插件,每次扣除一定的虚拟货币。其实,很简单也就是填个表单,上传一个文件。就没有了,但是,关于表单的提交一直都是不明白机制,胆战心惊的说。不是每次都成功,极度的郁闷。接触PHP只有几天的时间,对PHP的很多东西都不了解,多多见谅。只有两个文件,内容如下:


musicMoney.php,用于填写发布的信息,内容如下:
<?php
require_once('global.php');
require_once(R_P.'require/header.php');
//echo $winduid;
if($groupid=='guest' || $money<100 )
{
Showmsg("你未符合使用本功能的条件!");
//echo "<script>alert('未登录不能使用本功能!');location.href='login.php';</script>";
}
else
{
?>
<form enctype='multipart/form-data' action='musicProcess.php' method='POST'>
<table width='429' border='0' cellspacing='0' cellpadding='0' align='center'>
<caption align='left'>        歌曲点播<br />
</caption>
<tr colspan='2'><td width='67' height=24> </td>
</tr>
<tr>
<td align='right' valign='middle'>歌曲名:</td>

<td width='362' align='left' valign='middle'><input name='music_Name' type='text'></td>
</tr>
<tr>
<td align='right' valign='middle'>演唱者:</td>
<td align='left' valign='middle'><input name='music_Article' type='text'></td>
</tr>
<tr>
<td align='right' valign='top'>祝 词:</td>
<td align='left' valign='top'>
<textarea name='music_Content' cols='40' rows='6'></textarea>
<br> 这里可以填写谁点播给谁等等,最好不要使用半角的标点符号。 </td>
</tr>
<tr>
<td align='right' valign='top'>文 件:</td>
<td align='left' valign='top'>
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type='hidden' name='MAX_FILE_SIZE' value='8388608'>
<!-- Name of input element determines name in $_FILES array -->
<input name='user_file' type='file'>
</br>
<p>文件必须小于8MB! </p></td>
</tr>
<tr>
<td align='right' valign='top'> </td>
<td align='left' valign='middle'><br><input name='submit' type='submit' value='提 交' /> 
 

<input type='reset' name='Submit' value='重 置' /></td>
</tr>
<tr>
<td align='right' valign='top'> </td>
<td align='left' valign='top'><br /><font color=red >注意:<br />文件格式只支持MP3和WMA! <br />任何试图上传非许可类型文件均扣除50XB.<br />推荐上传 <b>WMA </b>格式的文件,因为比较小,不容易出错.谢谢合作.</font> </td>
</tr>
</table>
</form>
<?
}

footer();
?>

文件musicProcess.php用于进行表单的处理:
<?php
require("global.php");
require_once(R_P.'require/header.php');

$musiCost=100;//每次的花费。
$musciError=40;//错误文件类型进行的处罚。
$fileCheck=false;//文件检查
//import_request_variables("gp", "xy_");

$music_Name=$_POST['music_Name'];
$music_Article=$_POST['music_Article'];
$music_Content=$_POST['music_Content'];

$music_Name=Char_cv($music_Name);
$music_Article=Char_cv($music_Article);
$music_Content=Char_cv($music_Content);

//print_r($_FILES);

if($groupid=="guest" || $money<$musiCost)
{
Showmsg("你尚未达到使用本功能的条件,1、未正常登录 2、小于".$musiCost."XB。");
}



else
{
if($music_Name || $music_Content)
{
echo "<script>alert('出现以下错误:\\n1、歌曲名称为空。 \\n2、祝词为空。\\n');history.go(-1);</script>";
}
else
{
$realFileName=time();//用时间秒数产生文件名


/////////////////////日志记录//////////////////
$logFile=file_get_contents ("plugins/logs/log.txt");
$logff=$winduid."|".$windid."|".$music_Name."|".$music_Article."|".$music_Content."|".get_date($timestamp,"Y-m-d H:i:s")."|".$realFileName."\n".$logFile;
file_put_contents("plugins/logs/log.txt",$logff);


//echo $music_Name;
///////////过滤一些敏感的JAVASCRIPT字符///////////
$music_Name=str_replace("," ,",",$music_Name);
$music_Article=str_replace("," ,",",$music_Article);
$vowels = array("\r","\n","~","^");
$music_Content=str_replace($vowels,"",$music_Content);
$music_Content=str_replace("," ,",",$music_Content);
$uploaddir = 'plugins/musics/';

if(eregi("\.(wma)$",$_FILES['user_file']['name'])) //检查是否wma文件
{
$musicUrl=$realFileName.'.wma';
$uploadfile=$uploaddir.$realFileName.'.wma';
$fileCheck=true;
}
if(eregi("\.(mp3)$",$_FILES['user_file']['name'])) //检查是否mp3文件
{
$musicUrl=$realFileName.'.mp3';
$uploadfile=$uploaddir.$realFileName.'.mp3';
$fileCheck=true;
}

if($fileCheck) //eregi("\.(wma|mp3)$",$_FILES['user_file']['name']))
{

if (move_uploaded_file($_FILES['user_file']['tmp_name'], $uploadfile)) //我的PHP版本是5.0的,所以用move_uploaded_file函数。
{

$musicSaid="mkList(\"plugins/musics/".$musicUrl."\",\"[MusicBox]-[".$musicName."]";
if($music_Article=="")
{
$musicSaid=$musicSaid."--".$music_Content.".[".$windid." on ".get_date($timestamp,"Y-m-d H:i:s")."]\");";
}
else
{
$musicSaid=$musicSaid."-[".$music_Article."]"."--".$music_Content.".[".$windid." on ".get_date($timestamp,"Y-m-d H:i:s")."]\");";
}

$musicSaid=str_replace("'" ,"‘",$musicSaid);
$musicSaid=str_replace("!" ,"!",$musicSaid);
$musicSaid=str_replace("^" ,"",$musicSaid);

//把歌曲路径写入列表文件
$file=file_get_contents ("plugins/exobud/exobudpl.js");
$ff=$musicSaid."\n".$file;
file_put_contents("plugins/exobud/exobudpl.js",$ff);

//扣除虚拟货币
$money=$money-$musiCost;
$db->update("UPDATE pw_memberdata SET money=".$money." WHERE uid='".$winduid."'");
Showmsg("你的祝福及歌曲已经全部处理完毕. 本次操作扣除".$musiCost." XB.");
}
else
{
Showmsg("文件上传错误,请检查文件大小是否<8MB!");
//echo "<script>alert('文件上传错误,请检查文件大小是否<8MB!');history.go(-1);</script>";
}
}else
{
$money=$money-$musciError;
$db->update("UPDATE pw_memberdata SET money=".$money." WHERE uid='".$winduid."'");
Showmsg("文件上传错误,请检查文件格式(仅支持MP3/WMA)! 本次操作扣除 $musciError XB.");
}

}

}

footer();

?>



现在的问题是:
$music_Name=$_POST['music_Name'];
$music_Article=$_POST['music_Article'];
$music_Content=$_POST['music_Content'];

根本取不到值,而且$_FILES里面也是空的。和register_globals关系不大,我又不是直接用变量。这两天内火都大了一些,我承认我接触PHP只有3天时间,光是这个表单就搞了2天,欲哭无泪啊。。
...全文

相关推荐

解决Django中checkbox复选框的传值问题

主要介绍了解决Django中checkbox复选框的传值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

weixin_38689041

解决layui批量传值到后台操作时出现传值为空的问题

今天小编就为大家分享一篇解决layui批量传值到后台操作时出现传值为空的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

weixin_38661008

jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解

本文重点是来讲讲jQuery中调用ajax的4种方法:$.get、$.post、$getJSON、$ajax。如果读者没有javascript和jquery的知识,或者没有ajax的概念,那么请先去问问度娘,再来读本文。

weixin_38668160

JS解决url传值出现中文乱码的另类办法

在开发web应用时,很多情况都需要进行前后台的数据交互,有时候我们可能需要把前台的中文数据通过URL的方式传递到后台,但此时有个令人头疼的问题,因为Java中网络传输使用的标准字符集是ISO-8859-1,所以在后台用request.getParameter(“message”);获取前台传过来的中文时,得到的还是ISO-8859-1字符集,中文就会出现乱码现象,好多人的解决办法是在前台传递中文之前进行decode,后台再decode一下进行转换,这样感觉很是麻烦,难道就没其他的方式解决吗?        苦思冥想了一下:为什么用表单的方式就可以传递中文,而URL的方式就不行了呢?非得用URL

weixin_38500572

ajax_json_post_ashx获取参数值

.net AJAX,POST提交JSON数据,ashx,解决context.Request.Form、context.Request.Params获取不到值的问题。

w379631014
评论 11
收藏 已收藏
分享
返回顶部
gxpotato
基础编程 21,889 成员 140,329 内容