Skrypt logowania + skrypt antybotowy(do oceny)

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]

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

  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:

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  }