Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Logowanie html -> php
Forum PHP.pl > Forum > Przedszkole
trzcina
Witam wszystkich,

Słuchajcie mam taki oto problem.

1. Na serwerze jest index.html, składający się z 3 pól tekstowych. W środku index.html jest funkcyjka sprawdzająca czy delikwent wypełnił wszystkie pola.

2. Na serwerze jest również index.php, do którego użytkownik ma zostać przekierowany po wypełnieniu wszystkich pól z (1)

3. Niestety, jak wpisze sie domena.pl/index.php to wszystko widac


PYTANIE: jaki kod umiescic w index.php, ktory by sprawdzal zmienne z html i w zaleznosci od ich obecnosci pokazywal zawartosc index.php lub odsylal z powrotem do formularza logujacego? Pozniej chce to rozbudowac o MySQL ale teraz chodzi mi tylko o to, zeby nie mozna bylo zobaczyc index.php bez uprzedniego wypelnienia index.html

Oto kod formularza html. Bardzo prosze o kod do index.php, jakikolwiek, ktory spelnialby w/w opisana funkcjonalnosc.

Kod
<html>
<head>
</head>
<body>
<script type="text/javascript">
// <![CDATA[
function sprawdz(formularz)
{
    for (i = 0; i < formularz.length; i++)
    {
        var pole = formularz.elements[i];
        if (!pole.disabled && !pole.readonly && (pole.type == "text" || pole.type == "password" || pole.type == "textarea") && pole.value == "")
        {
            alert("Prosze wypelnic wszystkie pola!");
            return false;
        }
    }
    return true;
}
// ]]>
</script>

<form action="index.php" method="post" onsubmit="if (sprawdz(this)) return true; return false">
<div>
    Imie: <input type="text" name="username" /><br />
    Nazwisko: <input Nazwisko type="text" name="username2" /><br />
    Haslo:<input Haslo type="password" name="userpassword" /><br />
    <input type="submit" value="OK" />
</div>
</form>
</body>
</html>
markonix
isset - czy zmienne z formularza istnieją
header - przekierowanie (lub w js)
CuteOne
co znaczy "wszystko widać" o.O?? dodaj na początku skryptu w index.php
  1. if(!isset($_POST['username'])) {
  2. }


Jeżeli ktoś nie przeszedł z index.html wypełniając formularz zostanie automatycznie przeniesiony do index.html

ps. index.php nie jest plikiem do obsługi autoryzacji
trzcina
Cute,

Zaraz sprawdze Twoj kod ale chyba wlasnie o to mi biega. Mowiac ze wszystko widac, mam na mysli ze jak wpisuje mojadomena.com/index.php (a index.php nie jest u mnie plikiem autoryzujacym) widac jego zawartosc. A nie chce zeby bylo to widac dopoki nie wypelnie index.html

W jednym katalogu (tam gdzie index.html) zrobilem taki plik index.php:

Kod
<?php
if(!isset($_POST['username'])) {
header('Location: index.html');
}
else
echo 'It works!;
?>
//jesli obecna jest zmienna username, wyswietl potwierdzenie
<html>
It works
</html>


1. czy efektem powyzszego kodu, jest wyswietlenie sie "it works" tylko w przypadku kiedy zmianna 'username' jest niepusta?

2. czy teraz, jak wywolam index.php poprzez wpisanie: http://mojadomena/index.php, bez uprzedniego wypelnienia formularza html, pojawi mi sie jego zawartosc, czy mnie przekieruje na index.html? Chodzi mi o sposob lokalnego przekierowania, czy mozna po prostu wpisac nazwe pliku czy trzeba jakos inaczej to zrobic?
Szadow
Spróbuj tak:
  1. <?php
  2. if(!isset($_POST['username'])) {
  3. header('Location: index.html');
  4. }
  5. else
  6. {
  7. echo 'It works!;
  8. ?>
  9. //jesli obecna jest zmienna username, wyswietl potwierdzenie
  10. It works
  11. </html>
  12. <?php } ?>


Z powyższym kodem:
1.Tak
2.Tak
trzcina
Szadow i pozostali dziekuje za podpowiedzi. Wyglada na to ze dziala ale ostatecznie upewnie sie za 2h. Bardzo chcialbym Was poprosic o dalsza pomoc - kolejnym etapem bedzie rozbudowa formularza o rejestracje w MySQL. Uzytkownik bedzie mogl zarejestrowac sie w bazie a index.php bedzie pobieral uzytkownikow z bazy i sprawdzal poprawnosc z formularzem html - oczywiscie przykladow na necie jest mnostwo ale sorry - prawie zaden z nich mi nie dzialal przez copy-paste, wole sam zrobic od zera.
Szadow
Nie dam ci gotowca ale jeśli chcesz zrobić logowanie:
1. Używaj Sesji i isset
2.Przy rejestracji filtruj wszystkie dane a hasła w bazie koduj MD5 i sha1
trzcina
Dzieki za podpowiedz, session_start(); bedzie w nastepnym temacie. O md5 wiem ale sha1 jeszcze nie.

Cytat(Szadow @ 17.12.2010, 16:05:45 ) *
Spróbuj tak:
  1. <?php
  2. if(!isset($_POST['username'])) {
  3. header('Location: index.html');
  4. }
  5. else
  6. {
  7. echo 'It works!;
  8. ?>
  9. //jesli obecna jest zmienna username, wyswietl potwierdzenie
  10. It works
  11. </html>
  12. <?php } ?>


Z powyższym kodem:
1.Tak
2.Tak


Czesc. Niestety nie dziala. Pojawia sie biala strona, gdy podgladam zrodlo strony mam pusto.
mozecie sami sprawdzic: trzcinson.no-ip.org


OK, kod uzytkownika Cute zadzialal.

DZIEKI!
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.