Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Odswiezanie
-Gość_kuba-
post 2.09.2004, 18:56:19
Post #1





Goście







mam jakis tam plik, w ktorym mam link odnoszacy sie do strony wyloguj.php.
po kliknieciu tego linka, wyloguj.php powinno od razu mnie przeniesc do plan.php - bynajmniej tak bym chcial, ale nie dziala.

w wyloguj.php mam taki kod:
  1. <?php
  2. if (!isset($_COOKIE['nazwa'])) {
  3. header (&#092;"Location: http://localhost/plan/plan.php\");
  4. exit();
  5. } else {
  6. setcookie ('nazwa', '', time()-10, '/', '', 0);
  7. }
  8. ?>


dziala dopiero po kliknieciu 'odswiez'.
jak to poprawic?
Go to the top of the page
+Quote Post
kszychu
post 2.09.2004, 19:10:22
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


Może za pierwszym razem masz nieustawione ciastko?


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
-Gość_kuba-
post 2.09.2004, 20:09:23
Post #3





Goście







ciastka mam poustawiane, bo...
podczas logowania jest tworzone ciastko i ktos tam jest przekierowywany do admin.php, gdyby nie bylo ciastka, wowczas niemoglby sie wyswietlic ten plik w oknie przegladarki.
problem mam tylko z wylogowaniem, a wlasciwie, odswiezaniem, bo wylogowuje poprawnie.

a to kod potwierdzajacy, ze ciastko jest tworzone:
  1. <?php
  2. include ('../plik.php');
  3. if (isset($_POST['wyslij'])) {
  4. $message = NULL;
  5. if (strlen($_POST['haslo1']) > 0) {
  6. if (($_POST['haslo1']) == HASLO2) {
  7. $haslo = TRUE;
  8. } else {
  9. $haslo = FALSE;
  10. $message .= 'podałe&para; nieprawidłowe hasło.' . '<br />';
  11. }
  12. } else {
  13. $haslo = FALSE;
  14. $message .= 'podaj hasło.';
  15. }
  16. if ($haslo) {
  17. setcookie ('uzytkownik', HASLO2, time()+1200, '/', '', 0);
  18. header (&#092;"Location: http://localhost/folder/admin.php\");
  19. exit();
  20. } else {
  21. $message .= 'spróbuj jeszcze raz.';
  22. }
  23. }
  24. ?>
Go to the top of the page
+Quote Post
Andree
post 2.09.2004, 22:41:44
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.11.2003
Skąd: zewsząd

Ostrzeżenie: (10%)
X----


a moze daj to
  1. <?php
  2.  
  3. if (!isset($_COOKIE['nazwa'])) {
  4. header (&#092;"Location: http://localhost/plan/plan.php\");
  5. exit();
  6. } else {
  7. setcookie ('nazwa', '', time()-10, '/', '', 0);
  8. header (&#092;"Location: http://localhost/plan/plan.php\");
  9. }
  10.  
  11. ?>



sam jestem poczatkujacy,ale wydaje mi sie ze nie dziala od razu po kliknieciu dlatego ze jesli ciacho jest to je kasuje tylko ,ale skrypt sie sam nie odswieza smile.gif

Ten post edytował Andree 2.09.2004, 22:57:45


--------------------
Go to the top of the page
+Quote Post
-Gość_kuba-
post 3.09.2004, 12:45:42
Post #5





Goście







a no rzeczywiscie... tylko walnac sie w sciane. teraz wydaje sie to takie banalne, ze az mi glupio... dzieki.
Go to the top of the page
+Quote Post
jareks
post 29.09.2004, 00:27:20
Post #6





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.03.2004

Ostrzeżenie: (0%)
-----


Mam podobny problem, dlatego nie zakładałem nowego tematu.

Napisałem prosty system newsowy z możliwością komentowania oparty o bazę mysql. Chciałbym, by po wysłaniu komentarza z formularza do bazy strona odświerzyła się, by automatycznie można było zobaczyć napisany komentarz. (F5 powoduje, że komentarz ten zapisuje się do bazy jeszcze raz).

Próbowałem użyć proponowanej funkcji header("Location: "), jednak mam problem z poprawnym jej użyciem.

Cytat
header() może być wywoływana jedynie do momentu nim zostanie wysłana jakakolwiek treść, tzn. znaczniki HTML, puste linie lub wynik pracy php
Tymczasem przecież ja wysyłam wcześniej na stronę formularz.

Cytat
można użyć buforowania wyjścia aby ominąć ten problem. Wszystko, co skrypt wyśle do przeglądarki zostanie zatrzymane na serwerze do momentu, kiedy pojawi się instrukcja wysłania danych. Można to zrobić za pomocą funkcji ob_start() i ob_end_flush()
Nie bardzo jednak wiem jak się do tego zabrać.

Będę wdzięczny za jakieś wskazówki.
Za wskazówkę typu "Odsyłam do wyszukiwarki" serdecznie dziękuję. Za strony w języku innym niż polski również tongue.gif
Go to the top of the page
+Quote Post
yavaho
post 29.09.2004, 01:42:43
Post #7





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Cytat
Chciałbym, by po wysłaniu komentarza z formularza do bazy strona odświerzyła się, by automatycznie można było zobaczyć napisany komentarz.
Jezeli formularz do wysylania komentarzy i skrypt wyswietlajacy te komentarze beda znajdywac sie na jednej i tej samej stronie to nie musisz uzywac funkcji header.
Musisz tylko zbudowac taką strone z zachowaniem odpowiednej kolejnosci.
Np tak:
1) Sprawdzenie poprawnosci danych wysłanych z formularza
2) Zapisanie komentrzy do bazy
3) Odczytanie z bazy i wyswietlenie
4) Formularz

Jezeli formularz masz na osobnej stronie to musisz uzyc funkcji "header('Location: jakasstrona.php')" Tylko ze ta funkcja musi sie znajdywac na samym poczatku strony. Jezeli funkcji header nie mozesz umiescic na poczatku strony to musisz uzyc buforowania wyjścia i zastosowac funkcje: ob_start() i ob_end_flush(). Jako pierwszy wiersz na stronie dajesz: ob_start() a ostatni ob_end_flush().

Cytat
(F5 powoduje, że komentarz ten zapisuje się do bazy jeszcze raz).
A co do zabezpieczenia strony przed kilkakrotnym wyslaniem jednego i tego samego komentarza to zastosuj ciasteczka lub sesje. Ja mam inne rozwiazanie: Przed zapisem komentarza do bazy danych sprawdzam czy w bazie nie istnieje juz identyczny komentarz wyslany przez ta sama osobe z tego samego IP w przeciagu ostatnich kilku minut.


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
jareks
post 30.09.2004, 15:22:55
Post #8





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.03.2004

Ostrzeżenie: (0%)
-----


Odczytanie i wyświetlanie komentarzy realizuje w pliku wyswietlajacym newsa. Natomiast dodawanie komentarza już w innym pliku.

Tak czy inaczej, pomocna wydaje mi się wskazówka o sprawdzeniu czy komentarz dany komentarz napisany już przez tą samą osobę już istnieje w bazie.

Dzięki za odpowiedź. Pomogłeś. smile.gif

Wpadłem na inny pomysł:
Za pomocą javascript otwieram nowe okno, gdzie jest samo dodanie komentarzy bez ich wyświetlanie. Tylko jak tam przesłać zmienną o wartości równej numerowi komentowanego newsa, który jest niezbędny do zapisania komentarza?

Oto fragment javasript, który wykorzystuje.
W ramach <head></head>:
  1. <!--
  2. function displayWindow(url, width, height) {
  3. var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height + ',resizable=0,scrollbars=yes,menubar=no' );
  4. }
  5. //-->

i dalej:
  1. <A HREF=javascript:displayWindow('news/komentarze/dodaj.php',676,510)>Dodaj komentarz</A>


Ten post edytował jareks 30.09.2004, 15:29:51
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 06:09