Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] sprawdzenie danych
Forum PHP.pl > Forum > Przedszkole
!*!
mam oto takie cos index.php:

  1. <?php
  2. <form class="register" action="./index2.php" method="POST">
  3. <fieldset>
  4. Nazwa użytkownika: <input type="text" class="text" name="user" maxlength="15" />
  5. <br /><br />
  6. Hasło: <input type="password" class="text" name="pass" maxlength="15" />
  7. <br /><br />
  8.  
  9.  
  10. </fieldset>
  11. <input type="submit" value="Zaloguj się"></div>
  12. </form>
  13. ?>


który odwoływany jest do pliku index2.php i jesli dane niezostały wpisane poprawnie wyswietli sie czytsa strona za pomoca:

  1. <?php
  2. else {
  3. echo "Niepoprawne hasło/user";
  4. }
  5. ?>


ale jak zrobić aby pola user i pass były sprawdzane juz w index.php bez przekirowania do index2.php i wyswietlany zostałby tekst tuż nad inputem?
kossa
użyj AJAXa - po kliknięciu wyślij za pomocą tej technologii wyślesz w tle dane do pliku php który zweryfikuje login i hasło (może np. połączyć się z bazą) a następnie zwróci Tobie dane do index.php - wszystko bez przeładowywania strony

poszukaj na google advAJAX - ciekawa biblioteka jeśli nie chcesz pisać własnej obsługi tej technologii

Łukasz
!*!
nie musze uzywac ajaxa aby zrobić to bez przeladowania... mozna to zrobić sposobem "ukrytego" tekstu ktory pokaze sie gdy pola niezostana wogole wpisane albo źle... tylko jak?
Siner
Możesz rozwiązać to tak, że w pliku index2.hp
  1. <?php
  2. else {
  3. header("Location: index.php?error"); 
  4. }
  5. ?>

a w pliku index.php
  1. <?php
  2. if(isset($_GET['error']))
  3. {
  4. echo 'zly login/haslo';
  5. }
  6. //forumlarz
  7. //...
  8. ?>
!*!
a nie mozna zrobic czegos takiego aby poprostu sam index.php byl sprawdzany? aby bylo trzeba cos wpisac w pola...
Siner
jeśli chcesz to możesz to zrobić za pomocą js-a, albo wysyłaj dane do pliku index.php
<form class="register" action="./index.php" method="POST">
i sprawdzaj czy zostały wysłane dane i czy nie są puste.
WiTO
A takie cuś?



  1. <?php
  2.  
  3. if (($_POST['user']!='') or ($_POST['pass']!=''))
  4.  
  5.  
  6. if (($_POST['user']!='janek') or ($_POST['pass']!='franek'))
  7. //powyższy warunek sprawdza zgodnosc
  8. //hasla i loginu, więc musisz go dostosować do siebie
  9. //tutaj: login: janek  hasło: user
  10.  
  11.  
  12. echo 'Złe hasło/login'; //jeśli hasło i login sie nie zgadzaja
  13. else{
  14.  
  15. echo 'SUKCES!! ^^'; // tu sie dzieje to wszystko kiedy hasło i login sie zgadzają
  16. exit(); // exit() musi byc żeby nie wyskoczył jeszcze raz formularz
  17.  
  18. }
  19.  
  20. ?>
  21.  
  22. <form class='register' action='./index.php' method='POST'>
  23. <fieldset>
  24. Nazwa użytkownika: <input type='text' class='text' name='user' maxlength='15' />
  25. <br /><br />
  26. Hasło: <input type='password' class='text' name='pass' maxlength='15' />
  27. <br /><br />
  28.  
  29.  
  30. </fieldset>
  31. <input type=submit value='Zaloguj się'></div>
  32. </form>


Mankament: jeśli ktoś nic nie wpisze i spróbuje się zalogować to pokaże się sam formularz bez wyświetlonego błędu (oczywiście nie uda mu się zalogować).

PS: Jeśli jedyne czego chesz to to, żeby przy błędnym logowaniu się wyswietlał się komunikat - złe hasło/login i potem znowu formularz, a nie przeszkadzają Ci dwa pliki index to można to zrobić w lepszy, fajniejszy i prostszy sposób...
!*!
hmm niby działa ale nieprzekieruje mnie po zalogowaniu do index2.php
WiTO
Nie ma tego złego co by nam nie wyszło...
Jeszcze nie doszedłem jak napisać cudzysłów w skryptach php na tym forum więc obędę się bez niego... sorry



<?php

if (($_POST['user']!='') or ($_POST['pass']!=''))


if (($_POST['user']!='janek') or ($_POST['pass']!='franek'))

echo 'Złe hasło/login';
else{

echo '<head><meta http-equiv="refresh" content="0; URL=index2.php"></head>'; // przekierownie do index2.php
exit();

}

?>

<form class='register' action='./index.php' method='POST'>
<fieldset>
Nazwa użytkownika: <input type='text' class='text' name='user' maxlength='15' />
<br /><br />
Hasło: <input type='password' class='text' name='pass' maxlength='15' />
<br /><br />


</fieldset>
<input type=submit value='Zaloguj się'></div>
</form>
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.