Kan iemand mij helpen met een cookies functie?
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 .....?
PS Geen $_SERVER['PHP_SELF']; gebruiken dat is onveilig, 'XSS' gewoon uittypen.
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)
....
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 -
- 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.
@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:
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 -
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.
.......
Gewijzigd op 10/01/2011 22:37:26 door - Mark -
@Mark, klopt.. nu is de vraag hoe.. haha :P?
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.