Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:5.10.2016 20:52

ahoj, rad by som vedel ake status kody kedy pouzit pri presmerovani napriklad v tychto pripadoch:
1.) ked 2 url adresi ukazuju na ten isty obsah je to 301?
2.) ked sa nenajde napriklad ID produktu v databaze 302 redirect na 404 error page?
3.) ked sa nieco pokazi (napr pri ukladani do databazi aky status kdo pouzit na redirect po neuspesne prebehnutej akcii?
4.) ked akcia prebehne tak ako má (napr vsetko sa ulozi a potom redirect na index) aky kod pouzit?

 
Odpovědět 5.10.2016 20:52
Avatar
Pavol Hejný
Autoredaktor
Avatar
Odpovídá na DREAMDEV
Pavol Hejný:10.10.2016 22:08
  1. Ano 301

V dalších případech je spíše lepší žádný redirect nepoužívat, ale rovnou odpovědět příslušným kódem:

  1. Nejlepší je rovnou odpovědět stránkou 404
  2. Pokud se něco pokazí na serveru odpovídá se kódem 500
  3. Pokud je vše OK použít stránku s kódem 200 (ten je defaultní)
Nahoru Odpovědět  +4 10.10.2016 22:08
http://pavolhejny.cz/
Avatar
Pavol Hejný
Autoredaktor
Avatar
Odpovídá na DREAMDEV
Pavol Hejný:12.10.2016 15:44

Btw. ještě u těch chyb je důležité rozlišovat chybu uživatele - to jsou kódy 4XX (např. 404 - to co se ptá neexistuje nebo 403 to co se ptá nemá přístup.) A kódy 5XX - něco se po na serveru.

Nahoru Odpovědět  +2 12.10.2016 15:44
http://pavolhejny.cz/
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:12.10.2016 21:06

OK tak dajme tomu ze nastane takato situacia:
Uzivatel odosle formular. Formular sa spracuje a potom chcem zobraziť index. V MVC to asi inak ako redirectom nepôjde takze aky kod pouzit na toto presmerovanie? 302?

 
Nahoru Odpovědět 12.10.2016 21:06
Avatar
Petr Linhart
Člen
Avatar
Odpovídá na DREAMDEV
Petr Linhart:13.10.2016 18:23

MVC je návrhový vzor a nemá nic společného s přesměrováním.
PHP na to má funkci header(), která se zavolá po zpracování formuláře

<?php
/**
* Tady se zpracuje formulář
*/
header('Location: http://www.neco.cz');

případně s HTTP status kódem

<?php
/**
* Tady se zpracuje formulář
*/
header('Location: http://www.neco.cz', TRUE, 302);

Ohledně vhodného kódu, tak po formuláři je to asi 302 nebo 303, pokud přesměrováváš z důvodu přesunu obsahu na jinou adresu pak asi 307.

 
Nahoru Odpovědět  +1 13.10.2016 18:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.