Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] POST do kilku skryptów/czy można?
Forum PHP.pl > Forum > Przedszkole
kozioł
Witam ,

czy mozna przekazać dane z formularza do 2-ch skryptów

1) pierwszy który wyświetla mi dane z formularza na ekranie w formie tabelki
2), a drugi ma te same dane przenieść do excela.

jednak działa mi odnośnik tylko do jednego skryptu z formularza , drugi nie jest brany pod uwagę

można to jakośc obejść?


dzięki jak zwykle za pomoc


pozdrawiam
nospor
forma rzucasz do skryptu ogolnego, a w ogolnym includujesz skrypty odpowiedzialne za rozne przetwrzanie tego posta i juz
kozioł
dzieki "nospor' aleś zagrypsował :-))

ja dopiero w przedszkolu jestem ,

nie zrozumiałem nic tego co napisałeś
nospor
no chyba wyraźnie napisalem smile.gif
Cytat
forma rzucasz do skryptu ogolnego,

  1. <form action="ogolny.php">
  2. ....
  3. </form>



Cytat
a w ogolnym includujesz skrypty odpowiedzialne za rozne przetwrzanie tego posta i juz

ogolny.php
  1. <?php
  2. include('przetwarzaniedotabelki.php');
  3. include('przetwarzaniedoexcela.php');
  4. ?>


Juz lepiej?

edit:
oczywiscie nazwy ogolny.php, przetwarzaniedotabelki.php, przetwarzaniedoexcela.php sa to nazwy wymyslone na poczekaniu. ty sobie nazwij te pliki jak ci wygodnie.
kozioł
dzięki :-)

teraz jest jasne




jednak cos nie działa sad.gif

zrobiłem tak jak napisałeś ,

a działa tak że zmienne wysyłane są z formularza do pierwszego skrypu który wpiszę w pliku nazwijmy go ogolny.php

do drugiego nie (jak zamienie miejscami to działa ten ktory był poprzednio drugi), i po za tym że dane w pierwszym skrypcie sie wyświetlają poprawnie , mam taki komunikat pod spodem

  1. <?php
  2. Warning: Cannot modify header information - headers already sent by (output started at C:Program FilesVertrigoServwwwbaza2.php:34) in C:Program FilesVertrigoServwwwexcel.php on line 13
  3. ?>



PS. czy dane w skryptach odbieram tak jak poprzednio POSTEM ?

dzieki
nospor
dane z $_POST musza trafiac (nie maja wyjscia) zarowno do pierwszego jak i do drugiego includowanego skryptu. Nie ma bata by nie trafialy... no chyba ze ty je w pierwszym skrypcie kasujesz, co byloby totalnie nie odpowiedzialnym posunieciem. Wiecej ci nie powiem bo nie widze Twojego kodu.

Co do bledu co pokazales to szukaj na forum pod haslem:
"headers already sent"
kozioł
no nie daje sobie rady

to początek mojego formularza:
1)

formularz.php

  1. <?php
  2. <html>
  3. <head>
  4. <title>formularz</title>
  5. <style type ="text/css">
  6. TD{color:#353535;font-family:verdana}
  7. TH{COLOR:#FFFFFF;font-family:verdana;background-color:#336699}
  8. </style>
  9. </head>
  10. bgproperties="fixed">
  11.  
  12. <form action = "ogolny.php" method = "POST">
  13.  
  14.  
  15.  
  16. <table border="2"cellspacing="1" cellspacing="3"
  17. bgcolor="#3888853535" align="center">
  18. ?>


to pliczek z include:
ogolny.php

2)
  1. )<?php
  2. include('baza2.php');
  3. include('excel.php');
  4. ?>


a to kawałki skryptów które powinny przyjąc dane z formularza:

3)
baza2.php

  1. <html>
  2. <head>
  3. <title>
  4. Zawartosc bazy
  5. </title>
  6. </head>
  7.  bgproperties="fixed">
  8. <form action = "rez.php" method = "POST">
  9. <a href="excel.php"><h3>excel</h3></a><h2>
  10. <center>
  11. <H1>ZAWARTOŚĆ BAZY SQL</H1>
  12. <?php
  13.  
  14. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  15. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  16. $rodzaj=$_POST['rodzaj'];
  17. $typ=$_POST['typ'];
  18. $login=$_SESSION['user_logged'];
  19. if($rodzaj=='all')
  20. {
  21. $query = "SELECT * FROM neo WHERE rodzaj != '' and rezultat = '' and odbiorca = '$login' ";
  22. }
  23. else
  24. {
  25.  
  26. $query = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' and rezultat ='' and odbiorca = '$login' ";
  27. }
  28. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  29.  
  30.  
  31.  
  32.  
  33. <TABLE BORDER="2">
  34. ?>


4)
i excel.php

  1. <?php
  2. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  3. $result = mysql_select_db("baza1",$conn) or die ("nie mogę poł&plusmn;czyć z baz&plusmn;");
  4.  
  5. $rodzaj=$_POST['rodzaj'];
  6. $typ=$_POST['typ'];
  7. $login=$_SESSION['user_logged'];
  8. if($rodzaj=='all')
  9. {
  10. $sql = "SELECT * FROM neo WHERE rodzaj != '' and rezultat = '' and odbiorca = '$login' ";
  11. }
  12. else
  13. {
  14.  
  15. $sql = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' and rezultat ='' and odbiorca = '$login' ";
  16. }
  17. $result = @mysql_query($sql,$conn)
  18. or die(mysql_error());
  19. ?>


i jak wspomniałem dane z formularza przekazywane sa tylko do pierwszego skryptu który umieszczę w pliku

ogolny.php
nospor
a skrypt ci wogole dochodzi do tego drugiego includa? Sprawdzales? walnij w drugim skrypcie:
  1. <?php
  2. echo 'to sa dane przekazane do drugiego skryptu:';
  3. print_r($_POST);
  4. ?>
kozioł
jak to wpisze w drugim skrypcie to mam tak:

to sa dane przekazane do drugiego skryptu:Array ( )
nospor
No to mnie zagiales... smile.gif

No dobra, zrob tak:
kod co ci podalem daj:
- przed includowaniem pierwszego skryptu,
- na samym poczatku pierwszego skryptu
- na samym koncu pierwszego skryptu
- przed includowaniem drugiego skryptu,
- na samym poczatku drugiego skryptu

Jedyne co pozmieniaj to zmieniaj text:
"przed pierwszym skryptem"
"na samym poczatku pierwszego skryptu"
i analogicznie reszte

No gdzies musisz gubic te dane, jesli wogole gdzies sa winksmiley.jpg


edit:
a ty ten drugi skrypt przypadkiem nie includujesz z innego serwera?
luk@szf
nospor, żeś wymyślił ; ) tak wogole to czego dane z post'a mialy by byc w plikach includowanych? ; )Bezpośredniego rozwiązania raczej nie ma ale możesz dane z pliku ogólne.php wysyłać do kolejnych plików, na to rozwiązań wiele - sesje, cookies, możesz też wysyłać z tego pliku odpowiednie nagłówki do dwóch następnych (funkcja header)
nospor
Cytat
tak wogole to czego dane z post'a mialy by byc w plikach includowanych?
blinksmiley.gif
Przeciez $_POST jest tablicą SUPERGLOBALNĄ i jest dostępna wszędzie. No chyba ze kozioł includuje pliki z innego serwera to wtedy faktycznie $_POST nie bedzie dostępna.
kozioł
nie no mam tak:

formularz , tam wybieram odpowiednie dane ,

kóre odbieram w skrypcie który wyświetla mi dane z bazy sql na ekranie w formie tabelki ,

te dane z formularz potrzebuje do zrobienia warunków co ma sie wyświetlać.

Jednak problem doszedł kiedy miałem to samo co widać na ekranie w formie tabelki przesłać do pliku excel

więc zrobiłem drugi skrypt który pobiera te same dane z formularza co poprzedni i wrzuca je do excela link do niego umieściłem w tym skrypcie gdzie widać tę tabelkę na ekranie.

Jednak dane nie przenosza sie do tego skryptu dlatego tabelka wychodzi pusta tylko z nagłówkami które sobie zdefiniowałem. sad.gif
nospor
czyli rozumiem ze ten drugi skrypt includujesz z tego samego serwera. zrob wiec to co ci pisalem wczesniej. Powstawiaj wszedzie te teksty kontrolne w raz z print_r
luk@szf
ogolny.php
Kod
<?php
$rodzaj=$_POST['rodzaj'];
$typ=$_POST['typ'];
?>


baza2.php
Kod
<html><head><title>Zawartosc bazy</title></head> bgproperties="fixed"><form action = "rez.php" method = "POST"><a href="excel.php"><h3>excel</h3></a><h2><center><H1>ZAWARTOŚĆ BAZY SQL</H1><?php
include('ogolny.php');
$conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());$db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");$login=$_SESSION['user_logged'];if($rodzaj=='all'){$query = "SELECT * FROM neo WHERE rodzaj != '' and rezultat = '' and odbiorca = '$login' ";}else{$query = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' and rezultat ='' and odbiorca = '$login' ";}$result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());echo <TABLE BORDER="2">?>


excel.php
Kod
include('ogolny.php');
$conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
$result = mysql_select_db("baza1",$conn) or die ("nie mogę poł&plusmn;czyć z baz&plusmn;");
$login=$_SESSION['user_logged'];
if($rodzaj=='all'){$sql = "SELECT * FROM neo WHERE rodzaj != '' and rezultat = '' and odbiorca = '$login' ";}else{$sql = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' and rezultat ='' and odbiorca = '$login' ";}$result = @mysql_query($sql,$conn)    or die(mysql_error());?>
kozioł
teraz wyświetla mi się biała strona

po zatwierdzeniu formularza przechodzi do ogolny.php , i mam białą stronę
nospor
@kozioł bądź bardziej precyzyjny. Kiedy teraz? Po wprowadzeniu tego co ci mowilem, czy tez po wprowadzeniu tego co napisał luk@szf? Z takimi postami to mozemy bawic sie w nieskonczonosc... a mi sie odechciewa bawic z dziecmy. wystarczy ze bawie sie z wlasnym w domu tongue.gif
kozioł
sorki

według tego co napisał "luk@szf" ,
luk@szf
nie bardzo rozumiem o co ci chodzi.. chodzilo ci zeby wyslac naglowki post do dwoch plikow wiec w ten sposob powinny zostac wyslane, a to ze przenosi cie do pustej strony to chyba oczywiste bo w pliku ogolny.php nic nie ma oprocz danych z posta, tyle ze ten plik jest pozniej includowany do innych, jak chcesz zeby po wyslaniu formularza przenioslo cie do innej strony to skorzystaj z funkcji header,a dane z posta przenos np. sesjami (po kolejnym wywolaniu strony juz ich nie bedzie) i wtedy nie bedzie trzeba includowac pliku ogolny.php do innych.

nospor, wszedzie gdzie te dane sa przesylane a czego mialyby byc dostepne w pliku baza.php czy w tym drugim jesli dane sa wysylane do ogolny.php? a w twoim rozwiazaniu nie bylo includowania pliku ogolny.php do innych tylko odwrotnie i dlatego nie moge sie nadziwic jak by to mialo dzialac ; )
nospor
Cytat
nospor, wszedzie gdzie te dane sa przesylane a czego mialyby byc dostepne w pliku baza.php czy w tym drugim jesli dane sa wysylane do ogolny.php? a w twoim rozwiazaniu nie bylo includowania pliku ogolny.php do innych tylko odwrotnie i dlatego nie moge sie nadziwic jak by to mialo dzialac ; )

Czy ty nie rozumiesz, ze oba skrypty sa includowane w ogolny.php? Skoro sa w nim includowowane, to sa i dla nich dostepne dane z tablicy $_POST, tak samo jak dla ogolny.php
Jesli nie rozumiesz tak podstawowych rzeczy to zrob sobie banalny test, bo mi sie nie chce juz z Tobą na ten temat rozmawiac.

Do pierwszego includowanego skryptu dane z $_POST koziolowi dochodzily, do drugiego nie, co moze swiadczyc o tym, ze albo je w magiczny sposob kasuje, ale robi jakies przekierowanie w pierwszym skrypcie. tego nie wiem bo nie pokazal wszystkich danych, ze juz nie wspomne ze nie porobil testow o ktore prosilem. Skoncz wiec juz luk@szf te teksty do mnie bo sprawiasz wrazenie osoby malo obeznanej, a przynajmniej jesli chodzi o tablice superglobalną $_POST
kozioł
zrobiłem tak jak mówił 'nospor'

i teraz tak

po wysłaniu formularza otwiera mi się strona(ogolny.php) z tabelką dane wyświetlają sie prawidłowo

komunikaty sa takie:

  1. to sa dane przekazane do pierwszego skryptu na początku:Array ( [rodzaj] => masło [Submit] => Szukaj )
  2. to sa dane przekazane do pierwszego skryptu na końcu:Array ( [rodzaj] => masło [Submit] => Szukaj )


potem 4-ry takie podpbne komunikaty

  1. Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\VertrigoServ\www\baza2.php:36) in C:\Program Files\VertrigoServ\www\excel.php on line 13




i dalej tak

  1. to sa dane przekazane do drugiego skryptu na początku:Array ( [rodzaj] => masło [Submit] => Szukaj ) Baza 14-06-2007 12:36 klient miejscowosc ulica nr dom nr lok rodzaj odbiorca rezultat KOWALSKI KRAKÓW PODWALE 34 1 MASŁO JOHN



jednak jak na tej stronie kliknę na odnośnik do skryptu excel , to otwiera mi sie plik excelowy tylko z nagłówkami

i nie wiem czemu

z tego widać że dane docierają
nospor
no i widzisz...
ciezko bylo tak od razu zrobic? czy te "pare" postow co mam przy nicku o niczym nie swiadczą? No i jeden problem, o ktory toczyly sie boje przez pare zbednych postow rozwiązany - dane dochadzą do obu skryptów.
Czemu tworzy ci się zły excel? Nie wiem i nie zamierzam już wnikać. Mam dosc przebojów z blaganiem o zrobienie tego oco prosze smile.gif
Dodatkowo tez nie uregulowales sprawy z bledem co ci wyskakuje, a mowilem tez ci wczesniej gdzie i czego masz szukac.

Niech teraz paleczke przejmie ktos inny, najlepiej lukasz winksmiley.jpg

edit:
Cytat
PS. nie chciałem w żaden sposób Cie urazić
Nie uraziłeś smile.gif
kozioł
dzieki ogromne 'nospor' za pomoc , i innym użytkownikom że starali sie pomóc

będę dalej kobinował co jest nie tak z tym excelem , bo działa jak podstawię zamiast zmiennej konkretną wartość .

PS. nie chciałem w żaden sposób Cie urazić


pozdrawiam
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.