Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zalogowany jako:
Forum PHP.pl > Forum > PHP
rafcio1410
Witam,
Nazywam sie Rafal i jestem nowy na forum. Jezyk php znam srednio wiec zarejestrowalem sie na waszym forum w celu doskonalenia swojej wiedzy, a zarazem uzyskania odpowiedzi na niektore tematy od was.

W tym temacie moj problem polega na tym, ze nie wiem jak zrobic po zalogowaniu aby wyswietlal sie napis "zalogowany jako: i name usera w tym miejscu."
Kod dziala tak ze po poprawnym zalogowaniu dalem header na index.php z msg==2 i chcialbym zeby w tym miejscu zostal wyswietlony ten napis.Dacie jakies wskazowki jak to sie robi?

kod z login.php :
Kod
<?php
session_start();

//Połączenie z bazą
if (@!include('connect.php')) die("Wystąpił błąd, spróbuj później");

//Sprawdzam czy jest ktoś zarejestrowany
$sql = mysql_query("SHOW TABLES LIKE 'users'");    
if(!mysql_num_rows($sql) == 0)
{
//Sprawdzam czy użytkownik próbuje się zalogowac
if ($_POST['zaloguj'])
    {
        if (empty($_POST['log']) || empty($_POST['pass']))
            {
                $msg = "Nie wypełniłeś wszystkich pól !";
            }
        else
            {        
                $log = mysql_real_escape_string(htmlspecialchars( trim($_POST['log']) ));
                $pass = sha1( mysql_real_escape_string (htmlspecialchars( trim($_POST['pass']) ) ));
                
                //Sprawdzam czy dane użytkownika pasują do tych z rejestracji
                $sql = mysql_query("SELECT count(*) as ile FROM `users` WHERE name='$log' and hashed_psw='$pass'");        
                $row = mysql_fetch_array($sql);
                if ($row['ile'] == 1)
                    {
                        $msg = 'Za 5 sekund zostaniesz przeniesiony do panelu sterowania';
                        $_SESSION['id'] = session_id();
                        $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];                                                 
                        header("refresh:3;url=index.php?msg=2");
                    }
                else
                    {
                        $msg = 'Wpisano zły login lub hasło';
                    }
        
                
            }
    }
}
else
{
    $msg = 'Musisz się zarejestrować przed zalogowaniem !';
}

    
?>
wookieb
Proszę wstawić bbcode
matino
Po prostu dodaj username do sesji i wyświetl w index.php.
Oczywiście musisz trochę zmodyfikować zapytanie, żeby nie zwracało count(*) tylko name, a zliczanie już sobie zrobisz funkcją count w skrypcie
  1. $_SESSION['id'] = session_id();
  2. $_SESSION['name'] = $row['name'];
  3. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  4. header("refresh:3;url=index.php?msg=2");

W index.php:
  1. echo 'Zalogowany jako' . $_SESSION['name'];
rafcio1410
Dzięki wielkie, właśnie o to mi chodziło. Pozdrawiam.

a teraz inaczej. Jak zrobic aby zamiast tabelki do logowania na stronie glownej pojawialo sie juz zapamietane logowanie? bo robiac to przez ?msg wiadomo ze pokaze sie to tylko raz a w momencie jak odswieze stronke laduje sie nastronie glownej znow tabelka do logowania.
filip11
Tutaj wydaje mi się, że jak już zapamiętasz zalogowana osobę, to znaczy albo ustawić ciastko odpowiednie, albo sesje i jej zmienną i wtedy na wyświetlanie tabelki z logowaniem dajesz warunek w zależności czy to ciastko/zmienna sesji jest ustawiona to albo wyświetla się tabelka, albo zapamiętane logowanie coś takiego:

Kod
<?php if(isset($_SESSION['id'])): ?>

<!--   ZAPAMIĘTANE DANE  -->

<?php else: ?>

<!-- TABELKA Z LOGOWANIEM -->
<?php endif;?>



Taki tylko poglądowy przykład smile.gif
rafcio1410
filip nie wiem czy dobrze zrozumialem ale czy tak mialem przerobic kod?
Kod
<?php
session_start();

//Połączenie z bazą
if (@!include('connect.php')) die("Wystąpił błąd, spróbuj później");

//Sprawdzam czy jest ktoś zarejestrowany
$sql = mysql_query("SHOW TABLES LIKE 'users'");    
if(!mysql_num_rows($sql) == 0)
{
//Sprawdzam czy użytkownik próbuje się zalogowac
if ($_POST['zaloguj'])
    {
        if (empty($_POST['log']) || empty($_POST['pass']))
            {
                $msg = "Nie wypełniłeś wszystkich pól !";
          
            }
        else
            {        
                $log = mysql_real_escape_string(htmlspecialchars( trim($_POST['log']) ));
                $pass = sha1( mysql_real_escape_string (htmlspecialchars( trim($_POST['pass']) ) ));
                
                //Sprawdzam czy dane użytkownika pasują do tych z rejestracji
                $sql = mysql_query("SELECT count(*) as ile FROM `users` WHERE name='$log' and hashed_psw='$pass'");        
                $row = mysql_fetch_array($sql);
                if ($row['ile'] == 1)
                    {
                        $sql2 = mysql_query("SELECT * FROM `users` WHERE name='$log' and hashed_psw='$pass'");        
                        $dane = mysql_fetch_array($sql2);                      
                        $_SESSION['id'] = session_id();
                        $_SESSION['name'] = $dane['name'];
                        $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];                                                 
                                                
                    }
                else
                    {
                        $msg = 'Wpisano zły login lub hasło';
                    }
        
                
            }
    }
}
else
{
    $msg = 'Musisz się zarejestrować przed zalogowaniem !';
}

    
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
    <title></title>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="Keywords" content="wyraz1, wyraz2, wyraz3..." />
    <meta name="description" content="Opis strony" />

    
</head>

<body>

<?php echo "<font color=red>";  if (isset($msg)) echo $msg; echo "</font>"; ?>
  <?php if(isset($_SESSION['id'])){
    
    echo $_SESSION['name'];
    }else {
    
      
      
  echo'<form id="login" action="" method="post">
                    
        <div><label for="log">Login:</label><input type="text" name="log" id="log" maxlength="35"/></div>
        <div><label for="pass">Hasło:</label><input type="password" name="pass" id="pass" maxlength="35"/></div>
        <input type="submit" id="zaloguj" name="zaloguj" value="Zaloguj" />
        <a id="register" href="register.php">Zarejestruj się</a>
        <a id="remind" href="przypomnij.php">Zapomniałem hasła</a>
        
  </form>';
}
    ?>
    

    

</body>

</html>



Wszystko na stronie dziala poprawnie, z tym ze bedzie pokazywalo login uzytkownika az do momentu kiedy nie wcisne wyloguj, czyli nie zakoncze sesji. Zatem mam pytanie jak zrobic aby po okreslonym czasie bezruchu nastepowalo wylogowywanie samoistnie?
Ociu
Kolega wookieb prosił aby poprawił swój post i zaczął używać bbCode. Niestety tego nie robisz.

Zamykam temat, aż nie poprawisz swoich postów.
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.