Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazywanie zmiennych z php do js
Forum PHP.pl > Forum > Przedszkole
php__amator
Hej,
Właśnie wpadłem na pomysł, żeby zobaczyć co nowego na forum i od razu wpadłem na temat ktory w tej własnie chwili mnie bardzo interesuje.
Czyli przekazywanie danych/zmiennych z php do JS.
Chcę podłączyć dźwięki do systemu logowania smile.gif żeby było tak ScienceFiction bardziej i pani łagodnym głosem mowiła:"sorry ale twoj login albo password jest "Wrong" spadaj" wink.gif

No i po części działa, ustawienie focus'a na pole nazwa uzytkownika - Pani zachęca do podania w/w, po wpisaniu i przejsciu do kolejnego pola "password" .pani znowu sie odzywa i prosi o podanie hasła no i po wcisnięciu przycisku "LOGIN" badzo ładnie dziękuje ale to jeszcze to, nie tak jak bym chciał. Muszę/chciałbym dodać jeszcze procedurę sprawdzania czy sesja została odpalona i uzytkownik zalogowany do systemu, jesli tak to oczywiscie idzie dalej a jesli cos bylo zle to zmienna przekazywana bedzie do js i odpalony komunikat ze wystąpił błąd.
Ponieważ do tej pory nie robiłem niczego takiego też potrzebuję podpowiedzi.
Ale to może nie będę ci tu śmiecił i założę nowy wątek ?


jakub.drag
Cześć wink.gif
Niedawno i ja musiałem wykonać podobny trik @phpamator - podkładałem głos chatterbotowi, musiał wymówić każdą swoją odpowiedź...
Sięgnąłem po AJAXA i Jquery tongue.gif
Jako, że w PHP radzę sobie nawet nawet, tak w JS to dla mnie przeżycie, ale nie powiem, całkiem przyjemne. IHMO jeśli chcesz już robic takie "science-fiction" to mozesz zaprzęgnąć do tego te technologie smile.gif
php__amator
Witajcie przedszkolaki,

Dziękuję za przeniesienie wątku do osobnego "mojego" tematu smile.gif
Pewnie Panie jakubie.drag bede ale to jeszcze nie ten etap smile.gif
Przedemną daleka droga bo dopiero raczkuje w tym temacie więc może w okolicach środy będę w stanie samodzielnie coś wykonać smile.gif (popielcowej)

Jakoże do środy jeszcze trochę czasu wsparcie było by mile widziane. Więc:
So far mam formularzyk lolgowania i z niego wysyłane dane do "zbadania" czy delikwent o określonej nazwie istnieje i hasło jakim się posłużył jest na pewno poprawne.
W chwili wysłania (POST) i sprawdzeniu zmienna $_SESSION['loggedon'] przyjmuje wartość true w przypadku powodzenia i false w przypadku błędu. Czy powinienem użyć tej zmiennej ? Czy może powinienem ustanowić nową lub wybrać jedną z istniejących biorących udział w procesie logowania ?
Pomóżcie proszę i powiedzcie jak powinienem
  1.  
  2. require_once("includes/connection.php");
  3. $date = date("F j, Y, g:i a");
  4. if (isset($_POST['Submit'])) {
  5. $username = htmlspecialchars($_POST['username']);
  6. $password = htmlspecialchars($_POST['password']);
  7. $hashed_password = md5($password);
  8. $query = "SELECT * FROM users WHERE username = '$_POST[username]' AND hashed_password = '$hashed_password' LIMIT 1";
  9. $result = mysql_query($query, $connection);
  10. if (mysql_num_rows($result) == 1) {
  11. $row = mysql_fetch_assoc($result);
  12. $_SESSION['loggedon'] = true;
  13. $_SESSION['id'] = $row['id'];
  14. $_SESSION['dept'] = $row['dept'];
  15. $_SESSION['scheme'] = $row['sheme'];
  16. $dept = $_SESSION['dept'];
  17. $userid = $_SESSION['id'];
  18. $userid = $_SESSION['username'];
  19. $file = "log.txt";
  20. $fp = fopen($file, "a");
  21. flock($fp, 2);
  22. fwrite($fp, "Logon succesful: ".$date." - ".$userid." ".$username." / ".$dept." / ".$ses_name." / ".$ip."\r\n"."----------------------------------------------------------------------------\r\n");
  23. flock($fp, 3);
  24. fclose($fp);
  25. header("Location: selector.php");
  26. exit();
  27. } else {
  28. $_SESSION['loggedon'] = false;
  29. $ses_name = $_POST['username'];
  30. $file = "log.txt";
  31. $fp = fopen($file, "a");
  32. flock($fp, 2);
  33. fwrite($fp, "Logon attempt failed: ".$date." - ".$userid." ".$username.' '.$password.' / '.$ip."\r\n"."----------------------------------------------------------------------------\r\n");
  34. flock($fp, 3);
  35. fclose($fp);
  36. echo '<input name="error" type="hidden" id="error" value="error"/><div id="warning" align="center" ><form action="index.php"><br><h3>User name/password combination incorrect.<br>Please make sure</br>your caps lock is off<br>and try again!</h3>click on "Padlock" and try again</div>';
  37. }
  38. }
  39.  


<script type="text/javascript">
function loginCheck()
{
var loginCheck = .... "jak powinna wyglądać funkcja pobierająca stan $_SESSION['loggedon'] i zależnie od stanu uruchamiać funkcję "dźwięk" ?
ta druga działa na event "focus" input'a. teraz potrzebuję /|\

}
</script>

Pozdrawiam
phpamator'ski
Turson
Cytat
W chwili wysłania (POST) i sprawdzeniu zmienna $_SESSION['loggedon'] przyjmuje wartość true w przypadku powodzenia i false w przypadku błędu.

A po co w ogóle ustanawiać sesję w przypadku błędu? Ustanawiaj ją tylko w przypadku powodzenia, wartość jest obojętna, może być true, potem tylko isset($_SESSION wystarczy.

[JAVASCRIPT] pobierz, plaintext
  1. var loginCheck = "<?php echo $_SESSION['loggedon']; ?>";
[JAVASCRIPT] pobierz, plaintext
php__amator
Hehehehe no nie wiem czy mogłem się spodziewać innej odpowiedzi i od innej osoby smile.gifsmile.gif

Dzięki TURSON, za każdym razem ratujesz mi sporo czasu.

SERDECZNIE D Z I Ę K U J Ę smile.gif

Skoro tak to zaraz to wypróbuję.

Teraz jak to podłączę do warunku

if ?
var loginCheck = "<?php echo $_SESSION['loggedon']; ?>"; i
i jak a w zasadzie co zmienic żeby zmienna poniżej została uruchomiona ?

Znaczy w konsekwencji if'a wywołana funkcja() {

var context = initializeNewWebAudioContext();
context.loadSound('audio/siema.mp3', 'message');
(function() { context.playSound('message');}
);
Możęsz mi to ktoś lekko rozjaśnić proszę?

Coś mi świta .....
Turson
Jeżeli funkcje już masz to zwykły warunek
[JAVASCRIPT] pobierz, plaintext
  1. var loginCheck = "<?php echo $_SESSION['loggedon']; ?>";
  2. if(loginCheck == "coś"){
  3. funkcja1();
  4. }
  5. else{
  6. funkcja2();
  7. }
[JAVASCRIPT] pobierz, plaintext
php__amator
Czyli tak jak mi świtało,
nie byłem 100%'wo pewny czy aby napewno tak to ma wyglądać.
Teraz juz wiem i mogę kontynuoować smile.gif

Serdeczne dzięki
Pozdrwiam


Cały blok odpowiadający za uruchamianie dźwięku wygląda tak
[JAVASCRIPT] pobierz, plaintext
  1. <script>
  2. var context = initializeNewWebAudioContext();
  3. context.loadSound('audio/please_enter_your_username.ogg', 'beep');
  4. $(".login").focus(function() {
  5. context.playSound('beep');
  6. });
  7. var context1 = initializeNewWebAudioContext();
  8. context.loadSound('audio/please_enter_your_password.ogg', 'beep1');
  9. $(".password").focus(function() {
  10. context.playSound('beep1');
  11. });
  12. var context2 = initializeNewWebAudioContext();
  13. context.loadSound('audio/please_log_in.ogg', 'beep2');
  14. $("button").focus(function() {
  15. context.playSound('beep2');
  16. });
  17. var context3 = initializeNewWebAudioContext();
  18. context.loadSound('audio/welcome.ogg', 'beep3');
  19. $("button").click(function() {
  20. context.playSound('beep3');
  21. });
  22. var loginCheck = "<?php echo $ss; ?>";
  23. if (loginCheck == "no") {
  24. var context4 = initializeNewWebAudioContext();
  25. context.loadSound('audio/warning.ogg', 'beep4');
  26. (function() {
  27. context.playSound('beep4');
  28. });
  29. }
  30. </script>
[JAVASCRIPT] pobierz, plaintext

W przypadku beepów 1-3 ok, w przypadku beep4 nie wywala błędów ale dźwięku też brak.
Co skopałem ?

pozdrawiam
Turson
Zamiast
[JAVASCRIPT] pobierz, plaintext
  1. var context4 = initializeNewWebAudioContext();
  2. context.loadSound('audio/warning.ogg', 'beep4');
  3. (function() {
  4. context.playSound('beep4');
  5. });
[JAVASCRIPT] pobierz, plaintext

[JAVASCRIPT] pobierz, plaintext
  1. var context4 = initializeNewWebAudioContext();
  2. context.loadSound('audio/warning.ogg', 'beep4');
  3. context.playSound('beep4');
[JAVASCRIPT] pobierz, plaintext


Chyba wink.gif
php__amator
Czyli co ... funkcja natychmiastowa do kosza i powinno byc ok ?

loadSound jest realizowany przez jQuery wywolywane na poczatku strony

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. var loginCheck = "<?php echo $ss; ?>";
  3.  
  4. if (loginCheck == "no") {
  5. var context4 = initializeNewWebAudioContext();
  6. context.loadSound('audio/warning.ogg', 'beep4');
  7. context.playSound('beep4');
  8. }
  9.  
[JAVASCRIPT] pobierz, plaintext


Dzwieku niet .... sad.gifsad.gifsad.gif
Turson
Sprawdź to się okaże. Ja nie mam takiej możliwości...
php__amator
Cytat(phpamator @ 4.03.2014, 10:19:23 ) *
Czyli co ... funkcja natychmiastowa do kosza i powinno byc ok ?

loadSound jest realizowany przez jQuery wywolywane na poczatku strony

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. var loginCheck = "<?php echo $ss; ?>";
  3.  
  4. if (loginCheck == "no") {
  5. var context4 = initializeNewWebAudioContext();
  6. context.loadSound('audio/warning.ogg', 'beep4');
  7. context.playSound('beep4');
  8. }
  9.  
[JAVASCRIPT] pobierz, plaintext


Dzwieku niet .... sad.gifsad.gifsad.gif

Funkcja wyglada na to ze dziala ale nie odtwarza, mozna go jakos zaladowac np przy starcie?
np window.onload czy cos ?
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.