Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Jak pogodzić echo i site reload ?
Morfi777
post 1.08.2009, 17:26:58
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 5.09.2007

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


Witam smile.gif

Mam na stronie jakiś tam formularz. Po nim zaczyna się kod php sprawdzający czy pola w formularzu zostały wypełnione.
Po weryfikacji jest wygląda to tak:
  1. <?php
  2. if($_POST["fullmapname"]&&!empty($_POST["fullmapname"])&&$_POST["shortmapname"]&&!empty($_POST["shortmapname"])&&$_POST["mappath"]&&!empty($_POST["mappath"])){
  3.    $sql="INSERT INTO mapy_lista ( fullname,skrot ) VALUES ( '".$_POST["fullmapname"]."','".$_POST["shortmapname"]."')";
  4.    mysql_query ($sql) or die ("Error 1".$sql);
  5.  
  6. $plik = fopen("/home/war/pliktxt.txt", "w+") or die ("Cannot open file!");
  7. $tresc = "Linia 1\nLinia 2\nLinia 3";
  8. fwrite($plik, $tresc);
  9. fclose($fh);
  10.  
  11.  
  12. echo '<script language="javascript"> location.href="cfgadd.php"</script>';
  13. echo 'Data Added';
  14. }
  15. ?>



Teraz, chciałem aby pojawil się tekst "Data Added". Jednocześnie chcę żeby ten skrypt z "location.href" się wykonał gdyż dzięki niemu po wciśnieniu F5 nie pojawia się komunikat postdata.


Da się te 2 rzeczy pogodzić ? Z góry dziękuję za pomoc

Ten post edytował Morfi777 1.08.2009, 17:27:49
Go to the top of the page
+Quote Post
TrevorGryffits
post 1.08.2009, 17:33:57
Post #2





Grupa: Zarejestrowani
Postów: 139
Pomógł: 24
Dołączył: 29.07.2007
Skąd: Tarnowskie Góry

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


Primo: nie można pogodzić. Jak chcesz, żeby jednocześnie się wyświetlił tekst i przy okazji skrypt przerzucił nas na następną stronę.
Secundo: nie chcesz, żeby można było wysłać formularz jeszcze raz. Chwalebne:) Polecam przyklejony temat z działu PHP "odświeżenie strony, zapis". Tam jest kilka sposobów.
Tertio: A skoro już będziesz przy przyklejonych to polecam poczytać jeszcze kilka. Szczególnie o SQL Injection. To tak odnośnie twojej 1. linijki.
Go to the top of the page
+Quote Post
Morfi777
post 1.08.2009, 17:51:34
Post #3





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 5.09.2007

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


Cytat(TrevorGryffits @ 1.08.2009, 18:33:57 ) *
Primo: nie można pogodzić. Jak chcesz, żeby jednocześnie się wyświetlił tekst i przy okazji skrypt przerzucił nas na następną stronę.
Secundo: nie chcesz, żeby można było wysłać formularz jeszcze raz. Chwalebne:) Polecam przyklejony temat z działu PHP "odświeżenie strony, zapis". Tam jest kilka sposobów.
Tertio: A skoro już będziesz przy przyklejonych to polecam poczytać jeszcze kilka. Szczególnie o SQL Injection. To tak odnośnie twojej 1. linijki.


Ad 1: No, myślałem, że może następować coś po sobie np. Odśwież a potem na 'nowej stronie' wyświetl.
Ad 2: Tak zrobię
Ad 3: Wiem, tylko, żeby do tego formularza się dostać przechodzimy przez skrypt logowania (porządnie napisanego) a i tak to jest tylko dla przyjaciół, nic mi po ich włamaniach. Ale dziękuję za troske
Go to the top of the page
+Quote Post
batman
post 1.08.2009, 17:52:33
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
Primo: nie można pogodzić. Jak chcesz, żeby jednocześnie się wyświetlił tekst i przy okazji skrypt przerzucił nas na następną stronę.
A właśnie, że można - np. settimeout w javascript.
Cytat
Secundo: nie chcesz, żeby można było wysłać formularz jeszcze raz. Chwalebne:) Polecam przyklejony temat z działu PHP "odświeżenie strony, zapis". Tam jest kilka sposobów.
Zgadzam się z przedmówcą. Poszukaj w tym temacie.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Morfi777
post 1.08.2009, 17:56:55
Post #5





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 5.09.2007

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


Cytat(batman @ 1.08.2009, 18:52:33 ) *
A właśnie, że można - np. settimeout w javascript.


próbowałem z funkcją "sleep" ale tylko przedłużył odświeżenie tej strony winksmiley.jpg
Go to the top of the page
+Quote Post
Fifi209
post 1.08.2009, 17:58:13
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(Morfi777 @ 1.08.2009, 17:56:55 ) *
próbowałem z funkcją "sleep" ale tylko przedłużył odświeżenie tej strony winksmiley.jpg


Sleep jest w php a on mówił o javascript. Czytaj uważniej.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Morfi777
post 1.08.2009, 18:14:44
Post #7





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 5.09.2007

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


Cytat(fifi209 @ 1.08.2009, 18:58:13 ) *
Sleep jest w php a on mówił o javascript. Czytaj uważniej.


Zauważyłem... mówię tylko, że myślałem o tym samym tylko niewłaściwą funkcję zastosowałem.

Dopiszę. Co wyczytałem.

# Ten trik z location.href czy header location przeładuje mi stronę i nie pogodzę tego z informacją o tym, że dane zostały wysłane
# Reszta rzeczy w tamtym temacie była o tym, że informacja o POSTDATA się pojawi tyle, że dane nie zostaną dodane -- takie coś mnie nie zadowala
# całą sprawę załatwiłby AJAX -- ale nie ma co się bawić z ajaxem przy tak błachostkowej rzeczy


Nie wiem jak poprawnie użyć funkcji settimeout zaproponowanej przez 'batman', mógłbys mnie poprowadzić tudzież odesłać do jakiejś strony ?
Bo wg mojego spojrzenia to ona mi może jedynie czasowo pokazać, że dane zostały dodane przez np 10 sekund po czym przeładuje strone (napis zniknie), o tym mówiłeś ?

Ten post edytował Morfi777 1.08.2009, 18:15:02
Go to the top of the page
+Quote Post
Fifi209
post 1.08.2009, 18:23:28
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Odmierzasz czas do przeładowania strony poprzez window.location ... za pomocą setTimeout


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
grzegosh
post 1.08.2009, 18:24:46
Post #9





Grupa: Zarejestrowani
Postów: 51
Pomógł: 3
Dołączył: 26.06.2008

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


Przeładuj stronę z jakąś zmienną np index.php?add=yes i sprawdzaj na nowej stronie czy $_GET['add']=='yes' jesli tak echo.
Go to the top of the page
+Quote Post
batman
post 1.08.2009, 18:38:25
Post #10





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




~Morfi777
1. echo "jakiś tekst";
2. settimeout
3. w settimeout robisz window.location

Jest to proste jak konstrukcja cepa. Prościej się już nie da wyjaśnić. Jeśli nie chcesz używać do tego javascript, to możesz użyć tego. Tylko pamiętaj o dodaniu opóźnienia w postaci settimeout. Na temat funkcji settimeout możesz poczytać np tutaj.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
TrevorGryffits
post 1.08.2009, 18:41:20
Post #11





Grupa: Zarejestrowani
Postów: 139
Pomógł: 24
Dołączył: 29.07.2007
Skąd: Tarnowskie Góry

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


Ale jeśli ustawi setTimeout to użytkownik może jeszcze wcześniej odświeżyć stronę.
Go to the top of the page
+Quote Post
Morfi777
post 1.08.2009, 18:43:08
Post #12





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 5.09.2007

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


Cytat(batman @ 1.08.2009, 19:38:25 ) *
~Morfi777
1. echo "jakiś tekst";
2. settimeout
3. w settimeout robisz window.location

Jest to proste jak konstrukcja cepa. Prościej się już nie da wyjaśnić. Jeśli nie chcesz używać do tego javascript, to możesz użyć tego. Tylko pamiętaj o dodaniu opóźnienia w postaci settimeout. Na temat funkcji settimeout możesz poczytać np tutaj.


Toć, spytałem się czy tak to działa sad.gif
Cytat
jedynie czasowo pokazać, że dane zostały dodane przez np 10 sekund po czym przeładuje strone (napis zniknie)



Dziękuję
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: 14.08.2025 - 05:29