Kan iemand mij helpen met een cookies functie?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Klaas vieren

klaas vieren

10/01/2011 16:09:55
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>

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..
 
PHP hulp

PHP hulp

28/11/2024 20:02:33
 
Teun Hesseling

Teun Hesseling

10/01/2011 16:16:10
Quote Anchor link
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}
 
Klaas vieren

klaas vieren

10/01/2011 16:22:55
Quote Anchor link
@ Teun, als ik een cookie zet, dan krijg ik deze error: Warning: Cannot modify header information .....?
 
- Mark -

- Mark -

10/01/2011 16:25:25
Quote Anchor link
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.
 
Klaas vieren

klaas vieren

10/01/2011 16:34:07
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

function welkom()
{

setcookie("user", "ding");

if(isset($_COOKIE['user']))
{

echo("Welkom");
}

else
{
echo("Doei");
}
}


?>



....
 
Teun Hesseling

Teun Hesseling

10/01/2011 16:34:58
Quote Anchor link
dit zou al een hoop moeten oplossen
tip: gebruik tabs
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>
'
;
}

?>
Gewijzigd op 10/01/2011 16:35:36 door Teun Hesseling
 
Klaas vieren

klaas vieren

10/01/2011 16:41:27
Quote Anchor link
Werkt niet met mijn cookiefuncties :-(
 
Teun Hesseling

Teun Hesseling

10/01/2011 16:42:25
Quote Anchor link
heb je ob_start(); bovenaan je cookies.php pagina?
 
- SanThe -

- SanThe -

10/01/2011 16:45:32
Quote Anchor link
Teun Hesseling op 10/01/2011 16:34:58:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if($_SERVER['REQEUST_METHOD']) == "post"{
    include 'cookies.php';
}

else{
//
}
?>


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 -
 
- Mark -

- Mark -

10/01/2011 16:47:59
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

    function set_user($name){
        
        setcookie("user", $name);
    }

    function
welkom()
    {

            
        if(isset($_COOKIE['user']))
        {

            return 'Welkom '.$_COOKIE['user'];
        }

        else
        {
            return 'Doei';
        }
    }


?>


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 -
 
Teun Hesseling

Teun Hesseling

10/01/2011 16:48:00
Quote Anchor link
deed het uit de losse hand :p maar zie het een ) vergeten
 
- SanThe -

- SanThe -

10/01/2011 16:53:53
Quote Anchor link
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.
 
Klaas vieren

klaas vieren

10/01/2011 21:07:43
Quote Anchor link
@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 -

- Mark -

10/01/2011 21:36:22
Quote Anchor link
Dat dacht ik al, maar dit had je ook nog niet in je eigen code zitten. Moet dit trouwens perse met cookies?
 
Klaas vieren

klaas vieren

10/01/2011 21:40:52
Quote Anchor link
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>


en de externe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

    setcookie("user", "name");


    function
welkom()
    {

            
        if(isset($_COOKIE['user']))
        {

            echo 'Welkom '.$_POST['user'];
        }

        else
        {
            echo 'Welkom terug '.$_POST['user'];
        }
    }


?>
 
- Mark -

- Mark -

10/01/2011 21:58:42
Quote Anchor link
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.
Gewijzigd op 10/01/2011 22:00:13 door - Mark -
 
Klaas vieren

klaas vieren

10/01/2011 22:03:30
Quote Anchor link
@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.


.......
 
- Mark -

- Mark -

10/01/2011 22:32:09
Quote Anchor link
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 -
 
Klaas vieren

klaas vieren

10/01/2011 22:51:31
Quote Anchor link
@Mark, klopt.. nu is de vraag hoe.. haha :P?
 
- Mark -

- Mark -

10/01/2011 23:23:19
Quote Anchor link
- 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.
Gewijzigd op 10/01/2011 23:27:23 door - Mark -
 
Klaas vieren

klaas vieren

11/01/2011 13:47:42
Quote Anchor link
@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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.