Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]document.formname.submit() nie działa - brak też błędów w logach
Grandalf00
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 23.01.2016

Ostrzeżenie: (0%)
-----


Kod przerabiam i szukam rozwiązania od dłuższego czasu.

Mam takie coś:
  1. <form name="sendin" action="index.php" method="post">
  2. <input type="hidden" name="username" />
  3. <input type="hidden" name="password" />
  4. </form>
  5.  
  6. <script type="text/javascript">
  7.  
  8. function doLogin() {
  9. document.sendin.username.value = document.log.user1.value;
  10. document.sendin.password.value = hexMD5(document.log.pass1.value);
  11. document.sendin.submit();
  12. return false;
  13. }
  14. </script>
  15.  
  16.  
  17. <div id="login">
  18. <form name="log" action="index.php" method="post" onSubmit="return doLogin()">
  19. Login: <input type="text" name="user1" class="input"/></br>
  20. Hasło: <input type="password" name="pass1" class="input"/></br>
  21. <input type="submit" value="Zaloguj" />
  22. </form>
  23. </div>
  24.  


Lecz niestety nie mam pojęcia dlaczego nie ma rezultatu funkcji:

  1. document.sendin.submit();


Dalej w kodzie mam php, który sprawdza czy
  1. $_POST['submit']

jest ustawiona, ale nie przechodzi mi do tego warunku.

Dwie wcześniejsze linijki działają poprawnie, bo widzę zmiany wartości pól gdy są one widoczne. W necie znalazłem kilka wskazówek, jedna z nich to ewentualna nazwa innego elementu jako name="submit", ale w moim przypadku tak nie ma.
Jakieś sugestie drodzy forumowicze?
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Skoro w formularzu sendin nie ma pola o nazwie submit, to nie będzie go w tablicy $_POST.

Jeśli już kombinujesz, to nie jest potrzebny drugi formularz, bo pola hidden możesz umieścić w formularzu logowania, a właściwie tylko jedno - "zaszyfrowane" hasło.

I jeszcze jedno. To cały kod? Jeśli tak, to brak funkcji hexMD5.

Ten post edytował trueblue 19.06.2016, 17:22:32
Go to the top of the page
+Quote Post
Grandalf00
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 23.01.2016

Ostrzeżenie: (0%)
-----


Cytat(trueblue @ 19.06.2016, 18:05:17 ) *
Skoro w formularzu sendin nie ma pola o nazwie submit, to nie będzie go w tablicy $_POST.


Ok, tylko w dokumentacji jest napisane:
The submit() method submits the form (same as clicking the Submit button)

Więc rozumiem to tak, że wywołując tą funkcję, nie potrzebuję jej fizycznie w formularzu. Poza tym, próbowałem z dodaniem pola submit, lecz nic to nie dało.


Cytat(trueblue @ 19.06.2016, 18:05:17 ) *
Jeśli już kombinujesz, to nie jest potrzebny drugi formularz, bo pola hidden możesz umieścić w formularzu logowania, a właściwie tylko jedno - "zaszyfrowane" hasło.


Tak jeszcze spróbuje.

Cytat(trueblue @ 19.06.2016, 18:05:17 ) *
I jeszcze jedno. To cały kod? Jeśli tak, to brak funkcji hexMD5.


Nie, nie cały, funkcja jest dołączona wcześniej.

Ten post edytował Grandalf00 19.06.2016, 19:20:47
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Cytat(Grandalf00 @ 19.06.2016, 20:20:12 ) *
Ok, tylko w dokumentacji jest napisane:
The submit() method submits the form (same as clicking the Submit button)

Więc rozumiem to tak, że wywołując tą funkcję, nie potrzebuję jej fizycznie w formularzu. Poza tym, próbowałem z dodaniem pola submit, lecz nic to nie dało.

Wciąż mam na myśli tablicę $_POST, w której nie będzie elementu odpowiadającego inputowi o tej nazwie w formularzu.

Nie wiem jakie logi przeglądałeś, ale sprawdź co się dzieje w konsoli przeglądarki: https://www.google.pl/search?q=konsola+przeglądarki
Go to the top of the page
+Quote Post
Grandalf00
post
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 23.01.2016

Ostrzeżenie: (0%)
-----


Dokładnie o konsole mi chodziło. Zarówno w Chrome jak FF brak błędów. Przerobiłem na jeden formularz i chyba będzie oki.
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


W przypadku jednego formularza, aby zachować funkcjonalność jak przy dwóch, powinieneś czyścić pole "nieszyfrowanego" hasła.

A kiedy już wszystko będzie działać poprawnie, to sprawdź zachowanie po wyłączeniu JS w przeglądarce (podpowiem, że efekt będzie taki sam przy zastosowaniu jednego jak i dwóch formularzy).
Go to the top of the page
+Quote Post
Grandalf00
post
Post #7





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 23.01.2016

Ostrzeżenie: (0%)
-----


Pamiętałem i tak też zrobiłem (IMG:style_emoticons/default/smile.gif) Strona głównie opiera się na JS. Dzieki za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 21:44