[php] Cookies if then

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

  • Ropniko
  • Registratie: Maart 2000
  • Laatst online: 31-03-2021
Ik ben een redelijk nitwitt wat betreft programmeercodes enz. Maar nu wil toch het 1 en het ander maken om een leuke website voor m'n huidige werk te maken.

De situatie is als volgt.. ik ben al zover dat er cookies aangemaakt worden bij een bepaalde taal keuze en vanuit die cookies wil ik dan lezen wat hij bij het 2e bezoek moet doen. Aangezien er 8 verschillende mogelijkheden zijn voor wat er in dat cookie kan staan ben ik een beetje de 'tel' kwijt geraakt..

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if (!isset($_COOKIE['mg']) || $_COOKIE['mg'] != "mgnl800") { ?>
<body>
<html>
<head>
<title>
</title>
<script language="javascript">
function openWindow(theURL,winName,features) {
  window.open(theURL,winName,'width=680,height=510');
}
</script>
</head>
<body onLoad="openWindow('/nl/800/index.html','')">
</body>
</html>
<?php } else {
?>


Ongeacht of het javascript gedeelte werkt.. het probleem is dat hij direct begint met het laden van dit gedeelte terwijl hij eigenlijk verder op in de code moet zijn voor het 1ste bezoek.. maar dat wil niet echt lukken.. hij leest blijkbaar niet of er wel of geen cookie is..

Weet iemand een goeie manier.. ik zit nu al 1,5 dag mijn complete tijd te besteden aan dit probleem en het wil niet echt lukken.

Eerste bezoek:
- Taalkeuze
- Resolutie check

vervolgens naar /[taal]/index[reso].php
daar wordt voor het laden een cookie gestalled met daarin taal+resolutie
cookie heeft levensduur van 365 dagen en vervolgens wordt de website getoond

2e bezoek
Eerst index.php
En dan direct naar /[taal]/[reso]/index.html in een afgemeten window (680x510 of 900x675)

Dat is dus een beetje het idee wat ik had.. omslachtig misschien.. maar ja.. ben nu eenmaal niet zo heel erg goed met programmeertalen enz..

[ Voor 9% gewijzigd door Ropniko op 03-03-2004 11:17 ]

NL: 18 19 31 32 34 37 39 47 57 60 66 67 68 70 72 73 77 79 80 82 83 85 90 94 95 96 98 02 04 11 12 | KB: 17 43 61 67 70 71 72 79 83 86 87 93 98 99 02 06 07 10 | SC: 93 94 95 | JCS: 02 05 06 | EC1: 71 72 73 95 | EC2: 87 | UC: 92 | WB: 72 95 | ESC: 72 73 95


  • Ropniko
  • Registratie: Maart 2000
  • Laatst online: 31-03-2021
normaal heb ik een hekel aan dit soort kicks maar goed.. als je zelf met het probleem zit :)

Niemand hier ff een simpele oplossing voor? ik kom er echt niet uit.. wellicht is het voor 1 van jullie 5 minuten werk.. tegenover 12 uur werk van mijn kant..

NL: 18 19 31 32 34 37 39 47 57 60 66 67 68 70 72 73 77 79 80 82 83 85 90 94 95 96 98 02 04 11 12 | KB: 17 43 61 67 70 71 72 79 83 86 87 93 98 99 02 06 07 10 | SC: 93 94 95 | JCS: 02 05 06 | EC1: 71 72 73 95 | EC2: 87 | UC: 92 | WB: 72 95 | ESC: 72 73 95


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 23:30

NMe

Quia Ego Sic Dico.

Probeer $_COOKIE['mg'] eens af te drukken, misschien zit er niet in wat je verwacht dat er in staat. Als het dat niet is, probeer dan eens af te drukken met echo in plaats van de php tag te sluiten en dan gewoon HTML te schrijven. Daar heb ik in het verleden ook wel eens last mee gehad.

Je HTML zit trouwens niet helemaal goed, er staat een <body> tag teveel in. En in je JavaScript functie vergeet je wat te doen met de variabele features.

edit:
Kicks mogen pas na 24 uur. :P

[ Voor 8% gewijzigd door NMe op 03-03-2004 12:05 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 14-05 15:52
Ervan uitgaande dat je cookie zetten klopt kun je toch zoiets doen:
PHP:
1
2
3
4
5
6
7
8
9
if(isset($_COOKIE['taal']) && isset($_COOKIE['reso'])){
// evt. nog controleren of het wel geldige waarden zijn
$location='/'.$_COOKIE['taal'].'/'.$_COOKIE['reso'].'/index.html';
} else {
$location='/selector.html';
}
header("Location: http://".$_SERVER['HTTP_HOST'].$location."\n\n");
echo " ";
exit(0);


in je index.php, dan gaat 'ie afhankelijk van de Cookie variabelen naar de goede pagina.

Verwijderd

PHP:
1
2
3
<? 
if (!isset($_COOKIE['mg']) || $_COOKIE['mg'] != "mgnl800") { 
?>


Deze logica is niet helemaal correct denk ik. OF er is geen cookie OF de cookie is niet gelijk aan mgnl800

maar als er geen cookie is dan istie ook zeker niet gelijk aan mgnl800 en krijg je dus het eerste deel te zien. Volgens mij bedoel je dit:

PHP:
1
2
3
<? 
if (!isset($_COOKIE['mg']) || (isset($_COOKIE['mg']) AND  $_COOKIE['mg'] != "mgnl800")) { 
?>

  • Ropniko
  • Registratie: Maart 2000
  • Laatst online: 31-03-2021
Klopte inderdaad niet veel van die bewering.. die had ik eerlijk gezegd ook 'geleend' uit een standaard dreamweaver script.. maar goed.. na een dag je kop breken op zoiets kan behoorlijk frusterend werken..

Met wat hulp ben ik nu wel wat verder.. echter het doet nog steeds niet wat ik wil..

PHP:
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
36
37
38
39
40
41
42
<?php
if (isset($_COOKIE['mg']) AND $_COOKIE['mg'] == "mgnl800") { 

// Als de taal NL is en de resolutie 800x600 dan deze pagina openen

echo "<html>
<head>
<title>
</title>
<script language=\"javascript\">
function openWindow(theURL,winName,features) {
  window.open(theURL,winName,'width=680,height=510');
}
</script>
</head>
<body onLoad=\"openWindow('/nl/800/index.html','')\">
</body>
</html>";
} else if(isset($_COOKIE['mg']) AND $_COOKIE['mg'] == "mgnl1024") {

// Als de taal NL is en de resolutie 1024x768 dan deze pagina openen

echo "<html>
<head>
<title>
</title>
<script language=\"javascript\">
function openWindow(theURL,winName,features) {
  window.open(theURL,winName,'width=900,height=675');
}
</script>
</head>
<body onLoad=\"openWindow('/nl/1024/index.html','')\">
</body>
</html>"; 
} else { 

// hier begint de taalkeuze

echo " [...]
</html>";
} ?>


De complete code.. let niet op de belachelijke hoeveelheid van javascript functies enz.. ik ben echt een soort van programmeerblind wat dit betreft.. ik zie de problemen maar ik kan de oplossing echt niet voor me halen.. vandaar dat ik er ook zo lang over doe.. maar ik krijg nu dus nog steeds de popup van het eerste deel ipv dat hij direct doorgaat naar de taalkeuze.. ik heb al dusdanig veel geprobeerd dat ik aardig vastloop nu..

[ Voor 79% gewijzigd door Ropniko op 03-03-2004 14:47 ]

NL: 18 19 31 32 34 37 39 47 57 60 66 67 68 70 72 73 77 79 80 82 83 85 90 94 95 96 98 02 04 11 12 | KB: 17 43 61 67 70 71 72 79 83 86 87 93 98 99 02 06 07 10 | SC: 93 94 95 | JCS: 02 05 06 | EC1: 71 72 73 95 | EC2: 87 | UC: 92 | WB: 72 95 | ESC: 72 73 95


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

Rob&Nico schreef op 03 maart 2004 @ 12:02:
normaal heb ik een hekel aan dit soort kicks maar goed.. als je zelf met het probleem zit :)
kicken doen we pas na 24 uur, staat in de FAQ :)
Niemand hier ff een simpele oplossing voor? ik kom er echt niet uit.. wellicht is het voor 1 van jullie 5 minuten werk.. tegenover 12 uur werk van mijn kant..
Neuh, hier in P&W programmeren we zelf. Je mag natuurlijk wel een vraag stellen, maar je kunt niet van ons verwachten dat wij het maar even voor je oplossen. Sorry, maar helaas :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.