Mam kolejny problem:
1. W katalogu serwera leza dwa pliki: index.html oraz index.php
2. Index.html zawiera trzy pola oraz przycisk sluzacy do wysylania, jest to formularz
3. Index.php to indeks frameworku CakePHP, caly portal ktos napisal tak, ze sie odswieza co 10 sekund
Problem: w tej chwili, w momencie gdy wpisze: http://mojadres.com wyswietla sie index.html. Dopoki nie wypelnimy wszystich pol w tym formularzu, nie przekieruje nas on na index.php. Jak to zrobic dowiedzialem sie w poprzednim temacie jaki ttuaj zalozylem. Jednak problem polega na tym ze gdy wywolam index.php, np tak: http:/mojadres.com/index.php jego zawartosc sie pokazuje, a nie powinna.
Co chce uzyskac: chce, aby po wypelnieniu wszystkich pol w index.html zrobilo sie ciasteczko. Kiedy wywolamy index.php, ma on sprawdzic czy istnieje/jest ustawione ciasteczko oparte na uprzednio wypelnionym formularzu. Jesli ciastko istnieje, index.php ma sie normalnie wykonywac. Jesli ciastko nie istnieje, ma wracac na index.html. Problem polega na tym iz ta strona sie auto-odswieza i nie da rady tego zrobic polem formularza i komenda isset zmienna. Po odswiezeniu zmienna ulega wyczyszczeniu.
Ten kod nie dziala ze wzgledu na autoodswiezanie, po pierwszym odswiezeniu nie pamieta co bylo w polu formularza i kaszani mi stronke.
Kod
if(!isset($_POST['username'])) {
header('Location: http://mojadomena/index.html');
}
header('Location: http://mojadomena/index.html');
}
Dzialanie ma byc dokladnie takie:
1. wywoluje z przegladarki adres http://mojadomena/index.php -> efekt: przekierowanie na strone index.html bo nie ma ciastka
2. bedac w index.html:
- wypelniam pola tekstowe,
- naciskam przycisk,
- wysylam dane do index.php, ktory (jesli pole jest wypelnione) tworzy ciastko
- przy kazdym autoodswiezeniu strony, index.php sprawdza czy ciastko istnieje, jesli nie przekierowuje na strone "SESJA WYGASLA", jesli ciastko jest obecne, skrypt ma normalnie dzialac.
Prosze Was o dowolny przyklad index.php, ktory po wcisnieciu refresh w przegladarce, sprawdzi obecnosc ciastka i wyswietli komunikat potwierdzajacy lub przekieruje na index.html.
Kod index.html
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>
<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>