Kan iemand mij helpen met een cookies functie?
Mijn opdracht luidt:
In deze lab-opdracht maak een nieuwe cookie met als naam je eigen naam. De inhoud van deze cookie is een teller die bijhoudt het aantal keer dat je op bezoek ben geweest op deze webpagina.
Typ het volgende over en sla het op als lab12.php
Maak een nieuwe script en sal het op als cookiefuncties.php.
Maak een nieuwe welkom() functie zodat er wordt gezocht of de gebruikers cookie bestaat.
Als de gebruikers cookie gelijk is aan de inlog gebruikersnaam dan geef je de melding: Hallo gebruikersnaam, welkom terug bij de XXL Computers website.
Anders maak je een gebruikers cookie met de inlognaam van de gebruiker en geef je de melding: Welkom gebruikersnaam, dit is je eerste bezoek.
Nu moet ik dus een functie maken, maar weet nog niet hoe..
In deze lab-opdracht maak een nieuwe cookie met als naam je eigen naam. De inhoud van deze cookie is een teller die bijhoudt het aantal keer dat je op bezoek ben geweest op deze webpagina.
Typ het volgende over en sla het op als lab12.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1. <html>
2. <head>
3. <title>XXL Computer winkel</title>
4. </head>
5. <body>
6. <h3>php lab 12</h3>
7. <table border=0 cellpadding=0 cellspacing=0 >
8. <form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
9. <tr>
10. <td>gebruikersnaam:</td>
11. <td><input type="text" name="user" /></td>
12. <td><input type="button" name="send" value="inloggen" /></td>
13. </tr>
14. </form>
15. </table>
16. <?php
17.
18. include("cookiefuncties.php");
19. welkom();
20. ?>
21. </body>
22. </html>
2. <head>
3. <title>XXL Computer winkel</title>
4. </head>
5. <body>
6. <h3>php lab 12</h3>
7. <table border=0 cellpadding=0 cellspacing=0 >
8. <form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
9. <tr>
10. <td>gebruikersnaam:</td>
11. <td><input type="text" name="user" /></td>
12. <td><input type="button" name="send" value="inloggen" /></td>
13. </tr>
14. </form>
15. </table>
16. <?php
17.
18. include("cookiefuncties.php");
19. welkom();
20. ?>
21. </body>
22. </html>
Maak een nieuwe script en sal het op als cookiefuncties.php.
Maak een nieuwe welkom() functie zodat er wordt gezocht of de gebruikers cookie bestaat.
Als de gebruikers cookie gelijk is aan de inlog gebruikersnaam dan geef je de melding: Hallo gebruikersnaam, welkom terug bij de XXL Computers website.
Anders maak je een gebruikers cookie met de inlognaam van de gebruiker en geef je de melding: Welkom gebruikersnaam, dit is je eerste bezoek.
Nu moet ik dus een functie maken, maar weet nog niet hoe..
alvast een beginnetje verder kun je gewoon kijken naar if(isset()){ zo ja dus de message dat je weer terug bent} else{ je eerste bezoek}
@ Teun, als ik een cookie zet, dan krijg ik deze error: Warning: Cannot modify header information .....?
Dat komt omdat je zoiets boven je html moet doen. Er mag nog geen output naar de browser zijn geweest voor het gebruik hiervan.
PS Geen $_SERVER['PHP_SELF']; gebruiken dat is onveilig, 'XSS' gewoon uittypen.
PS Geen $_SERVER['PHP_SELF']; gebruiken dat is onveilig, 'XSS' gewoon uittypen.
Mark Coenen, kun je me nog een keer wat duidelijker uitleggen haha..
En wat betreft PHP_SELF, moet het van school doen dus moet me ook aan deze richtlijnen houden.
Oke, wat moet ik dus nu precies doen?
ik heb nu dit:
....
En wat betreft PHP_SELF, moet het van school doen dus moet me ook aan deze richtlijnen houden.
Oke, wat moet ik dus nu precies doen?
ik heb nu dit:
Code (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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>XXL Computer winkel</title>
</head>
<body>
<h3>php lab 12</h3>
<table border=0 cellpadding=0 cellspacing=0 >
<form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<tr>
<td>gebruikersnaam:</td>
<td><input type="text" name="user" /></td>
<td><input type="button" name="send" value="inloggen" /></td>
</tr>
</form>
</table>
<?php
include("cookiefuncties.php");
welkom();
?>
</body>
</html>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>XXL Computer winkel</title>
</head>
<body>
<h3>php lab 12</h3>
<table border=0 cellpadding=0 cellspacing=0 >
<form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<tr>
<td>gebruikersnaam:</td>
<td><input type="text" name="user" /></td>
<td><input type="button" name="send" value="inloggen" /></td>
</tr>
</form>
</table>
<?php
include("cookiefuncties.php");
welkom();
?>
</body>
</html>
Code (php)
....
dit zou al een hoop moeten oplossen
tip: gebruik tabs
tip: gebruik tabs
Code (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
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
<?php
if($_SERVER['REQEUST_METHOD']) == "post"{
include 'cookies.php';
}
else{
echo '
<html>
<head>
<title>XXL Computer winkel</title>
</head>
<body>
<h3>php lab 12</h3>
<form name="orderform" action="'.$_SERVER['PHP_SELF'].'" method="post">
<table border=0 cellpadding=0 cellspacing=0 >
<tr>
<td>gebruikersnaam:</td>
<td><input type="text" name="user" /></td>
<td><input type="button" name="send" value="inloggen" /></td>
</tr>
</table>
</form>
</body>
</html>
';
}
?>
if($_SERVER['REQEUST_METHOD']) == "post"{
include 'cookies.php';
}
else{
echo '
<html>
<head>
<title>XXL Computer winkel</title>
</head>
<body>
<h3>php lab 12</h3>
<form name="orderform" action="'.$_SERVER['PHP_SELF'].'" method="post">
<table border=0 cellpadding=0 cellspacing=0 >
<tr>
<td>gebruikersnaam:</td>
<td><input type="text" name="user" /></td>
<td><input type="button" name="send" value="inloggen" /></td>
</tr>
</table>
</form>
</body>
</html>
';
}
?>
Gewijzigd op 10/01/2011 16:35:36 door Teun Hesseling
Werkt niet met mijn cookiefuncties :-(
heb je ob_start(); bovenaan je cookies.php pagina?
Teun Hesseling op 10/01/2011 16:34:58:
Als je de error_reporting aan hebt staan dan krijg je hier toch een notice en een harde error op.
Gewijzigd op 10/01/2011 16:46:44 door - SanThe -
Uit het hoofd, :p dus onder voorbehoudt van fouten.
- Je hoefd niet elke keer setcookie te doen.
- Er hoeven geen () bij een echo gebruikt worden.
- gebruik return en niet echo in een functie.
PS Zeer leuk dat de school het je fout aanleerd. Dit staat ook helaas in een hoop boeken.
EDIT: Ik passeer het formulier op deze manier. Dat mag je er zelf terug inbouwen.
- Je hoefd niet elke keer setcookie te doen.
- Er hoeven geen () bij een echo gebruikt worden.
- gebruik return en niet echo in een functie.
PS Zeer leuk dat de school het je fout aanleerd. Dit staat ook helaas in een hoop boeken.
Code (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
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
<?php
include("cookiefuncties.php");
if(!isset($_COOKIE['user'])){
set_user('Klaas');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>XXL Computer winkel</title>
</head>
<body>
<h3>php lab 12</h3>
<table border=0 cellpadding=0 cellspacing=0 >
<form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<tr>
<td>gebruikersnaam:</td>
<td><input type="text" name="user" /></td>
<td><input type="button" name="send" value="inloggen" /></td>
</tr>
</form>
</table>
<?php
echo welkom();
?>
</body>
</html>
include("cookiefuncties.php");
if(!isset($_COOKIE['user'])){
set_user('Klaas');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>XXL Computer winkel</title>
</head>
<body>
<h3>php lab 12</h3>
<table border=0 cellpadding=0 cellspacing=0 >
<form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<tr>
<td>gebruikersnaam:</td>
<td><input type="text" name="user" /></td>
<td><input type="button" name="send" value="inloggen" /></td>
</tr>
</form>
</table>
<?php
echo welkom();
?>
</body>
</html>
Code (php)
EDIT: Ik passeer het formulier op deze manier. Dat mag je er zelf terug inbouwen.
Gewijzigd op 10/01/2011 16:51:32 door - Mark -
deed het uit de losse hand :p maar zie het een ) vergeten
Teun Hesseling op 10/01/2011 16:48:00:
deed het uit de losse hand :p maar zie het een ) vergeten
Als dit op mijn post slaat, dan heb je het mis.
@Teun, ow.. moet dat dan (object_start)? Is me niet verteld.
@Mark, dank je wel voor de code, helaas werkt het niet. Als ik een input invoer en dan inloggen indruk.. gebeurt helemaal niets?
Toevoeging op 10/01/2011 21:10:35:
@Mark, het was dus de bedoeling dat wanneer iemand inlogt. Zijn naam komt te staan met welkom MARK. Als hij dan weer erop zou drukken om in te loggen zou er staan Welkom TERUG MARK.
Ik heb gezien dat je mijn naam hebt gebruikt in een variabele..?
@Mark, dank je wel voor de code, helaas werkt het niet. Als ik een input invoer en dan inloggen indruk.. gebeurt helemaal niets?
Toevoeging op 10/01/2011 21:10:35:
@Mark, het was dus de bedoeling dat wanneer iemand inlogt. Zijn naam komt te staan met welkom MARK. Als hij dan weer erop zou drukken om in te loggen zou er staan Welkom TERUG MARK.
Ik heb gezien dat je mijn naam hebt gebruikt in een variabele..?
Dat dacht ik al, maar dit had je ook nog niet in je eigen code zitten. Moet dit trouwens perse met cookies?
Mark Coenen op 10/01/2011 21:36:22:
Dat dacht ik al, maar dit had je ook nog niet in je eigen code zitten. Moet dit trouwens perse met cookies?
Ow haha dat klopt, ik had alleen test met welkom en doei :P
Ja klopt.. deze opdracht gaat specifiek over cookies. in principe zou het er zo uit moeten zien:
Code (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
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
<?php
include("cookiefunctiest.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>XXL Computer winkel</title>
</head>
<body>
<h3>php lab 12</h3>
<table border=0 cellpadding=0 cellspacing=0 >
<form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<tr>
<td>gebruikersnaam:</td>
<td><input type="text" name="user" /></td>
<td><input type="submit" name="send" value="inloggen" /></td>
</tr>
</form>
</table>
<?php
echo welkom();
?>
</body>
</html>
include("cookiefunctiest.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>XXL Computer winkel</title>
</head>
<body>
<h3>php lab 12</h3>
<table border=0 cellpadding=0 cellspacing=0 >
<form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<tr>
<td>gebruikersnaam:</td>
<td><input type="text" name="user" /></td>
<td><input type="submit" name="send" value="inloggen" /></td>
</tr>
</form>
</table>
<?php
echo welkom();
?>
</body>
</html>
en de externe:
Ik wil niet vervelend klinken maar heb je een paar lessen gemist ofzo?
Je hebt geen enkele formulier afhandeling in je script zitten. En is het niet de bedoeling dat je de naam die je in het formulier zet in de cookie terecht komt?
Ik neem aan dat de opdracht is.
- Welkom gast als iemand niet is ingelogd.
- Welkom user als iemand voor de eerste keer is ingelogd.
- Welkom terug user als iemand voor de 2de keer of vaker is ingelogd.
Dan heb je toch echt nog iets nodig dat onthoudt hoevaak iemand op inloggen heeft gedrukt.
Zeg eens in je eigen woorden wat de functie welkom() zou moeten doen volgens jouw. En dan bedoel ik de versie die je nu hebt geschreven.
Je hebt geen enkele formulier afhandeling in je script zitten. En is het niet de bedoeling dat je de naam die je in het formulier zet in de cookie terecht komt?
Ik neem aan dat de opdracht is.
- Welkom gast als iemand niet is ingelogd.
- Welkom user als iemand voor de eerste keer is ingelogd.
- Welkom terug user als iemand voor de 2de keer of vaker is ingelogd.
Dan heb je toch echt nog iets nodig dat onthoudt hoevaak iemand op inloggen heeft gedrukt.
Zeg eens in je eigen woorden wat de functie welkom() zou moeten doen volgens jouw. En dan bedoel ik de versie die je nu hebt geschreven.
Gewijzigd op 10/01/2011 22:00:13 door - Mark -
@Mark..
Klopt helemaal. Het spijt me echt dat ik zo een beeld heb geschetst, maar we krijgen van school echt niet meer (we moeten het namelijk zelf uitzoeken..). Wat je me nu zegt is voor mij echt nieuw (inloggen onthouden?)
Ik denk dat dat niet nodig is toch, want de opdracht was een cookie op te slaan van de username en als weer met dezelfde is ingelogd (dat dan staat welkom TERUG naam).
In de welkom functie denk ik dat moet gecodeerd worden:
- Een cookie om de user op te slaan
- De user (input) lezen en kijken in de cookie of deze al bestaat. Zo ja, dan schrijf je welkom TERUG naam. Als van deze input(user) geen cookie is, dan moet er staan: Welkom, dit is je eerste bezoek naam.
.......
Klopt helemaal. Het spijt me echt dat ik zo een beeld heb geschetst, maar we krijgen van school echt niet meer (we moeten het namelijk zelf uitzoeken..). Wat je me nu zegt is voor mij echt nieuw (inloggen onthouden?)
Ik denk dat dat niet nodig is toch, want de opdracht was een cookie op te slaan van de username en als weer met dezelfde is ingelogd (dat dan staat welkom TERUG naam).
In de welkom functie denk ik dat moet gecodeerd worden:
- Een cookie om de user op te slaan
- De user (input) lezen en kijken in de cookie of deze al bestaat. Zo ja, dan schrijf je welkom TERUG naam. Als van deze input(user) geen cookie is, dan moet er staan: Welkom, dit is je eerste bezoek naam.
.......
Je beschrijving van wat de functie welkom() doet komt niet overeen met wat de functie welkom() daadwerkelijk doet. Welkom() hoort ook niet de naam op te slaan. Dat moet je doen terwijl je het formulier afhandeld.
Gewijzigd op 10/01/2011 22:37:26 door - Mark -
@Mark, klopt.. nu is de vraag hoe.. haha :P?
- Zucht... laat maar, Ik weet niet wat ik heb vandaag maar de puzzel stukjes vallen niet op hun plaats vandaag. -
Er moet trouwens wel een setcookie in de welkom() als ik de opdracht letterlijk vertaal. Als ik tijd heb werk ik morgen wel wat voor je uit. Ik heb me wat door de war laten brengen door jouw script en niet goed naar de werkelijke opdracht gekeken.
Er moet trouwens wel een setcookie in de welkom() als ik de opdracht letterlijk vertaal. Als ik tijd heb werk ik morgen wel wat voor je uit. Ik heb me wat door de war laten brengen door jouw script en niet goed naar de werkelijke opdracht gekeken.
Gewijzigd op 10/01/2011 23:27:23 door - Mark -
@Mark, hahahahah excuses! Je moest eens weten hoe ik me voel en vandaag al helemaal. Ik was namelijk op school de hele tijd bezig op mijn pen drukken wat natuurlijk een irritante geluid veroorzaakt. De leraar zei: Hey Klaas, iewat nerveus? Hahahah had het niet door lol.




