| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
Fopo
Medlem i: 1922 dagar Från: Göteborg
Status: Offline
#722214
|
Skrivet: 2012-04-03 15:11
Ämne: ID SESSION Problematik
|
|
|
Godeftermiddag,
Suttit med ett problem nu en längre tid och får det bara inte löst!
Jag vill skapa en session av det ID som användarnamnet och lösenordet tillhör när man loggar in på sidan för att sedan använda det när användaren är inloggad. (T.ex settings.php?id=1)
Någon som har en idé hur jag skall göra för att skapa sessensionen?
All hjälp uppskattas!
/Felix
Databasens uppbyggnad
id - username - password - address - telephone - telephonetwo - type
Login.php
1: <?php 2: 3: include 'login/conn.php'; 4: 5: // Database connect 6: mysql_connect("$host","$user","$pass")or die("Cannot Connect"); 7: mysql_select_db("$db")or die("Cannot Select DB"); 8: 9: $id=$_POST['id']; 10: $username=$_POST['username']; 11: $password=$_POST['password']; 12: 13: $sql="SELECT * FROM users WHERE username='$username' and password='$password'"; 14: $result = mysql_query($sql) or die(mysql_error()); 15: 16: while($row = mysql_fetch_assoc($result)) 17: 18: // Se om vi hittar en rad: 19: if (mysql_num_rows($result) == 1) { 20: session_start(); 21: $_SESSION['login'] = "1"; 22: $_SESSION['id'] = $id; 23: $_SESSION['username'] = $username; 24: $_SESSION['password'] = $password; 25: header('location:login/'); 26: } else { 27: 28: include 'header.php'; 29: echo "<div id='rnav'><h3>Error</h3></div>"; 30: echo "<div id='rcontent'>"; 31: echo "<p>Wrong password or username</p>"; 32: echo "</div>"; 33: echo "</div>"; 34: include 'left.php'; 35: include 'footer.php'; 36: } 37: ?>
|
|
|
|
|
| Till toppen på sidan |
|
PaulMcShit
Medlem i: 567 dagar
Status: Offline
#722229
|
Skrivet: 2012-04-03 18:55
Ämne:
|
|
|
Du har ju redan skapat en session av id på rad 22.
$_SESSION['id'] = $id; |
|
|
|
| Till toppen på sidan |
|
Fopo
Medlem i: 1922 dagar Från: Göteborg
Status: Offline
#722232
|
Skrivet: 2012-04-03 20:55
Ämne:
|
|
|
| Jo men sessensionen innehåller inget id eftersom $id det ingenstans framgår vilket id som tillhör användaren som precis loggat in... |
|
|
|
| Till toppen på sidan |
|
Extreem_
Medlem i: 2465 dagar
Status: Offline
#722233
|
Skrivet: 2012-04-03 21:48
Ämne:
|
|
|
| Fopo skrev: |
| Jo men sessensionen innehåller inget id eftersom $id det ingenstans framgår vilket id som tillhör användaren som precis loggat in... |
$id sätts på rad 9. Vill du hämta id från databasen använd $row['id'] i loopen istället. |
|
|
|
| Till toppen på sidan |
|
marabou


Medlem i: 3149 dagar Från: Sveriges framsida
Status: Offline
#722237
|
Skrivet: 2012-04-03 22:16
Ämne:
|
|
|
Vad kommer $_POST['id'] ifrån ? HAr du ett id-fält i formuläret? Annars har den ju inte där att göra.
Förmodligen vill du göra som Extreem_ skriver och använda $row['id'];
Sen har jag bara en synpunkt. Om användarnamn och lösenord inte finns så kommer ingenting att hända, eftersom if-satsen på rad 19 bara körs om det kommer en rad från databasen (while-loopen på rad 16). Alltså kommer inte else på rad 26 heller att köras. Du har vänt på if (mysql_num_rows) och while (mysql_fetch_assoc).
Sen bör du säkra lösenorden genom att hasha dem (www.phpportalen.net/viewtopic.php?t=72202) |
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
Wedge


Medlem i: 3919 dagar Från: Järfälla
Status: Offline
#722238
|
Skrivet: 2012-04-03 22:48
Ämne:
|
|
|
| En annan grej som får underkänt är att användarinput går direkt in i queryn. Inte alls svårt att hacka sig in där. |
|
|
_________________ Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber |
| Till toppen på sidan |
|
Fopo
Medlem i: 1922 dagar Från: Göteborg
Status: Offline
#722239
|
Skrivet: 2012-04-03 23:24
Ämne:
|
|
|
| Extreem_ skrev: |
| Fopo skrev: |
| Jo men sessensionen innehåller inget id eftersom $id det ingenstans framgår vilket id som tillhör användaren som precis loggat in... |
$id sätts på rad 9. Vill du hämta id från databasen använd $row['id'] i loopen istället. |
Jag prövade att ersätta "$id=$_POST['id']" med detta "$id=$row['id'];"
och jag misstänker att det inte var det du menade... Har prövat mig fram en stund och försökt lägga in $row['id'] i "while($row = mysql_fetch_assoc($result))" på rad 16 men det går inge bra!
Vad gör jag fel? |
|
|
|
| Till toppen på sidan |
|
marabou


Medlem i: 3149 dagar Från: Sveriges framsida
Status: Offline
#722240
|
Skrivet: 2012-04-03 23:50
Ämne:
|
|
|
Byt ut $id mot $row['id'] på rad 22, och sedan tar du bort rad 9.
Detta förutsätter förstås att det finns ett fält i databasen som heter id |
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
Fopo
Medlem i: 1922 dagar Från: Göteborg
Status: Offline
#722255
|
Skrivet: 2012-04-04 11:42
Ämne:
|
|
|
| marabou skrev: |
Byt ut $id mot $row['id'] på rad 22, och sedan tar du bort rad 9.
Detta förutsätter förstås att det finns ett fält i databasen som heter id |
Jag tackar jag tackar!! Tack så hemskt mycket Nu fungerar det, najjs!! |
|
|
|
| Till toppen på sidan |
|
|