TestAccount: $_POST size limit

Scheinbar ist mein Post ja leider verschwunden; also, hier die JS und PHP nochmal

Hi LOTO,
also wie gewünscht das definitive JS:

jQuery.ajax({
type: "POST",
url: "myFunctions.php?action=saveFile",
data: "data=" + $('#myTextArea').html(),
success: function(response){
alert(response);
}
});

und noch die PHP:

<?php
ini_set('display_errors', 1);
ini_set('log_errors', 1);
error_reporting(E_ALL);

if($_GET['action'] == 'saveFile'){saveFile($dir);}

function saveFile($dir){
if(!$handle = fopen('/srv/myDir/myFile.txt', "w+")){
print "Can't open file";
        exit;
}
if(!fwrite($handle, $_POST['data'])){
print "Can't open file";
exit;
}

fclose($handle);

}

?>

  1. Es hat also keiner einen Lösungsansatz?
    Danke im Voraus

    1. Tach,

      Es hat also keiner einen Lösungsansatz?

      zu welchem Problem?

      mfg
      Woodfighter

      1. Das POSTING ist leider verschwunden.
        Also wie zu sehen ist, sende ich den Inhalt einer textarea also POST an eine php, die das ganze in eine txt datei speichern soll; so weit so gut. das funktioniert auch einwandfrei, so lange die variable "data" nicht länger als eine din A4 seite ist.
        Andernfalls wird lediglich ein Teil in die txt geschrieben; der rest geht verlohren.
        Ich habe bereits die max_post_size auf 1000M gesetzt und das script_memory limit in der phpini angehoben. außerdem habe ich suhosin.simulator auf on gestzt, damit der mir nicht dazwischen funkt; zudem noch per SecFilterScanPOST auf off.
        Ich versteh nicht an was es noch liegen könnte.
        Habt ihr evtl ne idee?
        Vielen Dank im Voraus und viele grüße

        1. Lieber TestAccount,

          kannst Du das Verhalten in verschiedenen Browsern bestätigen?

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Hi Felix,
            Ja, leider schon; hab es in safari, chrome, ff und ie getestet; überall leider gleich.
            Lg

            1. Moin

              "Du hast in Deiner phpinfo eine Section "varfilter" mit dem setting varfilter.max_value_length der auf 1000 steht. Erhöhe den mal, denn das ist das einzige was mir einfällt/auffällt. Ich habe diese Vals garnicht und ich kann unbegrenzt lange strings nehmen (also dein example test ca. 20 mal einfach mal so probiert)."

              Quelle : Google hilft manchmal weiter!!!!

              Gruß Bobby

              --
              -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
              ### Henry L. Mencken ###
              -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
              ## Viktor Frankl ###
              ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
  2. Hallo,

    schaut im Grunde nicht schlecht aus. Hast du es mal ohne Ajax probiert?

    LOTO

  3. Hello,

    Scheinbar ist mein Post ja leider verschwunden; also, hier die JS und PHP nochmal

    Und könntest Du bitte auch erklären, was das JavaScript machen soll?
    Da ich jQuery nicht auswendig kenne, kann ich die Aufgabenstellung nur erraten im Moment.

    jQuery.ajax({
    type: "POST",
    url: "myFunctions.php?action=saveFile",
    data: "data=" + $('#myTextArea').html(),
    success: function(response){
    alert(response);
    }
    });

    und noch die PHP:

    <?php
    ini_set('display_errors', 1);
    ini_set('log_errors', 1);
    error_reporting(E_ALL);

    if($_GET['action'] == 'saveFile'){saveFile($dir);}

    function saveFile($dir){
    if(!$handle = fopen('/srv/myDir/myFile.txt', "w+")){
    print "Can't open file";
            exit;
    }

    Hier wäre nun noch ein Lock fällig für die Datei.

    if(!fwrite($handle, $_POST['data'])){
    print "Can't open file";

    Du setzt voraus, dass die Daten länger als 0 Bytes sind.
    Also entweder Bytes zählen und vergleichen, die geschrieben worden sind, oder aber auf FALSE mit einem Identitätsvergleich prüfen:

    If( FALSE === fwrite(...))

    Denn sonst ist das hier immer noch gelogen, denn geöffnet ist das File in diesem Moment hoffentlich.
    Das File ist jetzt aber nicht beschreibbar, aus welchem Grunde auch immer (z.B. getrennte Verbindung zum Fileserver).

    exit;
    }

    fclose($handle);

    }

    ?>

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  4. Hi,
    danke für euere Antworten.
    Also die AJAX wandelt mir nur meine eingabe in eine form um, die in etwa so aussieht:

    <form action="myFunctions.php?action=saveFile" target="_self" method="POST">
    <textarea name="data"></textarea>
    <input type="submit"></input>
    </form>