• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Walidacja formularza

Object Storage Arubacloud
0 głosów
113 wizyt
pytanie zadane 5 grudnia 2021 w PHP przez mat19 Obywatel (1,580 p.)

Robię walidację w formularzu. Problem polega na tym ze gdy nacisne przycisk dodaj, to powinno wyswietlac błedy albo dodać do bazy danych, a pokazuje się tylko biała strona.

<?php

class FormRegisterValidation
{
    
	public function __construct(
	    private $data,
        private  $database,
    ){}
    
	public function LoginValidation(): void
	{
		 $val = htmlspecialchars($this->data['login']);

        try {

            if (empty($val)) {
                throw new Exception("Puste pole");
            }
        }
        catch (FormRegisterValidation $e){
            echo $e->errorMessage();
        }
	}
}
?>

 

komentarz 5 grudnia 2021 przez Arkadiusz Waluk Ekspert (287,950 p.)

Metoda errorMessage() wyjątku na pewno coś zwraca? Nie wiem jaki jest dalszy kod, ale jeśli tu się kończy to jest tylko jedno echo i jeśli by nic nie zwróciła to może dlatego jest pusto.

Masz włączone wyświetlanie błędów PHP? Można to sprawdzić/zmienić w pliku php.ini, ewentualnie można też jednorazowo na początku kodu dodać

ini_set('display_errors', 'on');

Składniowo to co pokazałeś wygląda ok, więc ciężko stwierdzić coś więcej.

1 odpowiedź

0 głosów
odpowiedź 5 grudnia 2021 przez mordimer Mądrala (5,720 p.)

Pokazałeś przepis na klasę a nie pokazałeś jak to w ogóle wywołujesz. I masz w tej klasie co najmniej kilka błędów:

1. Nie przypisujesz zmiennej data w konstruktorze do pól w klasie strzelam że powinno być:
 

private   $data;

private   $database;

public function __construct(

        private $data,

        private  $database,

    ){

$this->data = $data;

$this->database = $database,

}

2. Na ten moment leci ci wyjątek o nie istniejącym kluczy w tej tablicy (ale nie widzisz go bo tak jak ci zasugerował Arek nie masz pewnie wyłącznych błędów):

$val = htmlspecialchars($this->data['login']);

3. Zmienna $database wygląda jako coś nie potrzebnego bo nie używasz tego nigdzie (chyba że jest to zarysem jakiegoś interfejsu )

komentarz 6 grudnia 2021 przez Arkadiusz Waluk Ekspert (287,950 p.)

Podobne pytania

0 głosów
1 odpowiedź 94 wizyt
pytanie zadane 28 września 2023 w PHP przez dominik808 Nowicjusz (140 p.)
0 głosów
1 odpowiedź 100 wizyt
pytanie zadane 7 grudnia 2020 w PHP przez Młody programista Obywatel (1,200 p.)
0 głosów
1 odpowiedź 176 wizyt
pytanie zadane 25 lutego 2020 w PHP przez franz Gaduła (4,940 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,962 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...