Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML] Komunikat bledu php na stronie html
Forum PHP.pl > Forum > Przedszkole
Wolfie
Witam

Mam sobie formularz napisany w html ktory sluzy do uploadowania plikow, po wcisnieciu submit-a nastepuje przejscie do skryptu php ktory weryfikuje dane. Przykladowa weryfikacja wyglada tak :

  1. <?php
  2. //Sprawdzenie czy plik został wysłany
  3.    if(!is_uploaded_file($_FILES['image_filename']['tmp_name'])) {
  4.        echo "Musisz wybrac jakis plik do uploadu!";
  5.    }
  6. ?>


Ale nie chce zeby komunikat wyswietlal sie na osobnej stronie tylko na tej samej stronie na ktorej jest formularz.....
baranek77
to musisz wysłać formularz do tego samego pliku lub władować ten alert do sesji i wyświetlić go na tej stronie co chcesz
dk1342
możesz to zrobić np. tak:

zamiast

  1. <?php
  2. echo "Musisz wybrac jakis plik do uploadu!";
  3. ?>

daj
  1. <?php
  2. header('Location: formularz.php?mode=nie_wybrano');
  3. ?>


a w pliku gdzie masz formularz daj:
  1. <?php
  2. if($_GET['mode'] == "nie_wybrano"){
  3. echo "Nie wybrales pliku";
  4. }
  5. ?>
Zyx
Pozostaje Ci albo AJAX i zabawa z JavaScriptem po stronie przeglądarki, albo odrysowanie całego formularza na nowo i powypełnianie go wartościami, które wpisał poprzednio użytkownik. Ręcznego robienia czegoś takiego wybitnie nie polecam; dużo prościej i bezpieczniej jest użyć jakiegoś systemu generowania i obsługi formularzy.
slawny
Zrób formularz i walidacje w jednym pliku....
Wolfie
Najprostsze rozwiazanie przedstawil chyba dk1342....ale czy najlepsze ?
ferrero2
Moim zdaniem nie najlepsze.
Nie potrzeba przekierowywać nigdzie użytkownika.
Piszesz sobie skrypt do obsługi formularza np. analizuj.php, który zawiera wszystkie restrykcje dotyczące pól. Czyli np. walidacja poprawności adresu e-mail, długość loginu, zgodność haseł itd.
Jeżeli coś się nie zgodzi ustawiasz zmienną $blad na 1. i np $blad_login = "login jest za krótki"

Masz stronę główną z formularzem np.

Index.php

Umieszczasz w nim formularz dajesz action = index.php (czyli na tą samą stronę) wysyłasz poprzez POST.
W formularzu przycisk np. WYSLIJ

i następnie piszesz na górze pliku index.php

[code]
if $_POST['wyslij']
{
require(analizuj.php);
}
else
{
#tutaj strona startowa informacje na temat formualrza + sam pusty formularz
}
[code]


Pod require dajesz if-a lub switcha. Jeżeli $blad nie równa się 0 to wyswietl zmienne które zostały ustawione w analizie np. $blad_haslo
i nastepnie wyswietlasz ten sam formularz tylko wypelniony z wartościami $_POST i tyle.

Wszystko odbywa się w jednym pliku z analizą doklejoną.

Niewiem czy to optymalne ale zawsze sięsprawdza i działa szybko (oczywiscie to nie konkurencja dla AJAXA tylko weryfikacja po stronie serwera)

Niewiem czy wszystko jasno napisałem ale koncze prace i zajrze tu dopiero wieczorem smile.gif

Poprawcie mnie jeśli się mylę

Pozdrawiam
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.