Skrypt logowania + skrypt antybotowy(do oceny)


(userrpl) #1

Witam. Ostatnio uczę się kompilowania prostego skryptu logowania, udało mi się go utworzyć natomiast wpadłem na pomysł skompilowania skryptu antybotowego. Skrypt miałby za zadanie sprawdzić kod wpisany przez użytkownika, oraz porównywać z aktualnie znajdujący się w tablicy $kody[0], które byłyby wyświetlane w formularzu.

Do tablicy $kody , dodałem również funkcje "shuffle", nie wiem czy jest ona odpowiednia do tego, ale puki co tylko ją znam :roll: .

Skrypt działa w miarę dobrze, o ile użytkownik za długo nie zwleka z wpisaniem wyświetlanego kodu #-o . Co zrobić by ulepszyć mój skrypt?. Proszę o jakąś inspirację nie gotowca.

#--NW------------Numery-weryfikacyjne---------------------#

  $kody = array ('12345', '56789');

   shuffle($kody);


    foreach ($kody as $k);




  #---NW---------------Kod-weryfikujacy---------------------#

    if ($_POST['kod']){

     if($_POST['kod'] !== $k) {

	    echo 'Nieprawidłowy kod!'; }}



	  #-----------------------------Skrypt-logowania---------------------#


       $hasla = array ('q3trms' => '337');


       if(($_POST['uzytkownik']) && ($_POST['haslo'])){

        if($_POST['kod'] == $k) {

        if($hasla[$_POST['uzytkownik']] == $_POST['haslo']) {

	     echo 'Witaj ' .$_POST['uzytkownik']. '
';

		 echo 'O to zestawienie wiadomości:';

		 }

         else {

	      echo 'Wpisano niepoprawną nazwę lub hasło użytkownika.';

		  }

		  }

	    }

Formularz

echo '';

   echo '

| Nazwa użytkownika: | "; echo ' |
| Hasło: | |
| Kod: | | |

'; echo ''; echo '';[/code]


(R@z0r) #2

Mógłbym to ocenić, ale się od tego powstrzymam, bo miałbyś poprawkę :stuck_out_tongue_winking_eye:.

1) "Ostatnio uczę się kompilowania prostego skryptu logowania" - nie wiem o czym mówisz, ale PHP to nie jest język kompilowany

2) Najpierw sprawdza się kod, a potem nazwę użytkownika i hasło

3) Nie wiem o co chodzi Ci z tą funkcją "shuffle" (ang. tasowanie np. kart)

Problem w tym, ze to nie jest system logowania. Systemy logowania robi się na bazach danych i przede wszystkim przechowuję się informacje, ze jest się zalogowanym, czego tu zabrakło :stuck_out_tongue:


(ra-v) #3

To jest niepotrzebne, wg mnie sensu.

foreach ($kody as $k); [/code]

Tu raczej musisz dać tak

[code=php]echo  '; echo "name=\"kod_zrodlowy\" value=\"".$kod[0]."\"size=\"10\" disabled= \"disabled\" />

A tu tak

( isset($_POST['kod']) and isset($_POST['kod_zrodlowy']) ){  if($_POST['kod'] !== $_POST['kod_zrodlowy']) {    // zły kod  }  else{    // to jest ok  }