Skocz do zawartości
rogi

popup z jquery

Rekomendowane odpowiedzi

Witajcie.

 

Mam taki problem:

 

na jednym blogu podstawionym na wordpress wklejam do nagłówka (head.php)

między liniki <link media...

 

kod:

 

<link media="screen" rel="stylesheet" type="text/css" href="st.css" /><script type="text/javascript" src="jquery.js"></script><script type="text/javascript"><? if(empty($_COOKIE['zablokuj'])){ ?>$(window).load(function() {$.prompt('abcdefghijk',{ overlayspeed: 2 });});<? setcookie("zablokuj", 1, time()+(60*60*1)); } ?></script>

na blogu X popup działa tylko na stronie głównej, na blogu Y nie działa wcale

 

gdy wkleję zamiast powyższego kodu ten (bez ciasteczek):

 

<link media="screen" rel="stylesheet" type="text/css" href="st.css" /><script type="text/javascript" src="jquery.js"></script><script type="text/javascript">$(window).load(function() {$.prompt('abcdefghijk',{ overlayspeed: 2 });});</script>

to na blogu X nadal działa tylko na głównej, a na blogu Y działa na każdej podstronie

 

Dlaczego tak się dzieję?

 

Chcę, aby na blogu X i Y, popup otwierał się na każdej podstronie i zapisywał ciasteczko,

tzn. nie otworzy się drugi raz.

 

Bardzo proszę o pomoc.

Pozdrawiam :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

1. Nie wiem, jaką wersję WP masz, ale pobrałem specjalnie wersję 2.9.x i nie widzę tam takiego pliku.

2. Daj linki do blogów, bo jakoś tego nie widzę w opisany przez Ciebie sposób.

3. Weź pod uwagę, że jeśli blogi są w tej samej domenie, to po otwarciu pierwszego bloga musisz wyczyścić ciastka, aby skrypt ruszył na drugiej stronie. Podobnie gdy chcesz sprawdzić, czy działa na podstronach.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Blogi są na innym domenach.

Mam najnowszą wersję wodpressa,

pliki st.css i jquery.js są osobno dograne

w katalogu skórki i w głównym bloga.

Dziwne jest to, że ten sam kod umieszczony w tym

samym miejscu i różnie się zachowuje.

 

 

zajrzałem w źródło strony w przeglądarce

i zamiast kodu, które wstawiałem jest:

 

<link media="screen" rel="stylesheet" type="text/css" href="http://mojastrona.pl/wp-content/themes/colorvoid/st.css" /><script type="text/javascript" src="http://mojastrona.pl/wp-content/themes/colorvoid/jquery.js"></script><script type="text/javascript">$(window).load(function() {$.prompt('abcdefghijk',{ overlayspeed: 2 });});<br /><b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/user/domains/mojastrona.pl/public_html/wp-content/themes/colorvoid/index.php:4) in <b>/home/user/domains/mojastrona.pl/public_html/wp-content/themes/colorvoid/header.php</b> on line <b>20</b><br /></script>
Edytowane przez rogi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

1. Kodu PHP nie zobaczysz w przeglądarce - jest wykonywany po stronie serwera.

2. Ustawianie ciastka należy wykonać zanim wyślesz cokolwiek do przeglądarki, a więc przed: <doctype

3. Zrób tak:

 

Sprawdź, czy ciastko jest (zapisując wynik w zmiennej), a potem je ustaw - wszystko przed <doctype

<?php if(empty($_COOKIE['zablokuj'])) {$zablokuj = 'n';setcookie("zablokuj", 1, time()+(60*60*1)); } ?>

Następnie wyświetl komunikat, jeśli trzeba:

<?php if ($zablokuj=='n') { ?><script type="text/javascript">$(window).load(function() {$.prompt('abcdefghijk',{ overlayspeed: 2 });});</script><?php } ?>

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zapisuje bez BOOM, wstawiłem tak, jak piszesz, dalej nie działa.

Dziwne to, na drugim blogu wszystko działa, tylko znów tam pojawia się popup

tylko na stronie głównej.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie chciałbym podawać linków do bloga, może bez tego się obejdzie.

 

Kod pliku header.php z edytora wordpressa:

 

<?php if(empty($_COOKIE['zablokuj'])) {$zablokuj = 'n';setcookie("zablokuj", 1, time()+(60*60*1)); } ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" /><title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> » Archiwum bloga <?php } ?><?php wp_title(); ?></title><link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" /><link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" /><link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /><?php if ($zablokuj=='n') { ?><script type="text/javascript">$(window).load(function() {$.prompt('abcdefghijk',{ overlayspeed: 2 });});</script><?php } ?></head><body><div id="layout_wrapper"><div id="layout_edgetop"></div><div id="layout_container">	<div id="site_title">		<h1 class="left"><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>		<h2 class="right"><?php bloginfo('description'); ?></h2>		<div class="clearer"> </div>	</div>	<div id="top_separator"></div>	<div id="navigation">		<div id="tabs">						<ul><?php if ( is_home() ) : ?>				<li class="current_page_item"><a href="<?php echo get_option('home'); ?>/"><span>Strona główna</span></a></li><?php else : ?>				<li><a href="<?php echo get_option('home'); ?>/"><span>Strona główna</span></a></li><?php endif;?>				<?php cdt_list_pages('depth=1&title_li=') ?>			</ul>			<div class="clearer"> </div>		</div>	</div>	<div class="spacer h5"></div>	<div id="main">		<div class="left" id="main_left">			<div id="main_left_content"><?php ob_end_flush(); ?>

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Teraz już popup się pojawia, ale zachowuje się dziwnie.

 

Po wyczyszczeniu ciasteczek, wchodzę na stronę główną, pojawia się popup,

gdy odświeżam znów się pojawia, dopiero, gdy kliknę w inny link na blogu, wtedy się pojawia ostatni raz.

 

Nadal pojawia się błąd Warning: Cannot modify header information - headers already sent by... - tylko na stronie głównej.

 

Kod nagłówka:

 

<?php if(empty($_COOKIE['zablokuj'])) {$zablokuj = 'n';setcookie("zablokuj", 1, time()+(60*60*1)); }?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" /><title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> » Archiwum bloga <?php } ?><?php wp_title(); ?></title><link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" /><link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" /><link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /><link media="screen" rel="stylesheet" type="text/css" href="st.css" /><script type="text/javascript" src="http://mojastrona.pl/wp-content/themes/colorvoid/jquery.js"></script><?php if ($zablokuj=='n') { ?><script type="text/javascript">$(window).load(function() {$.prompt('abcdefghijk',{ overlayspeed: 2 });});</script><?php } ?></head><body><div id="layout_wrapper"><div id="layout_edgetop"></div><div id="layout_container">	<div id="site_title">		<h1 class="left"><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>		<h2 class="right"><?php bloginfo('description'); ?></h2>		<div class="clearer"> </div>	</div>	<div id="top_separator"></div>	<div id="navigation">		<div id="tabs">						<ul><?php if ( is_home() ) : ?>				<li class="current_page_item"><a href="<?php echo get_option('home'); ?>/"><span>Strona główna</span></a></li><?php else : ?>				<li><a href="<?php echo get_option('home'); ?>/"><span>Strona główna</span></a></li><?php endif;?>				<?php cdt_list_pages('depth=1&title_li=') ?>			</ul>			<div class="clearer"> </div>		</div>	</div>	<div class="spacer h5"></div>	<div id="main">		<div class="left" id="main_left">			<div id="main_left_content">
Edytowane przez rogi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...