Wildcard HTTPS certifikát zdarma ku každej doméne
Zobrazují se odpovědi 1 až 9 z 9

POST na shared hostingu

  1. Zdravím všechny,
    dělal jsem web na localhostu a včera jsem ho nahrál na shared hosting...

    Jenže jsem zjistil, že nefungují formuláře, i přes to, že je vše nastavené správně a na localhostu vše funguje v pohodě... Po kliknutí na tlačítko to jakoby jen refreshne stránku, nic víc se nestane...

    Dříve jsem měl podobný problém i na endoře, že vše fungovalo, ale po aktualizaci na nejnovější verzi laravelu formuláře prostě přestaly fungovat, předtím jsem to vyřešil nahráním starší verze, teď ale potřebuji mít nejnovější verzi...

    Kód mám udělaný následovně:

    Form
    Kód:
    {{ Form::open(array('url' => 'vek-overeni')) }}
    
    <button class="btn btn-primary" type="submit" name="souhlas" value="1">Souhlasím</button>
    <button class="btn btn-secondary" type="submit" name="souhlas" value="0">Nesouhlasím</button>
    
    {{ Form::close() }}
    Router
    Kód:
    Route::post('vek-overeni', ['uses' => 'WebController@postOvereniVeku']);
    Controller
    Kód:
    public function postOvereniVeku(Request $request)
        {
            if($request->has("souhlas")){
                if($request->post("souhlas") == 1){
                    session(['vek' => 1]);
    
                    return Redirect::to('/');
                }
            }
        }
    Dokonce jsem zkoušel dát do controlleru jen
    Kód:
    return "test";
    ale ani to na shared hostingu nefunguje.

    Stal se podobný problém už někomu z Vás? Případně jak jste to vyřešili?

    Předem děkuji za odpověď.
    Kudris

  2. Co se právě děje na Webtrhu?
    JiriKay poptává: Tvorba custom RSS feedu pro Wordpress web
    Renata Müllerová poptává: PHP projekt s podílem na zisku
    Radim Krpata poptává: Hledáme šikovného frontend programátora
  3. Předpokládám, že na hostingu je správná verze PHP?
    Kde ve formuláři máte nadefinované, že se to má posílat POST a ne GET? Pokud už to neřeší fasáda FORM, nepoužívám, tak nevím, ale pokud máte url vek-overeni jak pro GET i POST, tak to může zlobit a pak by ten projev chyby dával smysl.

  4. Ano, na hostingu mám nastavenou správnou verzi... Právě, že to už řeší FORM, když si zobrazím zdrojový kód stránky, tak je u formuláře normálně
    Kód:
    method="POST"
    ... Ani, když jsem změnil url tak, aby nebyly pro GET i POST stejné, tak to nejde...

  5. co htaccess a další drobnosti? Koukal jsi do developer tools v peohlížeči? Co se vrátí ze serveru?

    Není důvod, aby to nefungovalo, POST je běžná věc a web se bez ní neobejde, hostingy to nezakazují, nemají k tomu důvod. Hledej problém v kódu

  6. Htacess jsem nastavoval podle návodů na internetu...

    Kód:
    RewriteEngine On
      RewriteRule ^(.*)$ public/$1 [L]
    a ten v public složce:
    Kód:
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ /index.php [L]
    Koukal jsem na to a POST požadavek se vůbec neposílá. Podle developer tools to jen přenačte stránku, stejně tak když dám přímo v routeru
    Kód:
    use \Illuminate\Http\Request;
    echo request()->getMethod();
    tak to vždy píše GET

    i přes to, že form vypadá v prohlížeči následovně:
    Kód:
    <form method="POST" action="/vek-overeni" accept-charset="UTF-8">
    <input name="_token" type="hidden" value="Vby0jbkuNpilPyI2L6L6c5xaxeMzKnNQsC0K1kZa">
                                    
    <button class="btn btn-primary" type="submit" name="souhlas" value="1">Souhlasím</button>
    <button class="btn btn-secondary" type="submit" name="souhlas" value="0">Nesouhlasím</button>
    </form>

  7. za posílání POSTu je zodpovědný prohlížeč, pokud nic nepošle, je něco špatně v html formuláři, spíše si ale myslím, že stránka rovnou přesměruje na další stránku a i to co se ti zobrazí je vlastně již z další stránky a nikoliv z té, kam přišly data z formuláře. V developer tool můžeš nastavit, aby se okno nemazalo při přesměrování na dalších stránku (persist či preserve podle prohlížeče).

    Je ten web někde veřejně?

  8. Je to tak, hodilo to 301 chybu (moved permanently) a pak se to vrátilo zpátky...

    Kód:
    Request URL: /vek-overeni
    Request Method: POST
    Status Code: 301 Moved Permanently
    Remote Address: 178.238.41.76:80
    Jenže v kódu jsem chybu nenašel...

    Web je veřejný, ale asi není vhodné ho sem kvůli obsahu dávat...

  9. přesměrovává ti to htaccess, máš tam pravidlo, že pokud url nekončí lomítkem, přesměruje jí to na url s lomítkem a ve formuláři máš v action url bez lomítka.

    Kód:
    RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
    Buď to pravidlo dočasně odstraň nebo nad ten řádek přidej (psáno z hlavy)

    Kód:
    RewriteCond %{REQUEST_METHOD} !=POST
    tj. měl bys tam mít asi tohle

    Kód:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ /index.php [L]
    osobně mi to připadá takové chaotické a nejspíš máš nevhodný návrh url v aplikaci a tohle je jen taková záplata.

  10. Super, už to funguje, díky moc....

    Bohužel u hostingu, který mám nejde změnit root folder až na public složku jak to mám na localhostu, takže jsem to řešil podle oficiálního návodu, který mají na stránkách, nevím jak to udělat jinak, aby to nebylo ,,chaotické"...

Hostujeme u Server powered by TELE3