Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sprawdzenie czy przesłano form + uwierzytelnienie
Forum PHP.pl > Forum > PHP
Khan
Witam

Problem jest ze nie potrafie pokombinowac z tymi kodami, chodzi o zeby formularz po sprawdzeniu normalnie wysyla gdyz kod z obrazka jest prawidlowy. Podaje ponizej kody:

  1. <?php
  2. // Sprawdzenie czy przesłano formularz
  3. if (isset($_POST['submitted']))
  4.  {
  5.  
  6. // Podstawowa weryfikacja danych we formularzu.
  7. $nazwa = $_POST['nazwa'];
  8. $druga_nazwa = $_POST['druga_nazwa'];
  9.  
  10.  
  11. if ( $nazwa == "" || $druga_nazwa == "" )
  12.  {
  13.  
  14. // echo => nie zostal wyslany
  15.  
  16. } else {
  17.  
  18. // caly skrypt mail, echo => zostal wyslany
  19.  
  20.  }
  21. }
  22. ?>

wszystko pieknie i dziala, formularz wysyla lub nie.


a teraz gdy chce dolaczyc kod uwierzytelnienia (image verification) do kodu (wyzej)
  1. <?php
  2. // Uwierzytelnienie
  3. $obrazek_z_kodem = $_POST['obrazek_z_kodem'];
  4. if (md5($obrazek_z_kodem) == $_SESSION['image_random_value'])
  5.  {
  6.  
  7. // echo => prawidlowy kod
  8.  
  9. } else {
  10.  
  11. // echo => nieprawidlowy kod
  12.  
  13. }
  14. ?>
to robi niezly chaos na stronie, niby nie ma bledow... ale zle wysyla

nie zmiescilo mi sie w glowie ktory z tych if else odpowiada dobrze formularz sprawdz. + uwierzyteln. sad.gif


Jak złączyć dwa w jedno całe ?


Pozdrawiam Khan
pabgol
Proponuję coś takiego:

  1. <?php
  2. // Sprawdzenie czy przesłano formularz
  3. if (isset($_POST['submitted']))
  4. {
  5.  
  6. // Podstawowa weryfikacja danych we formularzu.
  7. $nazwa = $_POST['nazwa'];
  8. $druga_nazwa = $_POST['druga_nazwa'];
  9.  
  10.  
  11.  if ( $nazwa == "" || $druga_nazwa == "" ) //brak danych nie wysyla
  12.  {
  13.  
  14. // echo => nie zostal wyslany
  15.  
  16. } 
  17. else //sa dane w formularzu
  18. {
  19.  
  20.  $obrazek_z_kodem = $_POST['obrazek_z_kodem'];
  21. if (md5($obrazek_z_kodem) == $_SESSION['image_random_value']) //jesli kod sie zgadza
  22.  {
  23.  
  24.  // tutaj wysylanie maila
  25.  
  26. } 
  27. else //nieprawidlowy kod
  28. {
  29.  
  30. // nie wysyla, komunikat dla uzytkownika
  31.  
  32. }
  33.  
  34. }
  35. }
  36. ?>
Khan
wszystko dziala bezblednie, ale problem w tym ze nie chce wysylac jak wpisuje prawidlowy kod , a komunikat twierdzi ze nie jest prawidlowy. sad.gif
pabgol
To pewnie masz problem w tej linijce
  1. <?php
  2. if (md5($obrazek_z_kodem) == $_SESSION['image_random_value'])
  3. ?>


Daj sobie na samym początku skryptu taki kod:
  1. <?php
  2. echo '<pre>';
  3. print_r($_POST); //wyswietlanie zmiennych $_POST
  4. print_r($_ SESSION); //wyswietlanie zmiennych $_ SESSION
  5. echo '</pre>';
  6.  
  7. echo md5($_POST['obrazek_z_kodem']); //wyswietla md5 dla kodu obrazka
  8. ?>


Porównaj odpowiednie wartośći, pewnie faktycznie coś się nie zgadza, albo np nie masz zmiennej sesji.
Khan
Cytat(pabgol @ 30.11.2007, 11:34:29 ) *
To pewnie masz problem w tej linijce
  1. <?php
  2. if (md5($obrazek_z_kodem) == $_SESSION['image_random_value'])
  3. ?>


Daj sobie na samym początku skryptu taki kod:
  1. <?php
  2. echo '<pre>';
  3. print_r($_POST); //wyswietlanie zmiennych $_POST
  4. print_r($_ SESSION); //wyswietlanie zmiennych $_ SESSION
  5. echo '</pre>';
  6.  
  7. echo md5($_POST['obrazek_z_kodem']); //wyswietla md5 dla kodu obrazka
  8. ?>


Porównaj odpowiednie wartośći, pewnie faktycznie coś się nie zgadza, albo np nie masz zmiennej sesji.

wyswietla blad, czyli to sesja.
  1. Parse error: syntax error, unexpected T_STRING in
w linii 4

sprobowalem zamienic z $SESSION na $_COOKIE, bez skutku.

domyslam sie, ze ta sesja jest tylko dla logowania, a mam formularz do wysylania.
pabgol
Cytat(Khan @ 30.11.2007, 12:26:24 ) *
wyswietla blad, czyli to sesja.
  1. Parse error: syntax error, unexpected T_STRING in
w linii 4

sprobowalem zamienic z $SESSION na $_COOKIE, bez skutku.

domyslam sie, ze ta sesja jest tylko dla logowania, a mam formularz do wysylania.


Ten komunikat jest z innego powodu, bo pomyliłem się w kodzie, który Ci napisałem. W 4 linii powinno być "$_SESSION" zamiast "$_ SESSION" (bez spacji pomiędzy "$_" a "SESSION". Popraw to swoim skrypcie, to zobacz czy będzie działać.
Khan
hmmmm


w sesji SESSION jest pusty
w POST jest pusty, tylko Array ()

w POST [kod z obrazka] sa cyfry (liczby i litery) czyli hash

jak chce powysylac to pojawia
  1. <?php
  2. Array ( 
  3. [send] => nazwa@mail.pl
  4.  
  5. itd... kilka pól 
  6.  
  7. )
  8. ?>


sorki za zamieszanie, poraz trzeci edytowalem post i poprawilem co pisalem.


EDIT.
czyli nikt nie pomoze mi jak rozwiazac problem ? sadsmiley02.gif

sprobowalem inaczej oprocz sprawdzania czy przeslano form... nadal nie chce wysylac. :/

up sadsmiley02.gif

up

up
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.