Info o ciastkach

Eeee...
Żeby strona działała fajnie to trzeba zaakceptować obsługę pewnych plików. Jeśli jesteś nienormalny, nosisz czapkę z amelinium i siedzisz w schronie zbudowanym z poduszek to możesz je sobie wyłączyć. Autor strony nie czerpie żadnych korzyści z cookies (twierdzi nawet, że ten komunikat jest głupi), ale, cóż - Unia wymaga. Korzystając z witryny zgadzasz się z polityką cookies.

Wszystko w budowie...

Home.pl i ich problemy ze światem

Perypetii migracji na home.pl ciąg dalszy. Dwa tygodnie to stosunkowo za mało by cokolwiek zbadać. I jak to zwykle bywa większość wychodzi po tym okresie. Pan z home.pl który miał zbadać dlaczego mój skrypt nie działa nie odzywa się od kilku dni. Cóż, i tak go będę męczył ale najpierw zbuduję sobie materiał dowodowy. Co niniejszym czynię.

Druga rzecz - s2s. Są problemy z działaniem tego programu na home.pl. Całość ociera się o magię a twórca s2s mówi, że klienci narzekają na home.pl i sam twierdzi, że jest problem z tym hostingiem. OK, w związku z tym dlaczego nie ma informacji na stronie programu. Ba, mało tego, dlaczego nie drąży tematu, wszak programista. Niech się zejdą zainteresowane strony, strzelą partyjkę chińczyka i dojdą do wspólnego rozwiązania. Jak dzwonię do home.pl to jedyne co słyszę "tutaj działa", choć przy tym skrypcie to faktycznie było "no, nie działa".

Gmerałem dziś nad problemem i doszedłem do wniosku, że to będzie wina z przesyłaniem danych metodą POST. Spójrzmy najpierw na konfigurację serwera w home.pl

post_max_size = 64M
max_input_time = -1
max_input_vars = 1000
mamory_limit = 512M

Czyli luzik, a co ja mam na localhost

post_max_size = 8M
max_input_time = 60
max_input_vars = 1000
mamory_limit = 128M

Czyli bida. Ale bida działa. A jak jest na 1and1 (tam też działa)

post_max_size = 64M
max_input_time = -1
max_input_vars = 5000
mamory_limit = 256M

Czyli też gorzej niż na home.pl oprócz liczby przesyłanych inputów. Skonstruowałem więc pewien skrypcik uruchamiany na serwerze. A wygląda on tak



<!doctype html>
<html lang="pl">
<head>
    <meta charset="utf-8">
    <title>Test POST</title>
</head>
<body>
<?php
    echo "Content length = ".$_SERVER["CONTENT_LENGTH"]."<br>";

    if($_POST["login"]==="login" && $_POST["pass"]==="password"){

        if(count($_POST)>0){
            print_r($_POST);
        }else{
            echo "Tablica POST jest pusta";
        }

    }else{
        echo "Zły login lub hasło";
    }
?>
</body>
</html>

Skrypt ma wypisać tablicę dostarczoną z localhosta metodą POST. Skrypt na localhost wygląda tak



<?php
$ilosc=1000;
$form="http://link_do_pierwszego_skryptu";
?>
<!doctype html>
<html lang="pl">
<head>
    <meta charset="utf-8">
    <title>POST SEND</title>
</head>
<body>
<?php
    echo "Zapytanie wysłano do ".htmlentities($form)."<br><br>";
?>
<form method="post" action="<?php echo $form;?>">
    <input type="submit"><br>
    
    <input type="text" name="login" value="login"><br>
    <input type="password" name="pass" value="password">

    <?php

        for($i=0;$i<$ilosc;$i++){
            $random="123456789012345678901234567890";
            echo "<input type='text' value='".$random."' name='val".$i."'>";
        }

    ?>

</form>
 
</body>
</html>

Według specyfikacji serwerów 1000 inputów powinno przejść bez problemu. Dla localhost i 1and1 faktycznie przechodzą. Dla home.pl przechodzą gdy CONTENT_LENGTH to max ok 16000 - 17000 znaków. Wyjaśnijmy, że CONTENT_LENGTH oznacza ilość znaków przesyłanych metodą POST gdyby ta przerobić do metody GET, czyli taki POST

(
    login => login
    pass  => password
    val0  => 123456789012345678901234567890
)

po przełożeniu na GET wyglądałby tak (i wartość CONTENT_LENGTH oznaczałaby liczbę znaków)

login=login&pass=password&val0=123456789012345678901234567890

Weźmy przykład dla ilości 1000 inputów CONTENT_LENGTH to 37915 znaków === bajtów co daje ok 37KB co przy max_size = 64M jest wartością śmieszną. Czemu więc to nie działa. Cholera wie.

Jako, że nikomu nie chce się zagadki rozwiązać chyba ja to zrobię. Muszę jeszcze napisać jakieś zastępcze webAPI dla s2s i wtedy będziem eksperymentami napierdzielać. Dla jasności home.pl wysiadło chyba przy wartości ilosc = 400. Co ma się nijak co do deklaracji. Ba nawet modyfikacja php.ini zmieniała jedynie numerek w phpinfo() a skrypt i tak padał.

Komentarze (0)

Nikt jeszcze nie dodał komentarza. Możesz być pierwszy.

Napisz komentarz lub zgłoś błąd

Dodane w dniu 25 września 2017 przez Michał Misztal
Kopiowanie powyższych wypocin dozwolone pod warunkiem podania źródła, znaczy tandemu autor + link do strony