Toon posts:

Redirect als cookies geblokkeerd worden?

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een site met een resolutie detectie animatie in flash gemaakt.
Het is de bedoeling dat die "intro" slechts eenmaal getoond wordt, waarna er een cookies geplaatst wordt, zodat men bij een volgend bezoek direct naar de juiste pagina doorgestuurd wordt.
Werkt allemaal perfect op 1 klein probleempje na; de mensen/browsers die cookies niet accepteren komen dus nergens.

Is er een scriptje of iets dergelijks dat de mensen met uitgeschakelde cookies redirect naar een pagina waar ze zelf bijvoorbeeld zelf hun resolutie kunnen kiezen?

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
Dan is het toch hun eigen keuze om de intro weer opnieuw te gaan kijken?
Anders moeten ze hun cookies maar aan doen..

Maar goed, als alternatief kan je wel de ip-adressen via php in een database of zoiets gooien en dan checken bij aankomst.
Ik zou het je alleen niet aanraden want het kost je databeest zeker de nodige load, zeker als je veel bezoekers hebt.

www.dannyhiemstra.nl


Verwijderd

Topicstarter
chuxiej schreef op zondag 16 januari 2005 @ 17:18:
Dan is het toch hun eigen keuze om de intro weer opnieuw te gaan kijken?
Anders moeten ze hun cookies maar aan doen..
Naja, het probleem is dus dat de cookiecheck al vóór de intro gedaan wordt, dus dat de cookie check in een soort loop blijft hangen.

  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

chuxiej schreef op zondag 16 januari 2005 @ 17:18:
Dan is het toch hun eigen keuze om de intro weer opnieuw te gaan kijken?
Imo is het de verantwoordelijkheid van de devver dat een site, of iig de basis ervan, werkt, ook zonder "extra" zaken zoals cookies, javascript, etcetera.

Je zou eventueel elke keer dat je naar een volgende pagina via bijvoorbeeld de url een variabele meegeven die stelt dat de intro niet getoond moet worden. Of bijvoorbeeld eerst een cookie trachten te zetten, en als je de waarde niet kan uitlezen, en er dus geen cookie is, de intro zoiezo niet laten zien. Je kan dan eventueel nog linken naar de intro :) .

DM!


  • Freee!!
  • Registratie: December 2002
  • Laatst online: 11:14

Freee!!

Trotse papa van Toon en Len!

Verwijderd schreef op zondag 16 januari 2005 @ 17:29:
[...]
Naja, het probleem is dus dat de cookiecheck al vóór de intro gedaan wordt, dus dat de cookie check in een soort loop blijft hangen.
Slecht gecodeerd dus. Die cookie-check zou nooit in een loop terecht mogen komen.

The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long

GoT voor Behoud der Nederlandschen Taal [GvBdNT


  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
Verwijderd schreef op zondag 16 januari 2005 @ 17:29:
[...]


Naja, het probleem is dus dat de cookiecheck al vóór de intro gedaan wordt, dus dat de cookie check in een soort loop blijft hangen.
Maar als de cookie niet bestaat gaat die toch gewoon naar de intro en blijft die niet in een loop hangen ? :|

En in de post van JHS is ook een leuke oplossing :)

[ Voor 6% gewijzigd door chuxiej op 16-01-2005 17:37 ]

www.dannyhiemstra.nl


Verwijderd

Topicstarter
chuxiej schreef op zondag 16 januari 2005 @ 17:37:
[...]


Maar als de cookie niet bestaat gaat die toch gewoon naar de intro en blijft die niet in een loop hangen ? :|

En in de post van JHS is ook een leuke oplossing :)
Voor het geval het nog niet duidelijk is, ik ben geen expert scripter :Y).

M'n code bestaat voornamelijk uit andere codes die enigszins aangepast zijn, in dit geval dus:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
if(isset($HTTP_COOKIE_VARS["users_resolution"]))
    $screen_res = $HTTP_COOKIE_VARS["users_resolution"];
else //means cookie is not found set it using Javascript
{
?>
<script language="javascript">
<!--
writeCookie();

function writeCookie() 
{
 var today = new Date();
 var the_date = new Date("December 31, 2023");
 var the_cookie_date = the_date.toGMTString();
 var the_cookie = "users_resolution="+ screen.width +"x"+ screen.height;
 var the_cookie = the_cookie + ";expires=" + the_cookie_date;
 document.cookie=the_cookie
     
 location = 'get_resolution.php';
}
//-->
</script>


Enig idee waar het fout gaat?

[ Voor 9% gewijzigd door Verwijderd op 16-01-2005 18:50 ]


  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

Dit zal het probleem niet oplossen, maar gebruik
PHP:
1
$_COOKIE['user_resolution'] //$HTTP_* is oud!

Waarom?

ASCII stupid question, get a stupid ANSI!


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Verwijderd schreef op zondag 16 januari 2005 @ 18:50:
code:
1
2
3
4
5
6
<?
if(isset($HTTP_COOKIE_VARS["users_resolution"]))
    $screen_res = $HTTP_COOKIE_VARS["users_resolution"];
else //means cookie is not found set it using Javascript
{
?>
Je zou iig je else statement is kunnen afsluiten met <? } ?> :) .

DM!


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op zondag 16 januari 2005 @ 18:50:
[...]


Voor het geval het nog niet duidelijk is, ik ben geen expert scripter :Y).

M'n code bestaat voornamelijk uit andere codes die enigszins aangepast zijn, in dit geval dus:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
if(isset($HTTP_COOKIE_VARS["users_resolution"]))
    $screen_res = $HTTP_COOKIE_VARS["users_resolution"];
else //means cookie is not found set it using Javascript
{
?>
<script language="javascript">
<!--
writeCookie();

function writeCookie() 
{
 var today = new Date();
 var the_date = new Date("December 31, 2023");
 var the_cookie_date = the_date.toGMTString();
 var the_cookie = "users_resolution="+ screen.width +"x"+ screen.height;
 var the_cookie = the_cookie + ";expires=" + the_cookie_date;
 document.cookie=the_cookie
     
 location = 'get_resolution.php';
}
//-->
</script>


Enig idee waar het fout gaat?
kan je het niet zo doen?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
if(isset($_COOKIE["users_resolution"]) || ( isset($_GET['x']) && isset($_GET['y']))  )
    $screen_res = isset($_COOKIE["users_resolution"])?$_COOKIE["users_resolution"]:$_GET['x']."x".$_GET['y'] ;
else //means cookie is not found set it using Javascript
{
?>
<script language="javascript">
<!--
writeCookie();

function writeCookie() 
{
 var today = new Date();
 var the_date = new Date("December 31, 2023");
 var the_cookie_date = the_date.toGMTString();
 var the_cookie = "users_resolution="+ screen.width +"x"+ screen.height;
 var the_cookie = the_cookie + ";expires=" + the_cookie_date;
 document.cookie=the_cookie
     
 location = 'get_resolution.php?x=' + screen.width + '&amp;y=" +screen.height ;
}
//-->
</script>

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
Misschien een hele domme vraag hoor, maar is er niet een script zoals:

if nocookiesaccepted {
bladiebla
}

of iets dergelijks?

Dus gewoon een standaardcommando waarmee aangegeven kan worden wat er moet gebeuren als een browser geen cookies accepteert.

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 21:13

BCC

Als je toch PHP hebt, kun je dan niet beter de cookie via PHP setten? Of nog beter: een session starten? Lucar's D's oplossing is netjes, maar waarom zou je nog een cookie gebruiken?

[ Voor 131% gewijzigd door BCC op 17-01-2005 01:14 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Verwijderd

Topicstarter
BCC schreef op maandag 17 januari 2005 @ 01:04:
Als je toch PHP hebt, kun je dan niet beter de cookie via PHP setten? Of nog beter: een session starten? Lucar's D's oplossing is netjes, maar waarom zou je nog een cookie gebruiken?
Iets meer uitleg zou gewenst zijn aangezien ik me nu voor het eerst met php bezig houd ;(.

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 21:13

BCC

Uit de losse pols:

index.php:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script language="javascript">
<!--
getScreenRes();

function getScreenRes(() 
{     
 location = 'index2.php?x=' + screen.width + '&amp;y=' + screen.height;
}
//-->
</script>
<a href='showintro800.html'>Intro op 800x600</a><br/>
<a href='showintro1024.html'>Intro op 1024x768</a><br/>
<br/>
<a href='main.php'>Geen intro</a><br/>


index2.php
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$expireTime = 60*60*24*365; //Jaar geldig
session_set_cookie_params($expireTime);
session_start();

if (!isset($_SESSION["seenintro"]))
{
  $_SESSION["seenintro"]="1";
  header("Location: /showintro<?$GET_["x"]?>.html");
  exit();
}
else
header("Location: /main.php");
?>


Ik heb eigenlijk een grondige hekel aan intro's maar dit is redelijk netjes denk ik..

[ Voor 83% gewijzigd door BCC op 17-01-2005 01:36 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Verwijderd

Topicstarter
Kan zoiets als dit niet?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
   <script type="text/javascript">
   function cookiesEnabled() {
    var enabled = false;

    //if not (IE4+ or NS6+), then check different way:
    if (typeof window.navigator.cookieEnabled == "undefined") {
        document.cookie = "testcookie=val";
        enabled = (document.cookie.indexOf("testcookie=") != -1);
    } else {
        enabled = window.navigator.cookieEnabled;
    }

    if (enabled)
<script language="javascript">
<!--
writeCookie();

function writeCookie() 
{
 var today = new Date();
 var the_date = new Date("December 31, 2023");
 var the_cookie_date = the_date.toGMTString();
 var the_cookie = "users_resolution="+ screen.width +"x"+ screen.height;
 var the_cookie = the_cookie + ";expires=" + the_cookie_date;
 document.cookie=the_cookie
     
 location = 'get_resolution.php';
}
//-->
    else
        document.writeln("Cookies disabled");

    document.close();
   }
</script>


Oftewel, m'n oude script gecombineerd met:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
   <script type="text/javascript">
   function cookiesEnabled() {
    var enabled = false;

    //if not (IE4+ or NS6+), then check different way:
    if (typeof window.navigator.cookieEnabled == "undefined") {
        document.cookie = "testcookie=val";
        enabled = (document.cookie.indexOf("testcookie=") != -1);
    } else {
        enabled = window.navigator.cookieEnabled;
    }

    if (enabled)
        document.writeln("Cookies enabled");
    else
        document.writeln("Cookies disabled");

    document.close();
   }
   </script>
</html>


Het werkt echter niet zo ;(.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14:22

Creepy

Tactical Espionage Splatterer

"het werkt niet"

Wat werkt er niet? Gaat er iets mis? Krijg je een foutmelding?

Het lijkt erop dat we je aan de hand moeten houden met het ontwikkelen van PHP en Javascript. Er zijn ladingen tutorials te vinden waar in PHP het gebruik van cookies en/of sessies wordt uitgelegd. Hetzelfde geld voor javascript. (iets wat overigens in Webdesign & Graphics hoort).

Gee aan wat er mis gaat, waar je denkt dat het mis gaat, en wat je zelf al geprobeert hebt om het op te lossen. Zie ook P&W FAQ - De "quickstart"

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.