Jump to content
php.lv forumi

Refresh dažādos pārlūkos


Odze

Recommended Posts

Ideja tāda - ir uztaisīts forums un, lai uz refresh nepievienotos komentārs tiek lietots print("<meta http-equiv=\"refresh\" content=\"0; url=index.php?pg=4&uz=$uz\">"), bet problēma ir tāda, ka ar Internet Explorer viss strādā pareizi un komentārs uz refresh nepievienojas, bet ar Mozillu komenets arī uz refresh pievienojas. Varbūt kāds ir saskāries ar līdzīgu problēmu un var palīdzēt???

Link to comment
Share on other sites

Piezīme: header() funkcijai ir jāizpildās pirms izvada, resp. posts jāapstrādā kaut kur skripta pašā augšgalā, visādam gadījumam labāk izmantot visus trīs redirekta variantus - meta refersh, <script>location.href=</script> un header() kombināciju (ja viens neaiziet, nostrādās cits).

 

Un, lūdzū-lūdzu

 

print("<meta http-equiv=\"refresh\" content=\"0; url=index.php?pg=4&uz=$uz\">")

 

vietā rakstīt

 

echo '<meta http-equiv="refresh" content="0; url=index.php?pg=4&uz='.$uz.'">';

 

1) printam ir savas īpatnības (un saka ka lēnāks esot)

2) print un echo nav funkcijas, bet valodas kontrukcijas, tāpēc nav obligāti jāraksta iekavas - echo('text') vietā var rakstīt echo 'text'

3) viss, kas ir starp "" tiek izmeklēts uz mainīgiem, resp ja tev teksts ir "garšagarš...$mainīgais...garšgaršgarš..." tā iekšējā apstrāde pirms izvades aizņems daudz ilgāk, nekā 'garšagarš...'.$mainigais.'...garšgaršgarš...' (tieši tā - savienojot ar punktiņu, nevis +, kā citās valodās) un arī rakstot '$mainigais' izvadīsies viss tieši tā, ar dolāra zīmīti.

4) izmantotjot 3. variantu dauz vieglāk rakstīt HTML (alternēt iekaviņas un apostrofus), jo nav jāliek tas escape slash \ priekšā.

5) 3. punkta nosacījumi neattiecas uz SQL komandu pierakstu, jo tur', petēji (X)HTML vērtības nododamas iekš apostrofiem ("UPDATE $tblMain SET `kolonna`='vērtība' WHERE `id`='".$id."' LIMIT 1")

Link to comment
Share on other sites

Piezīme: header() funkcijai ir jāizpildās pirms izvada, resp. posts jāapstrādā kaut kur skripta pašā augšgalā, visādam gadījumam labāk izmantot visus trīs redirekta variantus - meta refersh, <script>location.href=</script> un header() kombināciju (ja viens neaiziet, nostrādās cits).

Nu reizeem ja ir gruuti izdaraams .. piemeeram kaads IF nosaciijums vai cikls lapai pa vidu un ir saape pacelt vinju pirms visa satura izvades var izmantot arii

 

Output Control Functions http://lv.php.net/manual/en/ref.outcontrol.php

 

Piemeeram:

<?
ob_start();
echo "Lala";
header("Location: blabla.php");
ob_end_flush();
?>

 

Shim piemeeram gan nav jeegas jo redirekts notiks vienmeer (kaa jau teicu tas noder pie nosaciijumiem) tachu skripts izpildiisies bez kljuudu pazinjojumiem un korekti :)

Link to comment
Share on other sites

izmantojot header() man rāda ša'du paziņojumu:

Warning: Cannot add header information - headers already sent by (output started at C:\HTTPD\HTDOCS\Izm2\uz.php:11) in C:\HTTPD\HTDOCS\Izm2\uz.php on line 25

Es lieku to header kaut vai pašā lapas sākumā kad vēl nekādi mainīgie nav padoti, bet vienalga ir šads paziņojums, kas varētu būt par problēmu?

Link to comment
Share on other sites

pirms tam ir kaut kāds HTML teksts

 

----------

<html><body>

<?php

 

header('location: gotohell.php');

?>

-----------

 

arī neies, jo vēl pirms PHP koda ir HTML kods.

 

šāda kļūda gadās arī, ja pirms PHP koda sākuma ir kaut vai viena atstarpe.

Link to comment
Share on other sites

Nu labi bet nejau vienmēr var panākt, ka nav nekāds kods pirms header().

Kā tad lai es pēc datu pievienošanas tbulā noredirektēju savu lapu ar header()???

Mans posts tieshaam nav redzams? :)

http://php.lv/f/index.php?showtopic=1262&v...findpost&p=7950

 

t.i.

 

<?
ob_start();
?>
<html><head> ....

<?  
header("Location: blabla.php");
ob_end_flush();
?>

Link to comment
Share on other sites

×
×
  • Create New...