Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jeden skrypt, wiele stron
Szunaj85
post
Post #1





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

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


Chciałem zapytać o taką rzecz. Mam 1 skrypt, który na końcu zapisuje wyniki do pliku txt. Chcę zrobić żeby był wywoływany z kilku podstron przez polecenie.
  1. <?php include"skrypty/skrypt.php"; ?>
Oczywiście można by zrobić ten sam skrypt dla każdej strony oddzielnie edytując jedynie do jakiego pliku miałby zapisywać wynik. Ale po co?
Problemu by nie było gdyby ten skrypt zapisywał wynik do jednego pliku. Ja natomiast chcę zrobić to trochę inaczej. Załużmy, że w tej chwili wywołuje ten skrypt ze podstrony 2:
Wywoływanie skryptu z konkretnej podstrony.
Podstrona 1
Podstrona 2 (wywołuje skrypt przez <?php include("skrypty/skrypt.php"); ?>)
Podstrona 3

Budowa skryptu.
Skrypt w jakiś sposób namierza z której podstrony został wywołany.
-------------------------------------------------------------
Skrypt właściwy wykonuje operacje
-------------------------------------------------------------
Zapis do pliku txt 1
Zapis do pliku txt 2 (zapisuje wynik do pliku txt 2)
Zapis do pliku txt 3

Wyświetla wyniki poprzez echo
Odczyt pliku txt 1
Odczyt pliku txt 2
Odczyt pliku txt 3
Zastanawia mnie jeszcze jedna rzecz. Czy skrypt się nie sypnie jeżeli w jednoczesnym czasie zostanie wywołany z co najmniej dwóch podstron jednocześnie. Może da się temu jakoś zapobiec. Mam nadzieję, że w miarę jasno wytłumaczyłem. (IMG:http://forum.php.pl/style_emoticons/default/tiredsmiley.gif)

Ten post edytował Szunaj85 29.05.2008, 15:42:40
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #2





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Nie możesz includować plików pomiędzy serwerami, możesz wywoływać skrypt przez adres z odpowiednimi parametrami tylko na jednym serwerze.
Go to the top of the page
+Quote Post
Szunaj85
post
Post #3





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

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


Źle zrozumiałeś. Operacja ma być wykonywana na jednym serwerze.
Właściwie to ja popełniłem błąd, ale już poprawiłem.

Ten post edytował Szunaj85 29.05.2008, 13:42:37
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #4





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Cytat(Szunaj85 @ 29.05.2008, 12:21:58 ) *
Źle zrozumiałeś. Operacja ma być wykonywana na jednym serwerze.


No to po co napisałeś, że strona odpala skrypt za pomocą

  1. <?php include("skrypty/skrypt.php"); ?>


z tego wynika że będzie includowany przez różne serwery.. mniejsza o to. Co do Twojego pytania o dostęp jednoczesny kilku stron poczytaj w manualu o flock" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
pest
post
Post #5





Grupa: Zarejestrowani
Postów: 78
Pomógł: 15
Dołączył: 10.12.2007
Skąd: Lublin

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


Zakładając, że obie strony znajdują się na jednym serwerze, to możesz includować plik na wielu stronach. Niby można includować też pliki z zewnętrznych stron, ale ze względów bezpieczeństwa, możliwość taka jest zazwyczaj wyłączona.

W samym skrypcie żeby rozpoznać z jakiej strony został wywołany - możesz się posłużyć się tablicą $_SERVER, tam są elementy takie jak:
  1. <?php
  2. $_SERVER["SERVER_NAME"]
  3. $_SERVER["HTTP_HOST"]
  4. ?>


Cytat(sniezny_wilk @ 29.05.2008, 14:27:39 ) *
z tego wynika że będzie includowany przez różne serwery.. mniejsza o to. Co do Twojego pytania o dostęp jednoczesny kilku stron poczytaj w manualu o [manual\]flock\[/manual\]


Jak dla mnie to nie wynika z tego, że będzie includowany przez różne serwery, ale mniejsza o to. Jeśli skrypt ma być tylko uruchamiany, to nie ma potrzeby go blokować w żaden sposób, bez problemu wykona się 2 i 10 razy w tym samym czasie.

Jeśli chodzi o blokowanie pliku, do którego dane są zapisywane, to jeśli dane do pliku są dodawane na końcu, to plik powinien być otwarty za pomocą fopen('path_to_file', 'a'). Wtedy nie należy się martwić o blokowanie, bo mechanizm php sam sobie z tym radzi (operacja taka jest atomowa i nie szkodzi niczemu)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 18:41