Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zabezpieczyc przed pustymi wpisami ???
Forum PHP.pl > Forum > PHP
paweln
no wlasnie mam taki kod zapisujacy z formularza do pliku tylko ze on zapisuje i puste wyslania, jak zrobic aby ich nie bylo. A i jeszcze zeby przy odswiezaniu strony nie wpisywalo tego drugi raz. probowalem cos tam wymyslic ale to nie dziala sad.gif

[php:1:6f061cadf5]<?php
if ($name == "" || $email == "" || $message == "")
{
echo "Wypelnij wszystkie pola";
}

else
{
$dane[0] = $_POST['name'];
$dane[1] = $_POST['email'];
$dane[2] = $_POST['message'];


$file="dane.txt";
$fp=fopen("$file", "a");
flock($fp, 2); //blokujemy
fwrite($fp, "$dane[0]n");
fwrite($fp, "$dane[1]n");
fwrite($fp, "$dane[2]n");
flock($fp, 3); //odblokowujemy
fclose($fp);
}
?>[/php:1:6f061cadf5]
Mam nadzieje ze zrozumieliscie o co mi chodzi.
___
[scanner] Proszę umieszczać listingi wewnątrz odpowiednich znaczników.
BzikOS
Ja stosuje 2 zabezpieczenia. Pierwsze po stronie klienta np.

[xml:1:ad55bd3360]
<script language="JavaScript" type="text/javascript">
<!--
function CheckForm() {
errors = false;

if(document.formularz.zmienna.value.length < 1) {
errors = "Puste pole zmienna";
}

if(errors) {
alert(errors);
return false;
} else {
return true;
}
}
//-->
</script>

<form name="formularz" method="post" action="costam.php" onsubmit="return CheckForm(this)">

<input type="text" name="zmienna">

</form>
[/xml:1:ad55bd3360]

a drugie po stornie servera, czyli:

[php:1:ad55bd3360]<?php
if(empty($_POST['zmienna'])) {
print("Puste pole zmienna.");
}
?>[/php:1:ad55bd3360]

A co do powtórnego wypełniania pól formularza to po prostu tworzysz formularz z wstawianiem od razu zmiennych, czyli:

[php:1:ad55bd3360]<?php
print('<input type="text" name="zmienna" value="'.$_POST['zmienna'].'">');

?>[/php:1:ad55bd3360]
members_of_mayday
BzikOS to java kupe niepotrzebnego kodu .

wystarczy dać petle IF
[php:1:4de5fb26a8]<?php

if ($zmienna == "0")
{
echo " pozostawileś puste pole ";
}

?>[/php:1:4de5fb26a8]
BzikOS
Nic nierozumiem... tzn. twierdzisz, że skrypt javy jest zbędny?

A co do pętli IF... hmm... znam pętle for, foreach, do, while, ale o pętli if nie słyszałem tongue.gif
kurtz
Cytat
BzikOS to java kupe niepotrzebnego kodu .
po pierwsze javaSCRIPT.

po drugie wg mnei potrzebny a na pewno nie szkodzacy - nie dojdzie do submitu formularza jesli sa bledy.

Pozdrawiam
members_of_mayday
nazywaj to jak chcesz

If wiesz o co beiga więc ..

moim zdaniem java jest zbędna jeżeli popracujesz nad tą petla if smile.gif to też nie bedzie submitu

kurts wsadz se te scrpit w ... wiem jaka jes róznica miedzy java a java scriptss ale jak musze to pisac to specjalnie dla Ciebie zaczne
BzikOS
Cytat
moim zdaniem java jest zbędna jeżeli popracujesz nad tą petla if smile.gif to też nie bedzie submitu

A gdzie/w czym/jak chcesz tego if'a używać jeśli nie w JavaScript i nie dochodząc do submita?
Mnichasso
A jak zastosować ten kod jawa do <INPUT TYPE="CHECKBOX" SIZE="1">, że jeżeli użytkownik nie zaznaczy tego pola to nic sie nie stanie ?
BzikOS
Heh, jeśli checkbox nie musi być zaznaczany to jaki jest sens w ogóle go sprawdzać? smile.gif
members_of_mayday
tak
Mnichasso
Mam formularz są tam pola i jest pole o treści : Zgadzam się z regulaminem <INPUT name="zaznacz" TYPE="CHECKBOX" SIZE="1">

I chciałem zrobić tak że jeżeli nie zaznaczy sie pola checkbox to formularz nie zostanie przetworzony, a jeżeli sie zaznaczy to będzie normalnie przetwarzany.
BzikOS
[xml:1:9d178a1323]
if(document.formularz.zaznacz.checked == False) {
// cos tam cos
} else {
return true;
}
[/xml:1:9d178a1323]

Z JavaScript'u nie jestem za mocny, ale wydaje mi się, że obiekt "checkbox" posiada metodę "checked", więc trzeba ją po prostu odczytać...
Mnichasso
Coś mi nie chce działać sad.gif
BzikOS
Sprawdź nazwę formularza.

[xml:1:1517533c7f]<form name="formularz" ...>[/xml:1:1517533c7f]
e-Gandalf
Jak juz nauczamy, to chociaz poprawnie...

Kod
document.forms['formularz'].elements['zaznacz'].checked


Lub, zgodnie z notacja DOM

Kod
document.getElementById('zaznacz').checked


i wtedy

[xml:1:48e2f91adb]
<input type="checkbox" id="zaznacz" />
[/xml:1:48e2f91adb]
BzikOS
Ja nie nauczam, ja po prostu radzę na podstawie własnego doświadczenia (a z JS nie jest ono duże).
Mnichasso
e-Gandalf to jak powinien wyglądać cały kod java script questionmark.gif Bo nie wiem.
e-Gandalf
Mnich... ciagniesz za jezyk ;p a pouczyc sie nie laska? Ale niech bedzie. Nowy tu jestem, to jeszcze troche dobrej woli mam smile.gif
[xml:1:15925fb4f1]
<html>
<head>
<script type="text/javascript">
function validate () {
var check = document.getElementById('accept');
if(check.checked) {
return true;
} else {
alert('prosze zaznaczac ten checkbox');
return false;
}
}
</script>
</head>
<body>
<form name="form1" action="" method="POST">
<input type="checkbox" id="accept" value="true" />
<input type="submit" value="Slij" onclick="validate()"/>
</form>
</body>
</html>[/xml:1:15925fb4f1]

Cos w tym stylu. Zadziala dla Gecko, IE, Opery i KHTMLa.
FiDO
a nie powinno byc czasem onClick="return validate();"?
paweln
Dzieki za podpowiedzi. Jak bedą problemy to się jeszcze zgłoszę smile.gif.
Mnichasso
FiDIO masz racje powinno być onClick="return validate();" bo jak było onclick="validate()" to i tak przetwarzało formularz. Teraz już jest ok smile.gif Dzięki za pomoc.
e-Gandalf
Cytat
a nie powinno byc czasem onClick="return validate();"?


Jasne smile.gif Dzieki za QA smile.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.