Avatar billede ny89 Nybegynder
06. november 2011 - 10:18 Der er 6 kommentarer og
1 løsning

Cookies

Jeg har to spørgsmål.

Hvad vil det sige, at man skal ændre værdien af en cookie via en webgrænseflade?????

Hvordan sætter man cookies ved login?
Jeg har følgende script:

<?php //userprofil
$DBhost = "localhost";
$DBuser = "";
$DBpass = "";
$DBname = "";
$table = "users";

//$username = $_GET['username'];
//$password = sha1($_GET['password']);

mysql_connect($DBhost, $DBuser, $DBpass) or die ("Ingen forbindelse");

@mysql_select_db("") or die ("Fandt ikke DB");



$username = mysql_real_escape_string($_GET['username']);
$password = mysql_real_escape_string($_GET['password']);

$sql = "SELECT * FROM $table WHERE username ='$username' AND password='$password'";
$result = mysql_query($sql) or die (mysql_error());

$count = mysql_num_rows($result);
if($count == 1)
{
    session_register("username");
    echo ("Hej "); //login er korrekt
   
}
else
{
    echo ("Hej ");
}

?>
Avatar billede olsensweb.dk Ekspert
06. november 2011 - 12:31 #1
>Hvad vil det sige, at man skal ændre værdien af en cookie via en webgrænseflade?
det gør du ved at sætte den / opdaterer den

http://dk.php.net/manual/en/features.cookies.php
http://dk2.php.net/setcookie
vær opmærksom på hvor i coden du lægger setcookie, det skal være før du sender noget til skærmen header restrictions

http://www.joe2torials.com/view_tutorial.php?view=66 <-- læs denne tut

det er fint du vil anvende mysql_real_escape_string for at hindre sql injection, men du må ikke bruge GET du skal bruge POST
lave disse linjer om fra
$username = mysql_real_escape_string($_GET['username']);
$password = mysql_real_escape_string($_GET['password']);

til
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

og som danco skrev i http://www.eksperten.dk/spm/950698 #2 bør du kryptere passwordet i din database.
Avatar billede olebole Juniormester
06. november 2011 - 13:47 #2
<ole>

Man kan godt bruge mysql_real_escape_string, men det er en lidt bedaget fremgangsmåde, når man i dag kan bruge mysqli med parametriserede kald - eller PDO. I den sammenligning er mysql_real_escape_string blot et 'fattigt hack'  =)

/mvh
</bole>
Avatar billede olebole Juniormester
06. november 2011 - 14:21 #3
- og så tror jeg ikke, du ønsker at bruge cookies, men sessions
Avatar billede danco Nybegynder
06. november 2011 - 15:33 #4
Som Ole siger, det er formentlig ikke cookies du skal ud i at bruge her.
Cookies bruger du til at gemme oplysninger på brugerens egen maskine, hvorimod sessions ligger på serveren. Det vil sige at i princippet kunne man hijacke sig ind på din side ved at lave en falsk cookie.
Cookies er velvalgt hvis det fx. handler om at du vil gemme brugernavnet eller andre ting som brugeren ellers selv skulle skrive ind.

Cookies på følgende måde:
//Sæt cookie
$value = "Din Cookie Værdi";
setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */

//Læs Cookie
echo $_COOKIE["TestCookie"];
Avatar billede ny89 Nybegynder
06. november 2011 - 19:16 #5
Mange tak :) Det vil jeg lige kigge på i morgen.
Avatar billede ny89 Nybegynder
21. november 2011 - 09:38 #6
Vil prøve med session. Ole smid et svar.
Avatar billede ny89 Nybegynder
25. marts 2012 - 17:51 #7
Der kom ikke noget svar, så lukker nu.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester