Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zabezpieczenie formularza
Forum PHP.pl > Forum > Przedszkole
mperlam
Cześć. Mam mały problem. Zrobiłem prosty skrypt, który po wpisaniu maila przesyla zawartość danego pliku na tego maila. Mam pytanie jak ograniczyć wykorzystanie pliku send.php (w ktorym jest zawarty cały skrypt wysylajacy). Myślałem nad czymś w rodzaju X FORWARDED ale średnio mi wychodzi. Bardzo proszę o propozycje. Chodzi tylko o to aby formularz z innej domeny nie był interpretowany przez skrypt.
tog
mozesz zrobic tak, ze na stronie z formularzem dasz cookies albo lepiej sesje, a pozniej zostanie ona sprawdzona na stronie ktora odbiera formularz
mperlam
Ok, udało się zrobić (nieco inaczej niż napisałeś). Aby nie zakładać chciałbym zapytać o coś jeszcze. Mam prosty formularz:

Kod
<input name="mail" type="text" size="30" />
<input class="button" value="Send" type="submit" />


Czy da się go przerobić tak, aby był on skryptem js?
tog
formularz obsluguje zdarzenia onsubmit w form
czyli <form onsubmit="skrypt php" action="...
lub onclick na button
poczytaj o zdarzeniach

co konkretnie chcesz zrobic ?
mperlam
+/- ma to być coś na kształt okienka, do którego po prostu wpisujemy mail i na ten mail leci to, co jest w pliku txt. Nie chcę jednak aby formularz (tam gdzie wpisuję mail) był widoczny dla robotów oraz osób wchodzących przez proxy
tog
bo ja wiem...
nigdy czegos takiego nei robilem
przychodza mi do glowy 3 rozwiazania tego problemu, ale nei wiem na ile sa bezpieczne

wpisz do googli 'ukrywanie tresci js'
mperlam
Raczej nie o ukrycie chodzi... Chcę aby pole tekstowe (lub inny element) było w JS
Pawel_W
chodzi ci o coś takiego?
  1. <script type="text/javascript">
  2. formularz = document.createElement('form');
  3. formularz.setAttribute('action', 'send.php');
  4. formularz.setAttribute('method', 'post');
  5. pole = document.createElement('input');
  6. pole.setAttribute('type', 'text');
  7. (...)
  8. formularz.appendChild(input);
  9. document.body.appendChild(formularz);

?
mperlam
Tak, o coś tym stylu mi chodzi. Jak zatem zrobić w czymś takim pole tekstowe wysyłające treść do pliku (send.php)?
Pawel_W
popatrz na to co ci dałem i domyśl się winksmiley.jpg

podpowiem ci że np. aby otrzymać coś takiego:
  1. <input type="text" value="wartość" name="nazwa" />

służy taki skrypt:
  1. pole = document.createElement('input');
  2. pole.setAttribute('type', 'text');
  3. pole.setAttribute('value', 'wartość');
  4. pole.setAttribute('name', 'nazwa');
  5. document.body.appendChild(pole);

z powyższego przykładu oraz mojego poprzedniego postu powinieneś wywnioskować jak stworzyć taki formularz winksmiley.jpg
tog
dodatkowo jakby Ci pasowalo wysylanie metoda GET to mozesz uzywajac js pobrac to co uzytkownik wpisal do formularza a pozniej zrobic z tego adres i przeniesc uzytkownika pod ten adres

<input type="text id="mail" />

<script>
var mail
mail = getElementByld['mail'].value
var adres
adres = 'http://locallhost/wyslij.php?mail='+mail

//nie nie wiem jak sie robi przekierowanie
//musisz sobie znalezc i przeniesc uzytkownika na zmienna adres
</script>
mperlam
Dzieki. Formularz zrobiony. Mam tylko jeszcze malutkie pytanie na temat znaków relacyjnych. Czy jest znak, który będzie porównywalny treści i jeżeli jedna jest częścią drugiej, będzie zwracał True. Na przykład OKO, marOKO.
Pawel_W
strpos w php albo indexOf w js, ew. search + wyrażenia regularne
mperlam
Dzięki wielkie. Mój kawałek kodu, o którym mowa w temacie wygląda teraz bardzo ładnie i co najważniejsze - działa smile.gif

Kod
if (strpos($_SERVER[HTTP_REFERER], $_SERVER[HTTP_HOST]) !== false) {

}


Może komuś się przyda.

Hej, to znów ja. Mam kolejny problem. Chcę stworzyć formularz, który będzie działał jako AJAX. Znalazłem skrypt tutaj: http://funkcje.net/view/2/10/3294/index.html

Niestety nijak nie mogę podpiąć go pod następujący formularz:

Kod
<form method="post" action="send.php">
<label>Mail</label>
<input name="mail" type="text" size="30" />
<input class="button" value="Wyślij" type="submit" />


Skrypt nie chce odczytać tego co znajduje się w polu tekstowym i po wysłaniu formularza działa jak powinno ale "mail nie wpisany".
Pawel_W
to może pokażesz jak podpiąłeś? winksmiley.jpg
mperlam
Ok, jest w porządku. Ten kod nie obslugiwal formularzy post. Znalazłem inny i jest ok.
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.