![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.04.2011 Ostrzeżenie: (0%)
|
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 !'; } ?> Ten post edytował rafcio1410 18.04.2011, 12:12:10 |
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk |
Proszę wstawić bbcode
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%)
|
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
W index.php: |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.04.2011 Ostrzeżenie: (0%)
|
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. Ten post edytował rafcio1410 18.04.2011, 17:15:53 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 9.03.2010 Ostrzeżenie: (0%)
|
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 (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.04.2011 Ostrzeżenie: (0%)
|
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? |
|
|
|
Post
#7
|
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
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. |
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 18:08 |