/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Tjek efter cookie ved bla. login. Probleme~
Fra : M


Dato : 15-01-06 15:32

Hej!

Kort:
Jeg vil lavet et script der tjekke om den pågældende computer har
været logget ind korrekt indenfor x antal tid. Hvis den har, skal den
bare logge ind igen automatisk, hvis ikke skal login boksen komme
frem.

Problem:
Jeg er ret sikker på at problemet ligger i kodningen, da Register
Globals er slået fra. Læste
http://www.php.net/manual/en/security.globals.php hvor $_SESSION blev
nævnt, men jeg kan ikke få noget data presset ud af den. Problemet er
at mine variabler resettes til NUL når jeg skal køre min function
lavcookie()
Hvilken indbygget funktion skal jeg benytte for at bevare mine
variablers værdi/hvad skal jeg ændre i koden???

På forhånd tak!

<?php

function lavcookie(){
   $gemt_kodeord = md5($indtastet_kodeord);
   $antal_dage = 2;
   $udloebsdato = time() + (60 * 60 * 24 * $antal_dage);
   setcookie("gemt_kodeord", $gemt_kodeord, $udloebsdato);
}

$indtastet_kodeord = $_REQUEST["indtastet_kodeord"];

if ($indtastet_kodeord){
   echo $indtastet_kodeord . " nummer 2<br>";
   lavcookie();
}

if ($reflink=$_COOKIE['gemt_kodeord']){
   $indtastet_kodeord = $reflink;   
   lavcookie();
}
?>
<html>
<body>
<h1>Hemmelige opskrifter online</h1>
<?php
$rigtigt_kodeord = md5("kodeord");

echo $enkode . " Nederst <br>";
if($gemt_kodeord == $rigtigt_kodeord){
   echo "<h1>Her er den hemmelige opskrift på verdens bedste
kager.</h1>";
} else {
?>
indtast det hemmelige kodeord
<form method=post action=<?php echo $php_self; ?> >
<input type=password name=indtastet_kodeord>
<input type=submit value="Vis mig opskriften">
</form>

<?php
}
?>
</body>
</html>

-M

 
 
M (15-01-2006)
Kommentar
Fra : M


Dato : 15-01-06 15:58

> Oprindelige post

hov.. kan se at der var indtastet 2stk echo. Koden ser rigtig så'n her
ud. Kun fjernet de 2 stk echo eg havde brugt til test.:

<?php

function lavcookie(){
   $gemt_kodeord = md5($indtastet_kodeord);
   $antal_dage = 2;
   $udloebsdato = time() + (60 * 60 * 24 * $antal_dage);
   setcookie("gemt_kodeord", $gemt_kodeord, $udloebsdato);
}

$indtastet_kodeord = $_REQUEST["indtastet_kodeord"];

if ($indtastet_kodeord){
   lavcookie();
}

if ($reflink=$_COOKIE['gemt_kodeord']){
   $indtastet_kodeord = $reflink;   
   lavcookie();
}
?>
<html>
<body>
<h1>Hemmelige opskrifter online</h1>
<?php
$rigtigt_kodeord = md5("kodeord");

if($gemt_kodeord == $rigtigt_kodeord){
   echo "<h1>Her er den hemmelige opskrift på verdens bedste
kager.</h1>";
} else {
?>
indtast det hemmelige kodeord
<form method=post action=<?php echo $php_self; ?> >
<input type=password name=indtastet_kodeord>
<input type=submit value="Vis mig opskriften">
</form>

<?php
}
?>
</body>
</html>


-M

M (16-01-2006)
Kommentar
Fra : M


Dato : 16-01-06 20:33

Update: ->

Problem: Alt virker undtaget variablen: $gemt_kodeord
Når scriptet skal tjekke efter om der tidligere har været logget ind
korrekt altså: if($gemt_kodeord == $rigtigt_kodeord){ så er
$gemt_kodeord = ""
WHY.. eller rettere... hvordan gør jeg så den bevare sin værdi fra
funktionen lavcookie?

På forhånd tak!

Script.php ->

<?php

function lavcookie(){
$gemt_kodeord = md5($_POST['indtastet_kodeord']);
$antal_dage = 2;
$udloebsdato = time() + (60 * 60 * 24 * $_POST['$antal_dage']);
setcookie("gemt_kodeord", $gemt_kodeord, $udloebsdato);
}

$indtastet_kodeord = $_POST['indtastet_kodeord'];

if ($indtastet_kodeord){
lavcookie();
}

/* if ($reflink=$_COOKIE['gemt_kodeord']){
$indtastet_kodeord = $reflink;
lavcookie();
}
*/
?>
<html>
<body>
<h1>Hemmelige opskrifter online</h1>
<?php
$rigtigt_kodeord = md5("kodeord"); //Adgang med kode: kodeord

if($gemt_kodeord == $rigtigt_kodeord){
echo "<h1>Her er den hemmelige opskrift på verdens bedste
kager.</h1>";
} else {
?>
indtast det hemmelige kodeord
<form method=post action=<?php echo $_SERVER["PHP_SELF"]; ?> >
<input type=password name=indtastet_kodeord>
<input type=submit value="Vis mig opskriften">
</form>

<?php
}
?>
</body>
</html>

M (16-01-2006)
Kommentar
Fra : M


Dato : 16-01-06 21:07

On Mon, 16 Jan 2006 20:32:37 +0100, M <info@bigm.dk> wrote:

>Update: ->
>
>Problem: Alt virker undtaget variablen: $gemt_kodeord
>Når scriptet skal tjekke efter om der tidligere har været logget ind
>korrekt altså: if($gemt_kodeord == $rigtigt_kodeord){ så er
>$gemt_kodeord = ""
>WHY.. eller rettere... hvordan gør jeg så den bevare sin værdi fra
>funktionen lavcookie?
>
>
>function lavcookie(){
> $gemt_kodeord = md5($_POST['indtastet_kodeord']);
> $antal_dage = 2;
> $udloebsdato = time() + (60 * 60 * 24 * $_POST['$antal_dage']);
> setcookie("gemt_kodeord", $gemt_kodeord, $udloebsdato);
>

løsning på funktion->

function lavcookie(){
   global $gemt_kodeord;
   echo $_POST['indtastet_kodeord'] . " -1-<br>";
   $gemt_kodeord = md5($_POST['indtastet_kodeord']);
   echo $gemt_kodeord . " -2-<br>";
   $antal_dage = 2;
   $udloebsdato = time() + (60 * 60 * 24 *
$_POST['$antal_dage']);
   setcookie("gemt_kodeord", $gemt_kodeord, $udloebsdato);
}


Nu har jeg bare et problem med at indlæse den oprettede cookie. Men
det finder jeg nok ud af... og poster derefter resultatet.

-M

M (18-01-2006)
Kommentar
Fra : M


Dato : 18-01-06 22:15

>Nu har jeg bare et problem med at indlæse den oprettede cookie. Men
>det finder jeg nok ud af... og poster derefter resultatet.
>

Og det gjorde jeg: Over and out!

<?php

// Funktion der opretter cookien!
function lavcookie(){
global $gemt_kodeord;
setcookie("gemt_kodeord", "$gemt_kodeord", time()+60);
}

// Indhenter det kodeord brugere har indtastet i password feltet
$indtastet_kodeord = $_POST['indtastet_kodeord'];

// Hvis det står noget i password feltet skal koden MD5'es og smides i
en cookie
if ($indtastet_kodeord){
$gemt_kodeord = md5($indtastet_kodeord);
$Cookie_Check = "RunOff"; // Variabel der tjekker om "if
($_COOKIE['gemt_kodeord'])" må køre. Dette må den kun hvis cookien
eksistere ved side indlæsning!
lavcookie();
}

// Hvis siden lige er blevet indlæst vil $Cookie_Check være = "" og
derfor vil $_cookie tjekke om cookien er oprettet!
if (!$Cookie_Check == "RunOff") {
if ($_COOKIE['gemt_kodeord']){
$gemt_kodeord = $_COOKIE['gemt_kodeord'];
lavcookie();
}
}
?>
<html>
<body>
<h1>Hemmelige opskrifter online</h1>
<?php

$rigtigt_kodeord = md5("kodeord"); // Det kodeord der giver adgang til
siden er = "kodeord"

// Tjekekr om det indtastede eller cookie indhentede password er
korrekt!
if($gemt_kodeord == $rigtigt_kodeord){
echo "<h1>Her er den hemmelige opskrift på verdens bedste
kager.</h1>";
} else {
?>
indtast det hemmelige kodeord
<form method=post action="<?php echo $_SERVER["PHP_SELF"]; ?>" >
<input type=password name=indtastet_kodeord>
<input type=submit value="Vis mig opskriften">
</form>

<?php
}
?>
</body>
</html>

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408524
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste