Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Sesje zalogowanego użytkownika
Forum PHP.pl > Forum > Przedszkole
Croos22
Witam czy mógłby mi ktoś pomóc przypisać id zalogowanego użytkownika bo już nie mam siły. Męczę się kilka godzin z tym.

Zależy mi aby w 67 linii wyrzuciło id w odsyłaczu.

  1. <?php
  2. session_register("zalogowany");
  3.  
  4. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  5.  
  6.  
  7.  
  8.  
  9. include ('includes/config_includes.php');
  10.  
  11. function ShowLogin($komunikat=""){
  12. echo "$komunikat<br>";
  13. echo "<form action='index.php' method=post>";
  14. echo "Login: <input type=text name=login><br>";
  15. echo "Hasło: <input type=text name=haslo><br>";
  16. echo "<input type=submit value='Zaloguj!'>";
  17. echo "</form>";
  18. echo "Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
  19. }
  20.  
  21. ?>
  22. <!DOCTYPE html
  23. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  24. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  25. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  26. <head>
  27. <title>Strona główna</title>
  28. </head>
  29. <body>
  30. <?php
  31. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
  32. if(!$_SESSION["zalogowany"]){
  33.  
  34. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  35.  
  36. $login = mysql_real_escape_string($_POST["login"]);
  37. $pass = sha1($_POST["haslo"]);
  38.  
  39.  
  40. $query = mysql_query("SELECT * FROM users WHERE user_id, user_name = '{$login}' AND user_password = '{$pass}'");
  41.  
  42. if(mysql_num_rows( $query )) {
  43.  
  44.  
  45. $_SESSION["zalogowany"]=true;
  46. $results = mysql_fetch_assoc( $query );
  47. $_SESSION["user_name"] = $results[ 'user_name' ];
  48. $_SESSION["user_id"] = $results[ 'user_id' ];
  49. header('Location: index.php');
  50. }
  51. else {
  52. echo ShowLogin("Podano złe dane!!!");
  53. }
  54. }
  55. else {
  56.  
  57. ShowLogin();
  58. }
  59. }
  60.  
  61. else{
  62. ?>
  63. <?php
  64. $user_id = $_SESSION['user_id'];
  65. $user_name = $_SESSION['user_name'];
  66. echo 'Witaj <a href="?id='.$user_id.'">'.$user_name.' </a>';
  67. ?> Zalogowałeś się pomyślnie!<br> <br><a href='index.php?wyloguj=tak'>wyloguj się</a><br><br>
  68.  
  69.  
  70. <?php
  71. }
  72. ?>
  73. </body>
  74. </html>
  75. <?php mysql_close(); ?>
Louner
Nie widzę, żebyś gdziekolwiek przypisywał cokolwiek pod $user_id. Wstaw tam może po prostu $_SESSION["user_id"];, tzn:

  1. echo 'Witaj <a href="?id='.$_SESSION['user_id'].'">'.$user_name.' </a>';
poli25
po pierwsze masz błąd w zapytaniu sql SELECT * FROM users WHERE user_id, user_name = nie mozesz miec jednoczesnie 2
albo user id=''
albo username=''
Croos22
Dałem $user_id = $_SESSION['user_id']; i dalej nic.

A co do zapytania to wydawało mi się złe czyli trzeba nowym zapytaniem wyciągać dane?
poli25
zalezy co masz w bazie albo user_name albo user_id wydaje mi sie ze ma byc user_name bo potem masz $login winksmiley.jpg
Croos22
Ale mi jest potrzebne i user_id i user_name. Mam problem z przypisaniem users_id.
poli25
ale jesli przypiszesz username i password to wiecej chyba nie trzeba Ci danych by wyciagnac id uzytkownika chyba ze uzytkownicy (nazwy) mogą sie potarzac?
Croos22
<a href="?id='.$user_id.'">'.$user_name.' </a>
Gdzie <a href="(user_id)">(user_name)</a>

Mam jeszcze kilka pomysłów aby to wykorzystać ale na tym głównie mi zależy.
poli25
<?php
session_start();

include 'polaczenia/connect_mysql.php';


?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<title>Strona główna</title>
</head>
<body>
<?php

if($_GET['wyloguj']=='tak')

{
$_SESSION['zalogowany']=0;
echo "Zostałeś wylogowany z serwisu";
}




//echo $_SESSION['zalogowany'];
if( isset($_POST['submit']) && $_SESSION['zalogowany']==0)

{


$login = $_POST['login'];
$pass = $_POST['haslo'];



if($login && $pass)
{


$query=mysql_query("SELECT * FROM users WHERE user_name = '$login' AND user_password = '$pass'");


// $ile=mysql_num_rows($query);
// echo $ile;
if(mysql_num_rows($query)>0)
{


echo $_SESSION['zalogowany']=1;
$results = mysql_fetch_assoc( $query );
$_SESSION['user_name'] = $results[ 'user_name' ];
$_SESSION['user_id'] = $results[ 'user_id' ];
// echo $_SESSION['user_id'];

}
else
echo ShowLogin("Podano złe dane!!!");

}
else echo "Wpisz login i hasło";

}




if(($_SESSION['zalogowany'])==1)
{
$user_name = $_SESSION['user_name'];
echo 'Witaj <a href="?id='.$_SESSION['user_id'].'">'.$user_name.' </a>';
echo" Zalogowałeś się pomyślnie!<br> <br><a href='index.php?wyloguj=tak'>wyloguj się</a><br><br>";
}

?>

<html>
<?php
if($_SESSION['zalogowany']==0 && $_GET['wyloguj']=='tak')
{
echo"
<form action='index.php' method='post'>
Login: <input type='text' name='login'><br>
Hasło: <input type='text' name='haslo'><br>
<input type='submit' name='submit' value='Zaloguj!'>
</form>
Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
}

?>


spróbuj tak

p.s. 13.11.2010 zamiast
if($_SESSION['zalogowany']==0 && $_GET['wyloguj']=='tak')
ma być
if($_SESSION['zalogowany']==0 || $_GET['wyloguj']=='tak')
przepraszam za niedopatrzene winksmiley.jpg
Croos22
hmm... A czy można by wyciągnąć ponownie selektem user_id z tabeli users?
poli25
ale po co questionmark.gif user_id jest wyciagany i jest w sesji
Croos22
A no po to ponieważ chce mieć użytkowników po ich unikalnych identyfikatorach np. users.php?id=1. A po co w sesji? Dlatego, że mają to być dane zalogowanego użytkownika.
poli25
no ale to przeciez jak chodzi o logowanie uzytkownikow to wlasnie sesje mi przychodza do głowy i tak masz wlasnie zrobione winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.