Formularz, jquery oraz PHP --- walidacja

Odpowiedz Nowy wątek
2011-09-17 22:04
0

W jednym formularzy mam pola z textem oraz z file do uploadu zdjęć. Nie mam zielonego pojęcia jak się za to zabrać?? Jak znajdę jakiś dobry plugin w jquery to i tak muszę napisać walidację w PHP? Dla tych co mają wyłączoną w przeglądarce obługę js. I teraz pytanie skąd mam wiedzieć czy potencjalny użytkownik ma wł czy wył obsługę w swojej przeglądarce js?? Da się to sprawdzić w PHP ? Drugie pytanie cz zna ktoś jakiś fajny plugin w jquery do walidacji, żeby pogodzić <inpputy type="text" oraz type="file" ?? AAA i jeszcze jedna ważna rzecz! W tym formularzy mam 4 inputy type="file" i tu zaczyna się górka. Przez ich ilość... wiadomo name="tab[]"... Proszę o wszelką pomoc bo sam już wysiadam... a mało czasu juz :(

Pozostało 580 znaków

2011-09-18 07:27
0

Co do walidacji danych, lepiej zawsze przeprowadzać ją po stronie klienta (JS, jquery) oraz servera (PHP), Server to ostatnia linia obrony, nigdy nie znamy zamiarów potencjalnego użytkownika... =]


"Nie ważne by być lepszym od innych, ważne by być lepszym niż było się wczoraj"

Pozostało 580 znaków

2011-09-18 07:57
0

Jak znajdę jakiś dobry plugin w jquery to i tak muszę napisać walidację w PHP?

Tak.
Zawsze ktoś może mieć wyłączoną obsługę JS i wtedy (jeżeli nie byłoby walidacji po stronie serwera) mógłby być problem.

I teraz pytanie skąd mam wiedzieć czy potencjalny użytkownik ma wł czy wył obsługę w swojej przeglądarce js?? Da się to sprawdzić w PHP ?

Nie da się.
Tzn, można zrobić takie coś:
Gdy strona się załaduje, to jQuery wywoła plik "CheckJS.php". Plik sobie zapisze, że w tej chwili ten user ma włączone JS; jeżeli plik nie zostanie wywołany, to user nie ma JS.
Lecz nie ma po co się tak męczyć...

Drugie pytanie cz zna ktoś jakiś fajny plugin w jquery do walidacji, żeby pogodzić <inpputy type="text" oraz type="file"

Nie rozumiem.
Jeżeli masz input: <input type="text" name="hello" value="value here"/> to w PHP odczytujesz go odpowiednio: $_POST['hello'] lub $_GET['hello']
Rozwiń swoją myśl :]


Pozostało 580 znaków

2011-09-18 10:10
sirkruk
0

I teraz pytanie skąd mam wiedzieć czy potencjalny użytkownik ma wł czy wył obsługę w swojej przeglądarce js?? Da się to sprawdzić w PHP ?
W tym rzecz, że Ciebie nie powinno to interesować, czy użytkownik ma włączoną obsługę js, czy nie, ponieważ przesyłane dane można łatwo spreparować. Jeśli na siłę w php potrzebujesz wiedzieć, czy obsługa js jest włączona, to najlepiej napisz fragment kodu javascript, który zmieni jakąś ukrytą zmienną w formularzu po załadowaniu strony, a w php sprawdzisz wartość tej zmiennej.

Pozostało 580 znaków

2011-09-18 11:06
0

Mam taki formularz:


<form action="dodaj_obiekt.php?strona=wynik" method="post" enctype="multipart/form-data" class="cmxform" id="commentForm">

<h1>Dodaj nowy obiekt</h1>

<fieldset>
<legend>Proszę dodać obiekt</legend>
<label>
<span>Nazwa użytkownika * </span>
<input type="text" class="wpis" name="login" id="nazwa"/>
</label>
<label>
<span>Hasło * </span>
<input type="text" class="wpis" name="haslo" id="nazwa"/>
</label>
<label>
<span>Powtórz hasło * </span>
<input type="text" class="wpis" name="haslo1" id="nazwa"/>
</label>
<label>
<span>Adres email *</span>
<input type="text" class="wpis" name="email" id="nazwa"/>
</label>
<label>
<span>Powtórz adres email *</span>
<input type="text" class="wpis" name="email1" id="nazwa"/>
</label>
</fieldset>

<fieldset>
<label>
<span>Nazwa * </span>
<input type="text" class="wpis" name="nazwa" id="nazwa"/>
</label>
<label>
<span>Typ obiektu * </span>
<select id="temat" name="typ" >
        <option>------- Wybierz obiekt ------</option>
        <option>Apartamenty</option>
        <option>Domki letniskowe</option>
        <option>Hotele</option>
        <option>Pola namiotowe</option>
        <option>Schroniska</option>
</select>
</label>
<label>
<span>Gmina *</span>
<select id="temat" name="gmina" >
        <option>------- Wybierz gminę -------</option>
        <option>Bakałarzewo</option>
        <option>Filipów</option>
        <option>Jeleniewo</option>
        <option>Przerośl</option>
</select>
</label>
<label>
<span>Ilość pokoi *</span>
<input type="text" class="wpis" name="ilosc_p" id="temat"/>
</label>
<label>
<span>Cena *</span>
<input type="text" class="wpis" name="cena" id="temat"/>
</label>
<label>
<span>Telefon *</span>
<input type="text" class="wpis" name="telefon" id="temat"/>
</label>
<label>
<span>Strona www </span>
<input type="text" class="wpis" name="www" id="temat"/>
</label>
<label>
<span>Opis * </span>
<textarea class="wiadomosc" rows="8" cols="45" name="opis" id="tresc"></textarea>
</label>
</fieldset>

<fieldset>
Pierwsze dodane zdjęcie jest Tworzone jako miniatura ogłoszenia.
<label>
<span>Dodaj zdjęcie1 * </span>
<input type="file" class="wpis" name="tab[]" id="temat" />
</label>
<label>
<span>Dodaj zdjęcie2 * </span>
<input type="file" class="wpis" name="tab[]" id="temat" />
</label>
<label>
<span>Dodaj zdjęcie3 * </span>
<input type="file" class="wpis" name="tab[]" id="temat" />
</label>
<label>
<span>Dodaj zdjęcie4 * </span>
<input type="file" class="wpis" name="tab[]" id="temat" />
</label>
</fieldset>

<fieldset>
<label>
<span>Przepisz kod z obrazka:<span>
<img id="siimage" src="CaptchaSecurityImages.php?width=100&height=40&characters=5" class="fota" />

<input class="kod" id="security_code" name="security_code" type="text" />

<a href="#" onclick="document.getElementById('siimage').src = 'CaptchaSecurityImages.php?' + Math.random(); return false">Reload Image</a>

</label>
</fieldset>

<label>
<input type="submit" class="button" name="submit" value="Dodaj obiekt" />
</label>
</form>
</div>

I nie wiem jak go zwalidować. Użyłem ostatnio plugina z jquery, ale na samym końcu okazało się, że jest problem z walidacją 4. ostatnich inputów type="file". Resztę waliduje bez najmniejszego problemu... Przypominam type file obsługuje $_FILE. Nooo nie wiem, może ktoś używał jakiegoś fajnego plugina do uploadowania zdjęć na serwer?

Pozostało 580 znaków

2011-09-18 11:14
0
<label>
<span>Dodaj zdjęcie1 * </span>
<input type="file" class="wpis" name="tab[]" id="temat" />
</label>
<label>
<span>Dodaj zdjęcie2 * </span>
<input type="file" class="wpis" name="tab[]" id="temat" />
</label>
<label>
<span>Dodaj zdjęcie3 * </span>
<input type="file" class="wpis" name="tab[]" id="temat" />
</label>
<label>
<span>Dodaj zdjęcie4 * </span>
<input type="file" class="wpis" name="tab[]" id="temat" />
</label>

Dlaczego wszystkie mają takie same nazwy?

<label>
<span>Dodaj zdjęcie1 * </span>
<input type="file" class="wpis" name="zdj1" id="temat" />
</label>
<label>
<span>Dodaj zdjęcie2 * </span>
<input type="file" class="wpis" name="zdj2" id="temat" />
</label>
<label>
<span>Dodaj zdjęcie3 * </span>
<input type="file" class="wpis" name="zdj3" id="temat" />
</label>
<label>
<span>Dodaj zdjęcie4 * </span>
<input type="file" class="wpis" name="zdj4" id="temat" />
</label>
$_FILES["zdj1"]
$_FILES["zdj2"]
$_FILES["zdj3"]
$_FILES["zdj4"]

Jak to po co ?? :O To jest tablica. Specjalnie ją użyłem bo przed przesłaniem tych zdjęć na serwer podaje obróbce w PHP. Jak zmiana rozmiaru każdego zdjęcia, czy miniatura etc I żeby nie pisać 4 razy tego samego... Wszystko ładnie w pętli foreach lub for :) \\Albo faktycznie tak zrobie... laickie rozwiązanie. ale dzięki temu w miarę będzie działać plugin na walidacje (bo sam plugin nie działa na tablicy[] ) i do tego latwo będzie można przeprowadzić walidacje w PHP. - poniatowski 2011-09-18 11:35
Z tego co wiem to nie może być wszędzie tych samych id :P jako name oczywiście może być tablica - konrados 2011-09-18 13:04

Pozostało 580 znaków

2011-09-18 11:47
0

A co do obsługi js to chyba to wiele wyjaśni:

  <noscript> <form action="sprawdz.php"></form> </noscript> 

?? W przypadku wył obsługi js w przeglądarce powinno chyba coś takiego zadziałać?? Jak uważacie? I dodam jedno ukrute pole np wyl_js do $_POST i wtedy w PHP


if (isset($_POST['wyl_js'])){

// i tu pełna walidacja formularza

}
edytowany 1x, ostatnio: poniatowski, 2011-09-18 11:48

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0