当用户上传文件时,我在php的error_log中遇到类似的错误
PHP警告:POST内容长度11933650字节超过了第0行的Unknown中的8388608字节限制
在我的php.ini(在public_html中创建自定义ini文件)这会解决这个问题,我需要将它设置为1GB左右?我将在php.ini中将我的设置更改为此,它会解决问题吗?
upload_max_filesize = 1000M ;1GB
post_max_size = 1000M
Run Code Online (Sandbox Code Playgroud)
我将'memory_limit'限制为什么?
在我的脚本中检查文件上传大小是否<1GB也是正确的
if($_FILES["uploadedfile"]["size"]<1000000)
Run Code Online (Sandbox Code Playgroud) 我试图让JavaScript以格式显示明天的日期(dd-mm-yyyy)
我有这个脚本以格式显示今天的日期(dd-mm-yyyy)
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
Displays: 25/2/2012 (todays date of this post)
Run Code Online (Sandbox Code Playgroud)
但是如何让它以相同的格式显示明天日期,即 26/2/2012
我试过这个:
var day = currentDate.getDate() + 1
Run Code Online (Sandbox Code Playgroud)
但是我可以保持+1并且超过31,显然一个月没有> 32天
一直在寻找几个小时,但似乎没有答案或解决方案?
我的PHP脚本向用户发送电子邮件,当电子邮件到达其邮箱时,主题行($subject)包含a^£添加到主题文本末尾的字符.这显然是编码问题.电子邮件内容本身很好,只是主题行被打破.
我已经搜遍了所有,但无法找到如何正确编码我的主题.
这是我的标题.请注意,我使用Content-Type同charset=utf-8和 Content-Transfer-Encoding: 8bit.
//set all necessary headers
$headers = "From: $sender_name<$from>\n";
$headers .= "Reply-To: $sender_name<$from>\n";
$headers .= "X-Sender: $sender_name<$from>\n";
$headers .= "X-Mailer: PHP4\n"; //mailer
$headers .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal
$headers .= "MIME-Version: 1.0\n";
$headers .= "X-MSMail-Priority: High\n";
$headers .= "Importance: 3\n";
$headers .= "Date: $date\n";
$headers .= "Delivered-to: $to\n";
$headers .= "Return-Path: $sender_name<$from>\n";
$headers .= "Envelope-from: $sender_name<$from>\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-Type: …Run Code Online (Sandbox Code Playgroud) 我有一个(HTTPS)login.php页面,它仍然是HTTPS(即用户登录后进入帐户仪表板).现在问题是用户登录到安全仪表板时点击了非敏感页面(HTTP)about-us.php页面,会话不通过HTTP传输,因为我有session.cookie_secure = 1,这意味着用户似乎在HTTP页面上注销.
但是,当用户返回仪表板页面或任何敏感帐户页面时,我被告知他仍然应该登录(即从HTTP返回到HTTPS)?但事实并非如此,他似乎也登录了HTTPS连接?
我相信我错过了造成这个问题的事情.这是我的代码:
这是PHP头文件,在login.php页面上调用它来启动会话:
session_start();
session_regenerate_id(true); /*avoid session fixation attempt*/
/*Create and check how long session has been started (over 5 mins) regenerate id - avoid session hijack*/
if(!isset($_SESSION['CREATED']))
{
$_SESSION['CREATED'] = time();/*time created session, ie from login/contact advertiser/email_confirm only ways for new session to start*/
}
elseif(time() - $_SESSION['CREATED'] > 300)
{
/*session started more than 5 mins(300 secs) ago*/
session_regenerate_id(true); /*change session ID for the current session and invalidate old session ID*/
$_SESSION['CREATED'] = time(); /*update …Run Code Online (Sandbox Code Playgroud) 用户在我的网站上传图像时遇到了很多问题.
他们最多可以上传6张图片
最初我不得不将php.ini中的值更改为:
upload_max_filesize = 2000M
post_max_size = 2000M
max_execution_time = 120
max_file_uploads = 7
memory_limit=128M
Run Code Online (Sandbox Code Playgroud)
我不得不改变这个,因为得到了各种各样的错误,如内存不足,超出最大值等.
在我查看包含以下内容的错误日志之前,一切正常
[11-Jun-2011 04:33:06] PHP Warning: Unknown: POST Content-Length of 113 bytes exceeds the limit of -1988100096 bytes in Unknown on line 0 [11-Jun-2011 04:33:12] PHP Warning: Unknown: POST Content-Length of 75 bytes exceeds the limit of -1988100096 bytes in Unknown on line 0 [11-Jun-2011 04:33:27] PHP Warning: Unknown: POST Content-Length of 74 bytes exceeds the limit of -1988100096 bytes in Unknown on line …
谢谢你的回复.我已经更新了我的PHP会话代码.
我有一个(HTTPS)-login.php,它仍然是HTTPS,即用户登录后进入帐户仪表板.现在问题是用户在登录仪表板时点击了(HTTP)-about-us.php页面,会话不通过HTTP传输,因为我有session.cookie_secure = 1,那个好用户似乎已经注销了.但是,当用户返回仪表板页面时,他也会在HTTPS上注销?
我相信我错过了造成这个问题的事情.这是我的代码:
这是PHP头文件require()ed以启动会话,即在login.php页面上:
session_start();
session_regenerate_id(true); /*avoid session fixation attempt*/
/*Create and check how long session has been started (over 5 mins) regenerate id - avoid session hijack*/
if(!isset($_SESSION['CREATED']))
{
$_SESSION['CREATED'] = time();/*time created session, ie from login/contact advertiser/email_confirm only ways for new session to start*/
}
elseif(time() - $_SESSION['CREATED'] > 300)
{
/*session started more than 5 mins(300 secs) ago*/
session_regenerate_id(true); /*change session ID for the current session and invalidate old session ID*/
$_SESSION['CREATED'] = time(); /*update …Run Code Online (Sandbox Code Playgroud) 当用户在我的网站上传图像时,我收到此错误.
错误消息是"PHP致命错误:内存不足(分配80740352)(试图分配12352字节)/ home ......."我如何使用php.ini解决这个问题?
这是我目前上传的php.ini设置
upload_max_filesize = 2000M ;
post_max_size = 2000M
max_file_uploads = 8
Run Code Online (Sandbox Code Playgroud)
还有什么想法我需要添加什么才能解决这个错误?
我试图弄清楚如何手动更新MYSQL DATE和TIME字段(不是今天的日期!),即以正确的SQL必需字段格式将日期字段设置为某个特定时间字段的特定日期值和时间字段.
我正在使用UPDATE查询而不是INSERT,因为我的操作是更新用户字段
完成了一些研究,并提出了一些事情(显然这个例子不起作用,但是有谁知道如何格式化这个查询?
UPDATE mytblname SET date='DATE: Manual Date', '2011-06-14'', time='TIME: Manual Time', '12:10:00' WHERE email='somevalue'
Run Code Online (Sandbox Code Playgroud)
如果我只是以正常的SQL方式输入值,它会给出日期和00:00:00的制造商的时间 - 即
SET date='2011-06-14',time='12:33:35'
Run Code Online (Sandbox Code Playgroud)
谢谢你的任何建议,真的很感激!!!
谢谢你的回复.我已经更新了我的PHP会话代码.
我已经摆脱了用户代理检查,因为@Rook已经向我展示了逻辑中的缺陷.
不幸的是我通过编辑它搞砸了原来的问题,现在我无法回复对不起的家伙,但@Rook确实解决了我原来的问题.
再次感谢您的帮助,daza166
我有一个strcpy()函数的问题.我想要做的是用户输入文件名,我基本打开文件,获取内容并创建文件副本.
但是,我决定进行一些错误检查,以检查内容read()是否与写入之前写入复制文件中的内容相同.因此,我使用文件读取的文件大小将()内容读入动态数组,因此缓冲区是适合数据的大小.然后我想创建一个副本到另一个动态缓冲区,并使用strcmp()来查看它们是否相同,如果是,那么我将复制缓冲区写入输出文件?
这适用于某些文件,但视频文件(mpeg)等问题,打开视频文件时出现错误'无法确定流的类型',继承人的想法
char* buffer1 = malloc(filessize);
char* buffer2 = malloc(filessize);
read(file, buffer1, filesize);
strcpy(buffer2, buffer1); //copy buffer1 into buffer2
if(strcmp(buffer1, buffer2) == 0)
{
write(outputfile, buffer2, filesize); //write copied buffer to file
}
free(buffer1); free(buffer2);
Run Code Online (Sandbox Code Playgroud)
那么我在内存中创建另一个缓冲区副本的原因是我可以比较实际的位数据,而不仅仅是大小,所以我知道正在写入的数据与正在读取的数据相同?
我有几个关于使用PHP的安全性的问题,我不想使用会话,所以我使用POST来验证用户的页面到页面,所以: -
1)如果我有一个使用method ='POST'的注册表格,显然我需要在发送数据时过滤掉数据,以检查数据是否有效,我还需要在该页面上使用SSL(https).现在只是注册表格非常小,即名称,电子邮件,密码将过滤检查和https足够安全只是为这个阶段.我还在注册表上有一个验证码以避免垃圾邮件.
2)在隐藏的POST字段中发送像userid值这样的数据(即123456)是否可以,这样我就可以确定数据库中正在发送数据的用户,以避免使用会话等.可能也会发送电子邮件地址但是没有像密码或非常敏感的信息.我显然会检查格式是否适合使用正则表达式的用户ID,即如果它的x位数,如果发布电子邮件地址则相同.我发送userid值和电子邮件地址的原因是当用户在注册/登录后发布表单中的数据后,他们可以填写表单,我添加一些隐藏字段和表单,通过使用电子邮件添加和用户来识别用户id隐藏值发布,他们都必须在mysql查询中正确否则出错信息,所以即使被篡改黑客也要猜对了用户ID到电子邮件添加.此外,如果页面有ssl,这将是正常的.
希望这有道理吗?谢谢
我正在使用PHP中的MYSQL数据库打印页面内容.我在db中有一个名为$ row ['description']的文本字段
将用户输入存储到db时我只使用mysql_real_escape_string(),所以我不编辑html
问题是我使用db中的这个字段作为html页元描述标记.因此,如果用户在描述中插入换行符,则会在元描述标记内的页面源代码中导致换行符.我试图通过使用循环跳过br格式来删除换行符.我使用nl2br转换为br.
$desc_array=(explode(" ", $row['description']));
for($i=0; $i < 17;$i++){
if(nl2br($desc_array[$i])=="<br />" || nl2br($desc_array[$i])=="<br/>"){
$i++;
}
Run Code Online (Sandbox Code Playgroud)
我检查了我的SQL文件,换行符显示为
\r\n\r\n
Run Code Online (Sandbox Code Playgroud)
我试图检查这种格式
$desc_array[$i])=="\r\n\r\n"
$desc_array[$i])=="\r\n"
$desc_array[$i])=="\n"
$desc_array[$i])=="\r"
Run Code Online (Sandbox Code Playgroud)
但仍然在描述标签中打印换行符.有任何想法吗?
我有一个关于PHP require()函数的问题.我有一个名为(login.php)的PHP脚本(login.php)我使用各种require()函数来获取繁重的PHP编码脚本来处理原始脚本(login.php).
但是我注意到在require()脚本上我可以访问原始(login.php)上定义的局部变量.然而,问题是在所需的脚本上我有另一个require()函数然后那些最初在(login.php)上定义的变量丢失(即如果我isset()说它们没有设置?).那么你如何require()在require()问题中解决这个问题呢?
任何想法可能使用$_SESSION或$GLOBALS变量?我知道$_SESSION变量,但$GLOBALS变量是安全的吗?
下面是脚本var设置的简短示例(login.php)
if(!isset($header_displayed))
{
echo "<div id='header'>
<div id='logo'></div>
</div>";
$header_displayed=1;
}
Run Code Online (Sandbox Code Playgroud)
然后使用require()从上面(login.php)调用此脚本
if(!function_exists('writeErrors'))
{
function writeErrors($error,$host_details,$date,$page,$line)
{
require("/home/darren/crash_msg/error_msg.php");
}
}
Run Code Online (Sandbox Code Playgroud)
然后在error_msg脚本上调用$ header_displayed var未设置?
从反馈来看似乎在函数内使用require()会限制所有的全局变量.所以你必须这样做:
if(!function_exists('writeErrors'))
{
function writeErrors($error,$host_details,$date,$page,$line, add var paramters that you need ie $header_displayed)
{
/*log SQL stuff*/
$display_error_msg=1;
require("/home/darren/crash_msg/error_msg.php"); /*now header_displayed var set on this script*/ …Run Code Online (Sandbox Code Playgroud)