Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript][PHP]Maile z pustymi polami w miejscach $_POST które czasami same się wysyłają
Forum PHP.pl > Forum > Przedszkole
brafals
Prosiłbym o pomoc. Ponieważ mam następujący problem. Mam formularz przesyłający dane do skryptu z funkcją mail() który znajduje się na innej stronie niż formularz. Czasami do skrzynki pocztowej trafiają maile które nie mają wpisanych danych przesyłanych za pomocą $_POST. Pola są walidowane za pomocą JavaScripta więc puste pola nie powinny być wysyłane z formularza. W dodatku maile tak jakby same się wysyłały. Poniżej zamieszczę kody.

Kod formularza:
CODE
<form id="rezerwacja" class="travelForms" action="pay.php" method="post" onsubmit=" return sprawdz_formularz();">

<ol>
<li>
<label for="imie">Imię<span class="red">*</span>:</label>
<input type="text" class="txt" name="imie" id="imie"/>
</li>
<li>
<label for="nazwisko">Nazwisko<span class="red">*</span>:</label>
<input type="text" class="txt" name="nazwisko" id="nazwisko"/>
</li>
<li class="zebra">
<label for="firma">Nazwa firmy:</label>
<input type="text" class="txt" name="firma" id="firma"/>
</li>
<li>
<label for="firma">Adres:</label>
<textarea name="adres" id="adres" rows="10" cols="10"></textarea>
</li>
<li class="zebra">
<label for="nip">NIP:</label>
<input type="text" class="txt" name="nip" id="nip"/>
</li>
<li>
<label for="email">Adres e-mail<span class="red">*</span>:</label>
<input type="text" class="txt" name="email" id="email"/>
</li>
<li class="zebra">
<label for="telefon">Telefon kontaktowy<span class="red">*</span>:</label>
<input type="text" class="txt" name="telefon" id="telefon"/>
</li>
<li>
<label for="fax">Fax:</label>
<input type="text" class="txt" name="fax" id="fax"/>
</li>
<li class="zebra">
<label for="bilety">Ilość biletów<span class="red">*</span>:</label>
<select name="kwota" id="bilety">
<option value="1">PAKIET 5+1 Gratis</option>
<option value="Pakiet 20+6 Gratis">Pakiet 20+6 Gratis</option>
<option value="PAKIET 100 Biletów">PAKIET 100 Biletów</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="3">4</option>
</select>
</li>
<li>
<label for="podroz">Która to podróż?</label>
<select name="podroz" id="podroz">
<option value="Pierwsza">Pierwsza</option>
<option value="Druga">Druga</option>
<option value="Trzecia">Trzecia</option>
</select>
</li>
<li class="zebra">
<label for="uwagi">Uwagi:</label>
<textarea class="text" name="uwagi" id="uwagi" rows="10" cols="10"></textarea>
</li>

<li class="zebra check">
<label for="regulamin">Akceptuję regulamin<span class="red">*</span>:</label>
<input type="checkbox" name="regulamin" id="regulamin" />
<p class="short-info">Rozliczenia transakcji kartą kredytową i e-przelewem przeprowadzane są za pośrednictwem Centrum Rozliczeniowego Dotpay.</p>
</li>
<li class="bn">
<button type="submit"><span>Wyślij zamówienie</span></button>
</li>
</ol>
</form>



Skrypt w osobnym pliku "pay.php":
CODE
<?php

$adres="brafals@gmail.com";
$temat="Transakcje";

//dane przesyłane do zmiennej $wiadomość przez $_POST nie pojawiają się w treści maili
//dodatkowo maile tak jakby wysyłają się same bez klikania na przycisk w formularzu
$wiadomosc="Przesłano następujące dane z formularza na stronie:

Imię: ".$_POST['imie']."

Nazwisko: ".$_POST['nazwisko']."

Nazwa firmy: ".$_POST['firma']."

Adres :".$_POST['adres']."

NIP: ".$_POST['nip']."

Email: ".$_POST['email']."

Telefon: ".$_POST['telefon']."

Fax: ".$_POST['fax']."

Cena biletów: ".$_POST['kwota']."PLN

Która to podróż: ".$_POST['podroz']."

Uwagi :".$_POST['uwagi'];


mail($adres, $temat, $wiadomosc);

?>
nospor
Cytat
. Pola są walidowane za pomocą JavaScripta więc puste pola nie powinny być wysyłane z formularza
A kto ci takich głupot nagadał?
walidacja js to tylko dodatek i może być bardzo prosto ominięta. Jedyna słuszna i pewna to walidacja po stronie serwera czyli w php.

brafals
Może zostać przypadkowo ominięta czy ktoś musi hackować stronę?
nospor
Może być przypadkowo, może ktoś hackować, a może po stronie chodzić spambot, który poprostu leje na js.
!*!
Zaskoczyłoby mnie jakby się same nie wysyłały wink.gif w pay.php w ogóle nie sprawdzasz czy dane zostają przesłane.

isset

Już nie wspominając o całkowitym braku walidacji.
nospor
ps: o ile wyłączenie js można nazwać "hackowaniem". To tak jabyś zostawił otwarte drzwi do domu a potem pisał, że ktoś ci je "wyłamał z zawiasów", podczas gdy ten ktoś poprostu nacisnął na klamkę wink.gif

!*! no bo on przecież ma walidacje po stronie js. w php już nie musi mieć wink.gif
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.