Mysql til session

Tags:    php

Hej.
jeg er i gang med at lave en login hvor den gemmer session = brugernavn og password og id og rang alt fra MySQL databasen men den gemmer også alt på nær id og som id er vigtigst skal jeg bare have det til at hvirke og har testet om den skriver noget vis man skrive echo "$r[id]"; og der kommer ikke nogen info og jeg har også sikret mig i mysql databasen at id'en er = 1 så forstår ikke hvorfor den ikke hvirker

http://pastebin.com/16670



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Sådan... husk at ændre session navnet til "brugerid" på de andre sider som bruger det...

<pre>
<?
if ($_SESSION['login'] == "1") {
session_destroy();
}
session_start();


mysql_connect("XXX", "XXX", "XXX");
mysql_select_db("XXX");
if(!isset($_POST['Submit'])) {
echo "Du skal komme fra login.php";
}else{
$resultat = mysql_query("SELECT id FROM bruger WHERE brugernavn =
'$HTTP_POST_VARS[brugernavn]' AND password =
'$HTTP_POST_VARS[password]'");

$number = mysql_num_rows($resultat);
if($number == 1) {
$get_id = mysql_fetch_array($resultat);

$q = mysql_query ("SELECT id, brugernavn, password, rang FROM bruger
WHERE id='".$get_id['id']."'") or die (mysql_error());
$time = time();
while ($r = mysql_fetch_array($q)) {
$_SESSION['brugerid'] = $r['id'];
$_SESSION['login'] = 1;
$_SESSION['Brugernavn'] = $r['brugernavn'];
$_SESSION['Password'] = $r['password'];
$_SESSION['rang'] = $r['rang'];
$_SESSION['tid'] = $time;
}
}
if ($_SESSION['rang'] == 'admin') {
mysql_query("UPDATE bruger SET online = online + 1 WHERE
id='".$get_id['id']."'");
header("Location: admin/adminindex.php");
}
if ($_SESSION['rang'] == 'bruger') {
mysql_query("UPDATE bruger SET online = online + 1 WHERE id=''");
header("Location: bruger/brugerindex.php");
} else { echo"De indtastede oplysninger er ikke korrekte";
}
}


?>
</pre>

[Redigeret d. 13/09-03 15:07:04 af Morten Katholm]



Hej, kan det ikke ha noget med det der addslashes at gøre?

prøv med:

$_SESSION['bruger-id'] = $r['id'];

ellers kan det være at man ikke kan bruge - (bindestreger) i session navne...

$_SESSION['brugerid'] = $r['id'];



Hej, kan det ikke ha noget med det der addslashes at gøre?

prøv med:

$_SESSION['bruger-id'] = $r['id'];

ellers kan det være at man ikke kan bruge - (bindestreger) i session navne...

$_SESSION['brugerid'] = $r['id'];


.... kan du skrive det i en helt script hvor du både laver om på det der sessions ting og addslashes



ok ny oplysning $get_id['id']; der finder den ipen men kan ikke få den ind i session'en



Sådan... husk at ændre session navnet til "brugerid" på de andre sider som bruger det...

<pre>
<?
if ($_SESSION['login'] == "1") {
session_destroy();
}
session_start();


mysql_connect("XXX", "XXX", "XXX");
mysql_select_db("XXX");
if(!isset($_POST['Submit'])) {
echo "Du skal komme fra login.php";
}else{
$resultat = mysql_query("SELECT id FROM bruger WHERE brugernavn =
'$HTTP_POST_VARS[brugernavn]' AND password =
'$HTTP_POST_VARS[password]'");

$number = mysql_num_rows($resultat);
if($number == 1) {
$get_id = mysql_fetch_array($resultat);

$q = mysql_query ("SELECT id, brugernavn, password, rang FROM bruger
WHERE id='".$get_id['id']."'") or die (mysql_error());
$time = time();
while ($r = mysql_fetch_array($q)) {
$_SESSION['brugerid'] = $r['id'];
$_SESSION['login'] = 1;
$_SESSION['Brugernavn'] = $r['brugernavn'];
$_SESSION['Password'] = $r['password'];
$_SESSION['rang'] = $r['rang'];
$_SESSION['tid'] = $time;
}
}
if ($_SESSION['rang'] == 'admin') {
mysql_query("UPDATE bruger SET online = online + 1 WHERE
id='".$get_id['id']."'");
header("Location: admin/adminindex.php");
}
if ($_SESSION['rang'] == 'bruger') {
mysql_query("UPDATE bruger SET online = online + 1 WHERE id=''");
header("Location: bruger/brugerindex.php");
} else { echo"De indtastede oplysninger er ikke korrekte";
}
}


?>
</pre>
har prøvet

[Redigeret d. 13/09-03 15:07:04 af Morten Katholm]





Virker det?



Virker det?

no







t