/ 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
session problemer!!!!
Fra : jesper


Dato : 05-06-06 12:30

har et problem med et login system.. login funktionen ser sådan
ud:

<?php
function log_ind($username, $password){
$username_slash = addslashes($username);
$password_slash = addslashes($password);
$foresp = mysql_query("SELECT * FROM users WHERE username = '".
$username_slash ."' AND password = '". $password_slash ."' AND
activate =
'1'");
if (mysql_num_rows($foresp) == 1){
$this->username = $username;
$this->password = $password;
$_SESSION["username"] = $this->$username;
$_SESSION["password"] = $this->$password;
return true;
} else {
$this->log_ud();
return false;
}
}
?>

når jeg så i index.php filen skriver sådan:

<?php
include('login.php');
echo "". $_SESSION['username'] ."<br>";
echo "". $_SESSION['password'] ."";
?>


den skriver dog ikke noget.. og jeg har husket <?php
session_start(); ?> i
begge filer som første linje.. hvad kan der være galt??


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Dan Storm (05-06-2006)
Kommentar
Fra : Dan Storm


Dato : 05-06-06 20:07

jesper skrev:
> den skriver dog ikke noget.. og jeg har husket <?php
> session_start(); ?> i
> begge filer som første linje.. hvad kan der være galt??

Der er noget der tyder på at du ikke bruger session_start() rigtigt.
Enten det eller også er det ikke sat korrekt op på serveren.

Desuden er din kode meget rodet og uoverskuelig at se på.

Du kan tage en hurtig test for at se om din PHP er sat korrekt op til at
håndtere dine sessions.

session.php:
<?php
session_start();

$_SESSION['kage'] = "chokolade";

echo "Jeg har lavet en " . $_SESSION['kage'] . "kage.";

?>

Kør denne stump kode. Får du ikke linien 'Jeg har lavet en
chokoladekage.' så er det ikke sat rigtigt op.
Hvis du til gengæld får den ønskede linie, så bruger du funktionen forkert.

Idet du samtidig fortæller os at funktionen bliver brugt før alt andet i
dine scripts, undrer det mig lidt at vi ikke må se hele filen? På den
måde har vi da slet ikke en jordisk chance for at give dig et
kvalificeret båd på hvorfor din kode ikke virker.

Du kan tage et hurtigt kig på på <url: http://err0r.dk/docs.php?fetchdoc=1>
Der er muligvis lidt at lære.



--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Jonas Delfs (05-06-2006)
Kommentar
Fra : Jonas Delfs


Dato : 05-06-06 21:48

"Dan Storm" <shadyz@_REMOVETHIS_err0r.dk> wrote in message
news:448480cb$0$912$edfadb0f@dread14.news.tele.dk...
> jesper skrev:
>> den skriver dog ikke noget.. og jeg har husket <?php
>> session_start(); ?> i begge filer som første linje.. hvad kan der være
>> galt??
>
> Du kan tage en hurtig test for at se om din PHP er sat korrekt op til at
> håndtere dine sessions.
>
> session.php:
> <?php
> session_start();
>
> $_SESSION['kage'] = "chokolade";
>
> echo "Jeg har lavet en " . $_SESSION['kage'] . "kage.";
>
> ?>

Nu vil $_SESSION['kage'] jo altid være tilgængelig i dette script, da du har
tildelt værdien direkte til array'et, men det siger ikke noget om hvorvidt
værdien egentlig bliver gemt og dermed er tilgængelig på næste side.

Prøv at holde øje med din tmp-mappe (eller hvor du gemmer dine sessions) og
se om der bliver oprettet nogen session-fil og om der i øvrigt bliver
skrevet til den.

Mvh. Jonas



Dan Storm (05-06-2006)
Kommentar
Fra : Dan Storm


Dato : 05-06-06 22:02

Jonas Delfs skrev:
> Nu vil $_SESSION['kage'] jo altid være tilgængelig i dette script, da du har
> tildelt værdien direkte til array'et, men det siger ikke noget om hvorvidt
> værdien egentlig bliver gemt og dermed er tilgængelig på næste side.

Ak, ja! Min fejl! :)
Ville naturligvis have delt det op i to forskellige scripts, men da
kæresten kom ind ad døren med en film og en pose dumle gik det lige
hurtigt nok! ;)

session.php:
<?php
session_start();

$_SESSION['kage'] = "chokolade"

echo '<a href="session2.php" title="Sessiontest">session2.php</a>';
?>

session2.php:
<?php
session_start();

echo "Jeg har lavet en " . $_SESSION['kage'] . "kage.";
?>

Sådan. :)

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Martin (06-06-2006)
Kommentar
Fra : Martin


Dato : 06-06-06 03:41

jesper wrote:
> har et problem med et login system.. login funktionen ser sådan
> ud:
>
> <?php
> function log_ind($username, $password){
> $username_slash = addslashes($username);
> $password_slash = addslashes($password);
> $foresp = mysql_query("SELECT * FROM users WHERE username = '".
> $username_slash ."' AND password = '". $password_slash ."' AND
> activate =
> '1'");
> if (mysql_num_rows($foresp) == 1){
> $this->username = $username;
> $this->password = $password;

Jeg må indrømme, jeg aldrig har set $this->xxx i en funktion før, og det
ligner ikke at det er en funktion fra en class (da du starter med <?php)
- har jeg ret?

<?php // login.php
function Login($username,$password) {
$sql = mysql_query("SELECT ......");
if(mysql_num_rows($sql)==1) {
$_SESSION["username"]=$username;
$_SESSION["password"]=$password;
return true;
} else {
return false;
}
// end login.php
?>


<?php // index.php
session_start();
require_once("login.php");
if(Login($_SESSION["username"],$_SESSION["password"])) {
print "Yippiekayayayaaa";
} else {
if($_POST["submit"]) {
if(Login($user,$pass)) {
// Så er der sku logget korrekt ind
// Vi reloader lige siden, så man er sikker på sessionen virker
header("location: ".$_SERVER["REQUEST_URI"]);
exit;
} else {
// EJ! - Forkert kodeord/brugernavn!
print "Buuuh forkert brugernavn kodeord!";
}
}
// Loginform
$html = HTML>>>
<form action='$_SERVER["PHP_SELF"]' method='post'>
<input type='text' name='user'>
<input type='password' name='pass'>
<input type='submit' name='submit' value='Login'>
HTML;
echo $html;
}
// end index.php
?>

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