【问题标题】:how to increase the size of input values or post values in php?如何在 php 中增加输入值或发布值的大小?
【发布时间】:2012-12-28 10:01:06
【问题描述】:

我试图增加内存限制和 max_post_size 甚至像这样的上传大小:

ini_set('upload_max_filesize','50M');
ini_set('post_max_size','50M');
ini_set('memory_limit', '51M')

但是当我输入长文本到文本区域时,它不会发布或超过输入大小 extc?为什么? 注意:我可以将此值输入到与之无关的数据库中。

我的代码如下:

<div id="duzenle" style="<?=$duzenleme?>">
<form method="post" action="../../phps/icerikKayit.php">
<div style="width:770px;">
    <div>
    <table cellpadding="0" cellspacing="0">
    <tr>
        <input value="<?= $gelen_id ?>" name="gelen_id" type="text" id="gelen_id" size="60" style="display: none;" />
        <input value="<?= $button ?>" name="button" type="text" id="gelen_id" size="60" style="display: none;" />
        <input value="<?= $kategori_id ?>" name="kategori_id" type="text" id="kategori_id" size="60" style="display: none;" />
        <td style="font-weight: bold; font-size:12px;">Başlık</td><td width="10"> : </td><td><input value="<?= $baslik ?>" name="baslik" type="text" id="baslik" size="60" /></td>
    </tr>
    <tr>
        <td style="font-weight: bold; font-size:12px;">Açıklama</td><td> : </td><td><input value="<?= $aciklama ?>" name="aciklama" type="text" id="aciklama" size="60" /></td>
    </tr>
    <tr>
        <td style="font-weight: bold; font-size:12px;">Meta Tag</td><td> : </td><td><input value="<?= $meta_verisi ?>" name="meta_verisi" type="text" id="meta_verisi" size="60" /></td>
    </tr>
    <tr>
        <td style="font-weight: bold; font-size:12px;">Ek Bilgiler</td><td> : </td><td><input value="<?= $ek_bilgiler ?>" name="ek_bilgiler" type="text" id="ek_bilgiler" size="60" /></td>
    </tr>
    <tr>
        <td style="font-weight: bold; font-size:12px; vertical-align:top;">İçerik</td><td style="vertical-align: top;"> : </td>
        <td>
            <textarea id="icerik" name="icerik" rows="40" cols="40" style="width: 100%">
            <?= $icerik ?>
            </textarea>
        </td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td><br />
            <input type="submit" name="save" value="Kaydet" />
            <input type="reset" name="reset" value="Temizle" /> 
            <input type="button" value="Close" onClick="hideWindow();"/>

        </td>
    </tr>



    </table>    
    </div>

【问题讨论】:

  • 上传和 POST 限制在执行脚本之前处理。它们需要在 php.ini 或 .htaccess 中进行更改。
  • 我尝试了它们并重新启动它,但它仍然无法正常工作
  • 检查phpinfo,确保你修改了正确的ini文件。

标签: php size


【解决方案1】:

textarea 是一个 html 元素,它的工作方式与 PHP 设置无关。无论您设置什么 php 值,它仍会将自身限制为 html 最大限制

【讨论】:

  • 如何增加textarea的限制?
【解决方案2】:

没有听到你的问题,但是如果你使用 maxlength 属性,你将不能超过定义的字符,与 PHP 无关,如果你正在发布并且它没有被发布到你的数据库中可能您需要检查数据库文件类型,无论您使用的是VARCHAR 还是TEXT

【讨论】:

  • 这是一个 textarea 这就是为什么我无法在 textarea 标签中定义 maxlenght 我的主要问题与 post 或 char 输入大小限制有关
  • 另外,我尝试手动将值输入到 db 中,它可以正常工作
  • @user1702486 我怀疑你的 CSS 或 maxlength 属性在这里令人不安,还要确保你没有使用任何 strlen()
  • 我的表单没有发布特定内容。可以发布所有表单内容,但不能只发布其中一个,其中包含大量文本,这实际上是我的主要问题。
  • @user1702486 你确定你的变量实际上包含这么多文本吗?
【解决方案3】:

我猜你正在使用“addslashes”或类似的东西处理字符串,所以你可以在 JS 的帮助下创建一个更大的文本数组并尝试使用它。

【讨论】:

  • 不,它与字符样式无关。我尝试将所有文​​本都包含“a”,例如 aaaaaaaaaaaaaaaaaaaaaaaa
  • 我的观点是,onSubmit 一次性将较大的文本拆分为 200 个字符,并创建比使用数组数据发布表单更大的文本块,否则,如果您可以发布代码,将有助于清晰理解.
  • 我使用了您在上面粘贴的相同代码,超过 1000 行,其中每行包含 200 个字符,但没有出现任何错误。表单已成功发布到我的服务器,我能够检索值。
  • 怎么办?你觉得有什么问题
【解决方案4】:

设置php值与输入字符串无关。要增加文本区域的大小,您应该在html中使用属性cols和rows。增加 colsrows 属性增加了文本区域的大小。

例子:

<textarea cols=40 rows=80 ></textarea>

to exceed 50mb limit you will need atleast 50mb of text, that's around 500K lines of text

如果您需要限制到达数据库的文本大小,那么您应该在 php 中将其截断。

This 解决方案在这里向您展示如何截断或限制字符串

php truncate string if longer than limit and put some omission at the end..similar to ruby

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2014-06-19
    • 1970-01-01
    • 2021-11-29
    • 2014-07-21
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多