webForumDet fria alternativet

Konto.php som fylls med info

2 svar · 348 visningar · startad av Tulork

TulorkMedlem sedan aug. 2004903 inlägg
#1

Hej igen, jag hoppas ni inte blir arga för att jag postar så mkt :r

Det är så här att när en person loggar in, kommer han till sitt egna konto.php som fylls med information från databasen..men jag kommer inte riktigt underfund med hur jag ska göra för att veta vems konto den ska hämta ifrån... än så länge, så här på test stadiet vill vi bara hämta användare och namn, så här långt har jag kommet

konto.php

 <?php
session_start();

// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}

include "conn.php"; // Databasanslutningen

// Performing SQL query
$query = 'SELECT här ska den hämta namn och användare';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<p>Den inloggade är:$_SESSION<p><br>";

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo "\t\t<td>$col_value</td>\n";
   }
   echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);
?>

inloggnings sidan index.php ser ut så här

<?php
session_start(); // Alltid överst på sidan

include "conn.php"; // Databasanslutningen

// Inloggning
if (isset($_POST['submit'])){

  $_POST = db_escape($_POST);
  
  $sql = "SELECT id FROM members
         WHERE user='{$_POST['user']}'
         AND pass='{$_POST['passwd']}'";
  $result = mysql_query($sql);
  
  // Hittades inte användarnamn och lösenord
  // skicka till formulär med felmeddelande
  if (mysql_num_rows($result) == 0){
    header("Location: index.php?badlogin=");
    exit;
  }
  
  // Sätt sessionen med unikt index
  $_SESSION['sess_id'] = mysql_result($result, 0, 'id');
  $_SESSION['sess_user'] = $_POST['user'];
  header("Location: admin.php");
  exit;

}

// Utloggning
if (isset($_GET['logout'])){
  session_unset();
  session_destroy();
  header("Location: index.php");
  exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
  content="text/html; charset=iso-8859-1">
<title>Index</title>
</head>
<body>
<?php

// Om inte inloggad visa formulär, annars logga ut-länk
if (!isset($_SESSION['sess_user'])){

  echo "<h3>Logga in</h3>\n";
  
  // Visa felmeddelande vid felaktig inloggning
  if (isset($_GET['badlogin'])){
    echo "Fel användarnamn eller lösenord!<br>\n";
    echo "Försök igen!\n";
  }
  
?>
<form action="index.php" method="post">
Användarnamn:<br>
<input type="text" name="user"><br>
Lösenord:<br>
<input type="password" name="passwd"><br>
<input type="submit" name="submit" value="Logga in">
</form>

<?php

} else {

  echo "<a href=\"index.php?logout=\">Logga ut</a>\n";

}

?>
</body>
</html>

Jag vet att den skickar den inloggade till admin.php, det ska vara konto.php..admin.php ska separeras ut senare.

Alltså, hur gör jag för att på konto.php ta reda på vem som loggat in, och beroende av det hämta hans info i databasen och göra det dynamiskt så att oavsett vem som loggar in, hämtar den rätt info i databasen.

PeddaMedlem sedan juni 20006 032 inlägg
#2

Du har ju användarens idnr i en session, använd den

$query = "SELECT * FROM members WHERE id = ".$_SESSION['sess_id']."";
TulorkMedlem sedan aug. 2004903 inlägg
#3

funkar underbart, det var den "gemensamma" nämnaren jag var ute efter..allt funkar nu, den återger den informationen jag ber om Endas om jag har en session igång.

Tack igen för ett underbart svar!

129 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)