
A działanie tego kodu jest takie, że jak nacisnę "rejestruj", wszystkie pola dostaję na niebiesko z hasłem "proszę uzupełnić". I nigdy nie udaje mi się go wysłać. Z pewnością działałby, gdybym odwoływał się bezpośrednio do zmiennych z $_POST, ale wolę tego unikać, bo czytałem jakiś artykuł o atakach XSS gdzie coś było, że tworzy to lukę dla takiego ataku.
<?php class rej{ var $wyslano; var $ile = 9; //ilość pól formularza-1 - potrzebne do pętli public function __construct($form_table, $wyslano) { for ($i=0;$i<$this->ile;$i++){ } } private function input($value, $name, $style, $opis){ echo '<input type="text" maxlength="100" name="'.$name.'" value="'.$value.'" style="'.$style.'" /> '.$opis; } private function przypiszOpisy(){ $this->opisy[0] = 'Login'; $this->opisy[1] = 'Hasło'; $this->opisy[2] = 'Powtórz hasło'; $this->opisy[3] = 'E-mail'; $this->opisy[4] = 'Imię'; $this->opisy[5] = 'Nazwisko'; $this->opisy[6] = 'Ulica i nr domu/mieszkania'; $this->opisy[7] = 'Kod pocztowy'; $this->opisy[8] = 'Miasto'; $this->opisy[9] = 'Telefon kontaktowy'; } public function formularz(){ $this->przypiszOpisy(); for ($i=0;$i<$this->ile;$i++){ $this->input($this->form[$i], 'form["'.$i.'"]', 'background-color: lightsteelblue;', $this->opis[$i].' - proszę uzupełnić'); }else{ $this->input($this->form[$i], 'form["'.$i.'"]', '', $this->opis[$i]); } } } public function czyWypelniono(){ return true; }else{ return false; } } }//end class rej $r = new rej($_POST["form"],$_POST["wyslano"]); if ($r->czyWypelniono()){ }else{ $r->formularz(); } ?>