![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 16.07.2003 Skąd: ... Ostrzeżenie: (0%) ![]() ![]() |
Mam problem ze sesjami. Szukałem na forum, ale coś nie znalazłem
![]() Chodzi mi dokładnie o logowanie w sesjach. Gdy się wpisze zły login (oba pola lub tylko login), zamiast pokazać tekst i zrobić funkcje (pokaże logowanie), nic się nie pokazuje w to miejsce. Zaś gdy się dobrze wpisze, zaloguje się to inni nie mogą się zalogować, lub jak się zalogują mimo to są zalogowani jako tego, którego pierwszy się zalogował. Skrypt wygląda tak: index.php [php:1:3c3e12e42f] <?php session_start(); session_unset(); session_destroy(); session_start(); ?> <?php $nazwa="Seiroth"; include("config.php"); ?> <head> <title><?=$nazwa?></title> <link rel=stylesheet href=style.css> </head> <body> <center> <font size=3><b><?=$nazwa?> v. 0.1 BETA</b></font><br><br> <table> <tr><td width=200 style="border-right: solid #0066cc 1px;" valign=top align=left> <center><b>Witaj !</b><br></center> Witaj na wyspie otoczonej pełnoma tajemnicami! Zaloguj się by wej¶ć w ¶rodek wyspy, do miasta <?=$nazwa?>, albo się zarejestruj. </td><td width=200 valign=top align=center> <b>Zaloguj się</b><br><br><center> <table> <?php function logowanie() { print "<form method="POST"> <tr><td>Nick:</td><td><input type="text" name="login"></td></tr> <tr><td>Hasło:</td><td><input type="password" name="haslo"></td></tr> <tr><td colspan=2><center><input type="submit" name="submit" value="Zaloguj"></td></tr> </form>"; } if(!isset($submit)) { logowanie(); } else { $db=mysql_connect("localhost", "slimaczek", "y7h5n3") or die("Nie można się poł±czyć z serwerem"); mysql_select_db("slimaczek_test", $db) or die("Problem z ł±czeniem się z baz± danych."); $sql="SELECT * FROM players WHERE user = '$login' and pass = '$pass'"; $result=mysql_query($sql); while($row = mysql_fetch_array($result)) { $ruser=$row["user"]; $rpass=$row["pass"]; if(($haslo != $rpass) || ($login != $ruser)) { echo("Wpisałeś zły login ilub hasło!"); } else { $_SESSION["login"]="user"; $_SESSION["haslo"]="pass"; header("Location: stats.php"); echo("Witamy, <b>$user</b>! <a href=stats.php?php_sessid=$sess_id>WejdĽ do miasta.</a>"); } } } ?> </table></td></tr></table><br> <a href=register.php>Zarejestruj się</a> | <A href=index.php>Zaloguj się</a> | <a href=mailto:slimak80@wp.pl>Kontakt</a><br> <?php $numplayers = mysql_num_rows(mysql_query("select * from players")); print "Zarejestrowanych jest już <b>$numplayers</b> ludzi!"; ?> [/php:1:3c3e12e42f] header.php (każdy plik do którego można wejść jak się zaloguje, includuje na samym początku ten plik): [php:1:3c3e12e42f] <?php session_start(); include("config.php"); if (!isset($_SESSION["login"])) { header("Location: index.php"); exit(); } $user=$_SESSION['login']; $pass=$_SESSION['haslo']; ?> <?php $nazwa="Seiroth"; ?> <?php print "<head>"; print "<title>$nazwa: $title</title>"; print "<link rel=stylesheet href=style.css>"; print "</head>"; print "<meta http-equiv="Content-Language" content="pl">"; print "<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">"; $stat = mysql_fetch_array(mysql_query("select * from players where user=$user and pass=$pass")); $ct = time(); mysql_query("update players set lpv=$ct where id=$stat[id]"); ?> <center> <table width=600 cellpadding=0 cellspacing=0 class=td> <?php print "<tr><td colspan=3 align=center bgcolor=0066cc style="border-bottom: solid black 1px;"><font color=white><b>$nazwa - Wyspa pełna niespodzianek</b></u></td></tr>"; ?> <tr><td width=110 valign=top style="border-right: solid black 1px;"> <?php print "<center><b><u>$stat[user]</b></u> ($stat[id])</center><br>"; print "<b>Level</b>: $stat[level]<br>"; $expn = (($stat[level] * 50) + ($stat[level] * 15)); print "<b>EXP</b>: $stat[exp]/$expn<br>"; print "<b>HP</b>: $stat[hp]/$stat[max_hp]<br>"; print "<b>Energia</b>: $stat[energy]/$stat[max_energy]<br><br>"; print "<b>Złoto</b>: $stat[cash]<br><br>"; ?> <br> - <a href=stats.php?php_sessid=<?=$sess_id?>>Statystyki</a><br> <?php $numlog = mysql_num_rows(mysql_query("select * from log where unread='F' and owner=$stat[id]")); print "- <a href=log.php>Logi</a> [$numlog]<br>"; ?> - <a href=equip.php?php_sessid=<?=$sess_id?>>Ekwipunek</a><br> <br> - <a href=city.php?php_sessid=<?=$sess_id?>>Miasto</a><br> - <a href=hospital.php?php_sessid=<?=$sess_id?>>Ołtarz</a><br> - <a href=battle.php>Walka</a><br> - <a href=mine.php>Kopalnia</a><br> <br> - <a href=forums.php?view=topics>Ogłoszenia</a><br> - <a href=chat.php>Chat</a><br> - <a href=ranking.php>Ranking</a><br> - <a href=memberlist.php>Istoty</a> <br> <?php if ($stat[rank] == Admin) { print "- <a href=admin.php>Admin</a><br>"; } ?> - <a href=wyloguj.php>Wyloguj</a> </td><td valign=top width=400> [/php:1:3c3e12e42f] W config.php zawarte jest łączenie z bazą danych. -------------------- Gry akcji rulez! Inne też rulez:P
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
1. Na początek w index.php session_start() na początek pliku .
2. php Początkujacy --> Skrypty -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 16.07.2003 Skąd: ... Ostrzeżenie: (0%) ![]() ![]() |
A musi być na samym początku? bo ja mam troszeczkę linijek niżej...
-------------------- Gry akcji rulez! Inne też rulez:P
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat A musi być na samym początku? bo ja mam troszeczkę linijek niżej...
Sprawdź i przekonaj sie... ![]() -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 16.07.2003 Skąd: ... Ostrzeżenie: (0%) ![]() ![]() |
Mimo to nic
![]() -------------------- edit -------------------- Jednak jest całkiem inaczej ![]() -------------------- Gry akcji rulez! Inne też rulez:P
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Tzn. dałeś session_start na poczatek?
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 16.07.2003 Skąd: ... Ostrzeżenie: (0%) ![]() ![]() |
Tak, w obu plikach skrypt zaczyna się tak:
[php:1:214d4c91a5] <?php session_start(); # dalsza część ?> [/php:1:214d4c91a5] -------------------- Gry akcji rulez! Inne też rulez:P
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Po prostu przy logowaniu (o ile dane są poprawne) niszcz starą sesję i zapisuj nową.
[php:1:ff9d9cdbde]<?php session_unset(); session_destroy(); session_start(); $_SESSION["login"]="login"; // ... ?>[/php:1:ff9d9cdbde] -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 16.07.2003 Skąd: ... Ostrzeżenie: (0%) ![]() ![]() |
Hm, ciągle nie działa :cry:
(wstawiłem to na sam początek strony, tuż po sessionstart) -------------------- Gry akcji rulez! Inne też rulez:P
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Cytat $ruser=$row["user"];
$rpass=$row["pass"]; if(($haslo != $pass) || ($login != $user)) Na mój gust to problem tkwi w tym, że nie korzystasz z user i rpass ale z user i pass - mogę się mylić |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 16.07.2003 Skąd: ... Ostrzeżenie: (0%) ![]() ![]() |
Mimo to nic nie pomogło
![]() -------------------- Gry akcji rulez! Inne też rulez:P
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
A może problem tkwi w tym, że w formularzu masz pole o nazwie $haslo a potem odwołujesz się do tego pola jako $pass
![]() |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 16.07.2003 Skąd: ... Ostrzeżenie: (0%) ![]() ![]() |
$user i $pass są przemienione z $login i $haslo do następnych sesji...
$login i $haslo to zmienne z formularza... Spróbuje wykasować zmienne z sesji z wcześniejszego formularza, choć już stosowałem session_unset i session_destroy ... =========== EDIT ============= Nic nie daje, bo i tak by nic to nie dało ![]() -------------------- Gry akcji rulez! Inne też rulez:P
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 16.07.2003 Skąd: ... Ostrzeżenie: (0%) ![]() ![]() |
Doigrałem się z tym, i to naprawiłem. Zrobiłem proste błędy... A tak pozatym, temat możecie zamknąćusunąć.
-------------------- Gry akcji rulez! Inne też rulez:P
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
slimaczek to napisz chociaż co było nie tak...nie jestem jestem zbyt zaawansowany w te klocki i chętnie bym poznał jakie można błędy popełnić...poza tym wszyscy chcemy zobaczyć koto był najbliżej...
pozdro |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 16.07.2003 Skąd: ... Ostrzeżenie: (0%) ![]() ![]() |
index.php
[php:1:827ae6b94c] <?php session_start(); ?> <?php $nazwa="Sethiria"; ?> <html> <head> <title><?=$nazwa?></title> <link rel=stylesheet href=styl/<?=$id?>/style.css> </head> <body> <center> <font size=3><b><?=$nazwa?> v. 0.1</b></font><br><br> <table> <tr><td width=200 style="border-right: solid #0066cc 1px;" valign=top align=left> <center><b>Witaj !</b><br></center> Witaj na wyspie otoczonej pełnoma tajemnicami! Zaloguj się by wej¶ć w ¶rodek wyspy, do miasta <?=$nazwa?>, albo się zarejestruj. </td><td width=200 valign=top align=center> <b>Zaloguj się</b><br><br><center> <table> <?php function logowanie() { print "<form method="POST"> <tr><td>Nick:</td><td><input type="text" name="login"></td></tr> <tr><td>Hasło:</td><td><input type="password" name="haslo"></td></tr> <tr><td colspan=2><center><input type="submit" name="submit" value="Zaloguj"></td></tr> </form>"; } if(!isset($submit)) { logowanie(); } else { $db=mysql_connect($sql_host, $sql_user, $sql_pass) or die("Nie można się poł±czyć z serwerem"); mysql_select_db($sql_base, $db) or die("Problem z ł±czeniem się z baz± danych ![]() $sql="SELECT * FROM players WHERE user = '$login'"; $result=mysql_query($sql); while($row = mysql_fetch_array($result)) { $rpass=$row["pass"]; $ruser=$row["user"]; if (($haslo != $rpass) || ($login != $ruser)) { echo("Wpisałe¶ zły login ilub hasło!"); logowanie(); } else { $_SESSION["login"] = $login; Header("Location: stats.php"); exit(); } } } ?></table></td></tr></table><br> <a href=register.php>Zarejestruj się</a> | <A href=index.php>Zaloguj się</a> | <a href=mailto:slimak80@wp.pl>Kontakt</a><br> <?php #$numplayers = mysql_num_rows(mysql_query("select * from players")); print "Zarejestrowanych jest już <b>$numplayers</b> ludzi!"; ?> </body></html> [/php:1:827ae6b94c] header.php (każdy plik do którego można wejść tylko po zalogowaniu, inkluduje na samym początku ten plik) [php:1:827ae6b94c] <?php session_start(); include("config.php"); if (!isset($_SESSION["login"])) { print " <html> <head> <title>Sethiria - Sesja Wygasła</title> <link rel=stylesheet href=styl/1/style.css> </head><body> <div align=center> <table width=400 height=100 cellpadding=0 cellspacing=0 class=td> <tr><td bgcolor=#8b8b8b valign=top><center><br><br> Sesja wygasła, zaloguj się jeszcze raz. <br> Możliwe, że weszłe¶ tu, ale się wcale nie zalogowałe¶. <br> (Jeżeli chczesz się zalogować, <a href=index.php>naci¶nij tutaj</a>.)<br><br> <A href=index.php>Zaloguj się</a> | <a href=mailto:slimak80@wp.pl>Kontakt</a><br> </center></td></tr></table> </body></html> "; exit(); } $nazwa="Sethiria"; print "<html>"; print "<head>"; print "<title>$nazwa: $title</title>"; print "<link rel=stylesheet href=styl/$id/style.css>"; print "</head>"; print "<meta http-equiv="Content-Language" content="pl">"; print "<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">"; $stat = mysql_fetch_array(mysql_query("select * from players where user='$_SESSION[login]'")); $ct = time(); mysql_query("update players set lpv=$ct where id=$stat[id]"); ?> <center> <table width=600 cellpadding=0 cellspacing=0 class=td> <?php print "<tr><td colspan=3 align=center bgcolor=0066cc style="border-bottom: solid black 1px;"> <font color=white><b>¦wiat $nazwa, miasto Leethar</b></u><br> </td></tr>"; ?> <tr><td bgcolor=#808080 width=125 valign=top style="border-right: solid black 1px;"> <?php print "<center><b><u>$stat[user]</b></u> ($stat[id])</center><br>"; print "<b>Poziom</b>: $stat[level]<br>"; print "<b>Lv. magii</b>: $stat[levmag]<br>"; print "<b>AP</b>: $stat[ap] <a href=ap.php>(wymień)</a><br>"; $expn = (($stat[level] * 50) + ($stat[level] * 15)); print "<b>EXP</b>: $stat[exp]/$expn<br>"; print "<b>HP</b>: $stat[hp]/$stat[max_hp]<br>"; print "<b>Energia</b>: $stat[energy]/$stat[max_energy]<br><br>"; print "<b>Złoto</b>: $stat[cash]<br>"; print "<b>Złoto (bank)</b>: $stat[bank]<br>"; ?> <hr color=black size=1> - <a href=stats.php>Statystyki</a><br> <?php $numlog = mysql_num_rows(mysql_query("select * from log where unread='F' and owner=$stat[id]")); print "- <a href=log.php>Logi</a> [$numlog]<br>"; ?> - <a href=equip.php>Ekwipunek</a><br> <br> - <a href=city.php>Miasto</a><br> - <a href=hospital.php>Ołtarz</a><br> - <a href=battle.php>Walka</a><br> - <a href=mine.php>Kopalnia</a><br> - <a href=bank.php>Skarbiec</a><br> <br> - <a href=chat.php>Chat</a><br> - <a href=ranking.php>Ranking</a><br> - <a href=memberlist.php>Istoty</a><br> <br> <?php if ($stat[rank] == Bóg) { print "- <a href=admin.php>Admin</a><br>"; } ?> - <a href=wyloguj.php>Wyloguj</a> </td><td bgcolor=#8b8b8b valign=top> [/php:1:827ae6b94c] Dokładnie tak jest zrobione i działa... Jeden z błędów, był taki że... [php:1:827ae6b94c] <?php $stat = mysql_fetch_array(mysql_query("select * from players where user='$_SESSION[login]'")); ?> [/php:1:827ae6b94c] między zmienną nie było znaków "'". Nie wiem dokładnie co poprawiłem, bo w miedzyczasie cos pogrzebałem ^^ -------------------- Gry akcji rulez! Inne też rulez:P
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 22.06.2025 - 14:23 |