![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam skrypt logowania we flashu wykorzystujący php mysql i actionscript. Mój problem polega na tym ze nie mogę w polu dynamic text wyświetlić daty ostatniego logowania, którą tworze w sesji. Oto skrypt php:
Ten post edytował piotrek x 15.03.2009, 23:10:47 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
1) bbcode
2) nie zwracasz nic z funkcji login 3) A ja już liczyłem ze coś z flashem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ten post edytował wookieb 15.03.2009, 22:49:16 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
A w AS mam :
Kod 1 kaltka stop(); _root.onEnterFrame = function() { if(this.getBytesLoaded() >= this.getBytesTotal()) { this.gotoAndStop('main'); this.onEnterFrame = undefined; } } 2 klatka loginButton.onRelease = function() { ooDane.load('user.php'); }; var ooDane=new LoadVars(); ooDane.onLoad = function(sukces) { if(sukces){ pt1.text=ooDane.login_data; }else{ pt1.text='Błąd importu danych'; }; }; stop(); i buton (też 2 klatka): on (release, keyPress "<Enter>") { if (userName.length>0 && userPassword.length>0) { myVars = new LoadVars(); myVars.username = userName.text myVars.pass = userPassword.text myVars.action = 'login'; myVars.sendAndLoad(php_file, myVars, 'POST'); myVars.onLoad = function() { if (!this.error && this.user>0) { _root.gotoAndStop('registered'); } else { _root.gotoAndStop('no_registered'); } userName.selectable = true; userPassword.selectable = true; loginButton.enabled = true; }; userName.selectable = false; userPassword.selectable = false; loginButton.enabled = false; } I w tym momencie wyświetla mi 'Błąd importu danych'. Gdy próbuje w którymś momencie php wysłać echo $login_data to albo nie mogę się zalogować albo nie działa... Jak przesłać $login_data? Przepraszam ze w 2 postach, ale mi się nie zmieściło... Ten post edytował piotrek x 15.03.2009, 23:52:08 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
W moim poprzednim poscie pisze ze zapomniales o returnie w funkcji login.
Flash jest ok. Ten post edytował wookieb 15.03.2009, 23:00:33 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
nawet jak na sztywno ustawie $login_data
(tak case wygląda)
nie mogę się wtedy zalogować, jakby nie rozpoznawał użytkownika Natomiast w tym przypadku wszystko działa jak należy, z wyjątkiem wyświetlania daty:
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Struktura danych dla loadVars to
Kod zmienna=wartosc&kolejna_zmienna=wartosc wiec brakuje ci & Poza tym jeszcze raz sprawdz co ci zwraca funkcja login. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
$HTTP_POST_VARS jest już dawno przestarzałe. Dziś używa się się $_POST.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
$HTTP_POST_VARS jest już dawno przestarzałe. Dziś używa się się $_POST. Ok poprawione. Zmieniłem trochę tą funkcje (nie wiem czy dobrze) żeby mi zwracało tą zmienną i teraz jest tak:
Jednak dalej mi nie działa, nie wykrywa użytkownika... dodatkowo zamieszczam case:
|
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
we flashu
Kod myVars.onLoad = function() { trace(unescape(this.toString())); if (!this.error && this.user>0) { _root.gotoAndStop('registered'); } else { _root.gotoAndStop('no_registered'); } userName.selectable = true; userPassword.selectable = true; loginButton.enabled = true; }; I swf'a testuj przez "Test movie" w programie Flash Zobaczysz co pokazuje ci ta strona i to nam wklej. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod "login_data=".$array['login_data'];
break; case "forget": $result = forget($_POST['email']); print $result; break; case "new_password": $result = new_password($_POST['username'],$_POST['email'],$_POST['answer']); print $result; break; } }?> &"pass=".$array['pass']&new_pass=$rand_string"; } // --- // decisional switch // --- if(isset($_POST["action"])) { switch($_POST["action"]) { case "register": $result = register($_POST['username'],$_POST['pass'],$_POST['email'],$_POST['question'],$_POST['answer']); print $result; break; case "login": $result = login($_POST['username'],$_POST['pass'],$_POST['login_data']); print "username= ".$array['username']&userQuestion=" . stripslashes($row['userQuestion']); } // --- // generate new password // --- function new_password($username,$email,$answer) { GLOBAL $dbc, $table; $username = trim($username); $email = trim($email); $answer = addslashes(trim($answer)); $query = mysql_query("SELECT * FROM $table WHERE userName = '$username' AND userMail = '$email' AND userAnswer = '$answer'"); if(mysql_num_rows($query) < 1) { return "error=wrong answer"; } $rand_string = ''; // --- // generating a random 8 chars lenght password // --- for($a=0;$a<7;$a ) { do { $newrand = chr(rand(0,256)); } while(!eregi("^[a-z0-9]$",$newrand)); $rand_string .= $newrand; } $pwd_to_insert = md5($rand_string); $new_query = mysql_query("UPDATE $table SET userPassword = '$pwd_to_insert' WHERE userName = '$username' AND userMail = '$email'"); if(!$new_query) { return "error=unable to update value"; } return "userName=$username&<? session_start(); require_once('sql/mysql_connect.php'); require_once('functions.php'); // --- // register new user // --- function register($username,$pass,$email,$question,$answer) { GLOBAL $dbc, $table; $username = trim($username); $pass = trim($pass); $email = trim($email); $question = addslashes(trim($question)); $answer = addslashes(trim($answer)); $validEmail = valid_email($email); $validName = valid_userName($username); $validPass = valid_password($pass); if(!$validName) return "error=invalid name"; if(!$validPass) return "error=invalid password"; if(!$validEmail) return "error=invalid email"; $pass = md5(trim($pass)); // all checks ok $query = @mysql_query("INSERT INTO $table (userName,userPassword,userMail,userQuestion,userAnswer) VALUES " ."('$username','$pass','$email','$question','$answer')"); if(!$query) { return "error=" . mysql_error(); } else { return "user=ok"; } } // --- // login, check user // --- function login($username,$pass,$login_data) { $now = '<b>'.date('d.m.Y').'</b> <i>'.date('H:i:s').'</i>'; if (isset($_SESSION['last'])) { $login_data = 'ostatnio logowales sie: '. $_SESSION['last']; $_SESSION['last'] = $now; } else { $_SESSION['last'] = $now; $login_data = 'nigdy sie nie logowales'; } session_write_close(); GLOBAL $dbc, $table; $username = trim($username); $pass = md5(trim($pass)); $query = mysql_query("SELECT * FROM $table WHERE userName = '$username' AND userPassword = '$pass'"); $array = mysql_fetch_array($query); $array['login_data'] = $login_data; return $array; } // --- // forget password // --- function forget($email) { GLOBAL $dbc, $table; $email = trim($email); $query = mysql_query("SELECT userName, userQuestion from $table WHERE userMail = '$email'"); if(mysql_num_rows($query)<1) { return "error=email not present into database"; } $row = mysql_fetch_array($query); return "userName=$row[userName]&onLoad=[type Function]&action=login&pass=test&username=test |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Jezeli to ci pokazuje wynik trace tzn ze masz zły składniowo plik .php. Wrzuć go całego na wklej.org i zapodaj link.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Zamień na chwile $_POST na $_GET i sprobuj wywoływac sobie funkcje logowania z adresu
http://localhost/twoj_skrypt.php?action=lo...;username=login itd. Zobacz czy działa ci wszystko i wtedy kombinuje we flashu. Poza tym WTF?
Najpierw masz $result a potem uzywasz $array. Przejrzyj WSZYSTKO dokładnie. Poza tym nie używa się juz eregi tylko preg_match Ten post edytował wookieb 19.03.2009, 16:28:43 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Najpierw masz $result a potem uzywasz $array. - Nie byłem pewien i próbowałem 2 wariantów ale nie działało... Ok już poprawione.Cytat Zamień na chwile $_POST na $_GET i sprobuj wywoływac sobie funkcje logowania z adresu http://localhost/twoj_skrypt.php?action=lo...;username=login itd. Zobacz czy działa ci wszystko i wtedy kombinuje we flashu. Nic z tego nie działa... :/ Ten skrypt jest pewną przeróbką znalezionego w internecie... problem w tym ze nie mogę go tak zmodyfikować żeby działał z tą datą pobieraną z sesji. Bez tej daty działa i mogę się zalogować. Już po pewnych modyfikacjach skrypt wygląda tak: http://wklej.org/id/66551/ i wszystko działa jak należy, można się zalogować. Mój skrypt prawdopodobnie będzie korzystał tylko z funkcji login, ale optymalizacje chciałem przeprowadzić dopiero po tym jak wszystko będzie działać. Dodaje też do pobrania dokument .fla http://www.easy-share.com/1904095676/user_auth.fla Ten post edytował piotrek x 19.03.2009, 17:02:52 |
|
|
![]()
Post
#17
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Boże cały temat i nikt z nas nie zauważył błędu logicznego :/
Nie przechowuje sie w sesji ostatniej daty zalogowania użytkownika tylko w bazie, bo przecież sesja ginie po jakimś czasie (no chyba, że ją ustawiłeś na parę lat...) Utwórz w tabeli pole last_login_time i tam zapisuj datę ostatniego zalogowania a następnie ją przekaż do flasha. |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Boże cały temat i nikt z nas nie zauważył błędu logicznego :/ Nie przechowuje sie w sesji ostatniej daty zalogowania użytkownika tylko w bazie, bo przecież sesja ginie po jakimś czasie (no chyba, że ją ustawiłeś na parę lat...) Utwórz w tabeli pole last_login_time i tam zapisuj datę ostatniego zalogowania a następnie ją przekaż do flasha. Ok... Ale chyba nie w tym problem... Załóżmy że chcę tą datę ustalić na stałe (np. 2003) to tworze: Chyba wszystko ok, ale jednak nie mogę się wtedy zalogować. Jak jest samo to mogę się zalogować, lecz flash wywala błąd importu danych ostatniego logowania (bo nie ma czego zaimportować :/) Jeszcze próbowałem taką opcje:
W ten sposób mogę się zalogować ale również występuje błąd importu danych lub _level0.pt1 ( nie wiem od czego to 2 się bierze i co zrobić by ponownie sie wyświetliło, po prostu czasami tak wyskakuje zamiast błędu importu. pt1 to pole tekstowe) Ten post edytował piotrek x 19.03.2009, 21:59:32 |
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Udało mi się rozwiązać problem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) :D:D (IMG:http://forum.php.pl/style_emoticons/default/thumbsupsmileyanim.gif)
Zrobiłem to tak: Stworzyłem nowy dokument php, a w nim:
I działa. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Tylko chciałbym jeszcze żeby po kliknięciu <Enter> działało. (Na razie działa tylko po kliknięciu myszą.) Kod loginButton.onRelease = function() { Jak to zmodyfikować? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 01:19 |