Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ostrzeżenie przed wejściem na stronę, O treściach dla osób 18+
Barrackin
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.11.2010

Ostrzeżenie: (0%)
-----


Witam. mam pewien problem.
Otóż potrzebuje na swojej stronie zamieścić ostrzeżenie, że treści na niej zawarte są wyłącznie dla pełnoletnich odbiorców.
Wydaje mi się, że najczęściej używanym rozwiązaniem jest skorzystanie z java scriptu.
No i mam taki kodzik:

CODE
<script LANGUAGE="javascript">

<!--

function Info()

{if (!confirm("Strona tylko dla osob 18 +!"))

history.go(-1);return " "}

document.writeln(Info())

<!--End-->

</script>



Z tym, że nie działa to dokładnie tak jak bym chciał.
Mianowicie wyświetla się przy każdym odświeżeniu i na każdej podstronie, a ma być zwyczajnie przy pierwszym wejściu.
Nie wiem, czy problem tkwi w źle napisanym kodzie, czy w złym go umiejscowieniu (mam na początku <body>, próbowałem również w <head>- to samo.
Wydaje mi się, że może gdzieś powinna być zapisywana informacja, ale jak to zrobić niestety nie wiem.
Bardzo proszę o pomoc, albo z kodem, albo o jakiś gotowiec. Byle by działało.
Pzdr
Go to the top of the page
+Quote Post
pl_morfeusz
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 1
Dołączył: 22.03.2010

Ostrzeżenie: (0%)
-----


Użyj ciasteczek
Go to the top of the page
+Quote Post
markonix
post
Post #3





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Cytat(Barrackin @ 17.11.2010, 22:55:52 ) *
Wydaje mi się, że najczęściej używanym rozwiązaniem jest skorzystanie z java scriptu.


Przy takich poważnych sprawach jak furtka należałoby skorzystać z PHP ponieważ JS jest często blokowany i Twoja strona będzie źle zabezpieczona (tu wchodzi chociażby kwestia prawna, osobiście nie akceptuje reklam stron +18, które nie mają furtki lub furtka jest właśnie w JS).

Potrzebujesz tylko gdzieś na początku skryptu odczytującego czy jest stworzone ciastko i przekierowanie za pomocą header.
Proponuje żywotność ciastka ustalać na sesje (aż do wyłączenia przeglądarki) bowiem z jednego komputera może korzystać kilka osób.
Go to the top of the page
+Quote Post
Barrackin
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.11.2010

Ostrzeżenie: (0%)
-----


Może ktoś byłby w stanie to napisac?
Dla wprawionego to pewnie 5 min pracy, dla laika dluuuuuga droga.
Patrzyłem co nieco na zapisywanie w cookies, ale wyglada co przynajmniej odstraszajaco;/

Edit:

Mam coś takiego:
Robię stronę check-it.php

CODE
<?
//Check user agent
$r_explorer = $_SERVER [ 'HTTP_USER_AGENT' ];
if ( ( substr_count ( $r_explorer , 'bot' )== 0 ) and ( substr_count ( $r_explorer , 'yahoo' )== 0 ) and ( $_COOKIE [ 'warning1' ]!= 21 ) ) {
include 'warning-page.php' ;
}
?>


W index.php strony, na której chce umieścić ostrzeżenie:

CODE
<? include 'check-it.php' ; ?>


Tworzę również warning-page.php
CODE
<?
//Lets Set the cookie
if ( $_GET [ 'myage' ]== "I-Am-Older-Than-18" ) {
$page1 = $_GET [ 'page1' ];
setcookie ( "warning1" , 21 , time ()+ 7200 );
header ( 'Location:' . urldecode ( $page1 )) or die( '<a href="' . urldecode ( $page1 ). '"></a>' );
}
?>
<!--Now the Html Part- Remove this line please-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ADULT CONTENT WARNING</title>
<link href="mystyle.css" rel="stylesheet" type="text/css">
</head>
<body>
<script LANGUAGE="javascript">

<!--

function Info()

{if (!confirm("Strona tylko dla osob 18 +!"))

history.go(-1);return " "}

document.writeln(Info())

<!--End-->

</script></body></html>


I po tym ostatnim zupełnie traci sens, tj nie zapamiętuje cookies.

W oryginale ta ostatnia część wygląda tak:
CODE
<?
//Lets Set the cookie
if ( $_GET [ 'myage' ]== "I-Am-Older-Than-18" ) {
$page1 = $_GET [ 'page1' ];
setcookie ( "warning1" , 21 , time ()+ 7200 );
header ( 'Location:' . urldecode ( $page1 )) or die( '<a href="' . urldecode ( $page1 ). '"></a>' );
}
?>
<!--Now the Html Part- Remove this line please-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ADULT CONTENT WARNING</title>
<link href="mystyle.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#000000" style="margin:0px;">
<table cellspacing="0" cellpadding="0" border="0" style="width:100%;height:100%;">
<tr>
<td align="center">
<p><b><font color="#FFFF66" face="Verdana, Arial, Helvetica, sans-serif" size="3">Adult Content Warning !
<br>
<img src="warning.png" width="240" height="80"> <br>
</font></b><br>
<h2>
<a href="warning-page.php?myage=I-Am-Older-Than-18&page1= <?=urlencode ( $_SERVER [ 'REQUEST_URI' ]) ?> "><font style="font-size:20px; font-family:'Verdana '; color:red"><b>Click Here if You are older than 18 Years Old</b></font><br>
</a><br>
<a href="http://www.someothersite.com">Click Here to Leave </a></p>
</td>
</tr>
</table></body></html>


z tym, że wtedy wyświetla mi się to na index.php,
nie odklikując nic można przeglądać zawartość.
Może teraz jakaś pomoc?

Ten post edytował Barrackin 18.11.2010, 18:11:40
Go to the top of the page
+Quote Post
markonix
post
Post #5





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Gdzieś na początku każdej podstrony serwisu wywołujesz lub includujesz funkcje, która działa w następujący sposób:

Sprawdzasz czy ciasteczko istnieje. Wystarczy do tego proste isset oraz odwołanie do tablicy $_COOKIE, czyli $_COOKIE['check'] np.
Jeśli istnieje to nic nie robisz.
Jeśli nie istnieje to dokonujesz przekierowania za pomocą header (dlatego skrypt koniecznie musi być wywołany przez wyświetlaniem strony) na stronę z informacją. Domyślam się, że są dwie opcje do wyboru. Jeśli ktoś jest niepełnoletni to nie wiem, przekierowanie na jakąś stronę czy brak akcji - Twoja sprawa.
Jeśli jest pełnoletni, czyli klika TAK i wysyła formularz. Odbierasz dane z formularza - ustawiasz ciasteczko za pomocą setcookie i robisz przekierowanie na stronę właściwą.
Go to the top of the page
+Quote Post
Barrackin
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.11.2010

Ostrzeżenie: (0%)
-----


Markonix, to może inaczej. Za ile byś to zrobił?
Go to the top of the page
+Quote Post
markonix
post
Post #7





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Pytania osobiste kierować najlepiej na PW i tam właśnie dostałeś odpowiedź.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 15:08