Keskustelut - PHP - Uudelleenohjaus php:llä


Waltman 15:38 26.4.05 
Miten saisi uudelleenohjauksen toteutettua sillain, että voisi määrittää tietyn ajan minkä kuluessa käyttäjä siirtyisi toiselle sivulle?
Kape 15:45 26.4.05 
En usko onnistuvan phpllä. Kuitenkin esim. metalla tämän ajan määrittämminen onnistuu.
qin 15:48 26.4.05 
kai ennen headerin lähettämistä voi jotain keinotekoista viiveen tynkää tehdä mutta eipä siitä juuri hyötyä ole kun mitään ei voida tulostaa ennen headereiden lähettämistä. ainoa järkevä ratkaisu lienee paljon (aiheesta) parjattu meta-refresh.
tino 15:51 26.4.05 
header( 'refresh: 5; url=http://www.osoite.fi' );
Tuossa tuo vitonen on siis sekuntimäärä mitä odotetaan. Ei mikään maailman paras ratkaisu kylläkään tehdä näin.
d0ggie 18:56 26.4.05 
tino kirjoitti:
header( 'refresh: 5; url=http://www.osoite.fi' );
Tuossa tuo vitonen on siis sekuntimäärä mitä odotetaan. Ei mikään maailman paras ratkaisu kylläkään tehdä näin.


Nyt ovat kyllä puurot ja vellit päässet sekoittumaan pahemman kerran, sillä noin sitä ei ainakaan tehdä. Käyttäjän voi ohjata uudelleen lähettämällä "Location" -headerin tai sijoittamalla HTML-tiedostoon seurauraavankaltaisen META-rimpsun: "<meta http-equiv="refresh" content="aika sekunteina;url=url">". Mikäli samaa sivua halutaan ladata uudelleen, voidaan edellisestä jättää url -parametri määrittelemättä.
T.M. 21:05 26.4.05 
Kyllä tuo header() refresh-systeemi toimii.
wwwapu 23:34 26.4.05 
Jeespoks todennäköisesti toimiikin, muunmuassa http://fi2.php.net/manual/en/function.header.php kommenttiosuudesta löytyy viitteitä siitä ja jos hakee W3C:ltä, niin löytyy tietoa myös, että defaultarvo voisi olla 5 sekuntia. Mutta mikä todella hauskaa, Refresh headerin kuvausta EI löydy HTTP stardardeista. Esim http://www.faqs.org/rfcs/rfc2616.html
editoitu: 07:16 27.4.05
tino 07:15 27.4.05 
Joo tuota ei ole RFC:ssä mutta se toimii kyllä ja on ihan yleisesti käytössä oleva tapa refreshiin. Mutta sinänsä samat ongelmathan siinä on kuin meta-refreshissäkin - kannattaa tarkkaan miettiä onko refreshille tarvetta vai voisiko asian hoitaa toisin.
uffis 08:34 27.4.05 
Miltä sivulta olet käyttäjää ohjaamassa? Mihin? Miksi pitää olla viive?

Yleensä käyttäjälle selkeämpi ratkaisu olisi tarjota linkki tyyliin "siirry eteenpäin", jossa em. linkin tekstin tilalla kerrottaisiin, mihin käyttäjää ollaan siirtämässä. Kyseessä voi olla vaikkapa palautteen lähettämisen jälkeinen kiitossivu, jolta käyttäjä halutaan viedä jollekin muulle sivulle.

En henkilökohtaisesti koskaan luottaisi meta-elementtiin, jonka tehtävä on refresh, koska siitä aiheutuu niin paljon ongelmia, jotka kannattaa välttää. Mainittakoon niistä sen verran, että käyttäjän kannalta selaimen Back-painikkeen tavallinen toiminta hajoaa ja se, ettei käyttäjä välttämättä ehdi nähdä palautetta, joka on hänelle tärkeä, esim. palautteen lähettämisen onnistumisesta kertova ilmoitus sivulla, jolta ohjataan eteenpäin.

Kannattaa ehdottomasti tutustua ongelmiin, niin ymmärtää, kuinka suuria ongelmia ne käyttäjälle oikeasti olevat. qin ja wwwapu jo vihjasivatkin lähteistä ja ongelmista.
Piipau 10:57 12.1.10 
Onko tällä tagilla mitenkään mahdollista ohjata iframesta pääsivulle?

"<meta http-equiv="refresh" content="aika sekunteina;url=url">"

Minulla on lomake iframella upotettuna html-sivulle ja myös kiitos-sivu latautuu iframeen. Miten saisin ohjattua tuolta iframessa olevalta kiitos-sivulta pääsivulle?
eis 11:32 12.1.10 
Ei sieltä ole tarkoitus ohjata pääsivulle, ei siis onnistu. Ps. Avaa mieluiten uusi thread kuin viisi vuotta vanha, jos ei nimenomaan ole siitä ongelmasta kyse mistä alunperin threadissa oli.