Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> przejscie do innego pliku php, przekierowanie po wykonanym skrypcie
de_gie
post 14.01.2011, 12:30:25
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 1.01.2011

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


Witam serdecznie mianowicie mam taki problem ze wykonuje mi sie plik krok2.php do chodzi do konca i jak sie wykona chcialbym zeby przekierowalo do krok3.php z gory dziekuje za pomoc pozdro
Go to the top of the page
+Quote Post
cycofiasz
post 14.01.2011, 12:31:31
Post #2





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


  1. header('Location: krok3.php');


Ten post edytował cycofiasz 14.01.2011, 12:31:49
Go to the top of the page
+Quote Post
Kshyhoo
post 14.01.2011, 13:37:07
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Żaden problem... wykonasz to za pomocą instrukcji if:
  1. if(coś) {
  2. include('krok1.php');
  3. } elseif (inne coś) {
  4. include('krok2.php');
  5. }

lub jeszcze lepiej za pomocą instrukcji switch/case:
  1. switch '1' {
  2. case:
  3. include('krok1.php');
  4. break;
  5. switch '2' {
  6. case:
  7. include('krok2.php');
  8. break;
  9. }

Oczywiście z odpowiednimi warunkami...


--------------------
Go to the top of the page
+Quote Post
Hpsi
post 19.01.2011, 03:55:28
Post #4





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Kshyhoo , twój kod mnie rozwalił totalnie .....
  1. switch '1' {
  2. case:
  3. include('krok1.php');
  4. break;
  5. switch '2' {
  6. case:
  7. include('krok2.php');
  8. break;
  9. }

od kiedy tak sie używa switcha questionmark.gif smile.gif jeśli tworzysz nową składnie to powinneś dać dokumentacje tego winksmiley.jpg =)

  1. switch($zmienna) {
  2. case 1:
  3. include('krok1.php');
  4. break;
  5. case 2:
  6. include('krok2.php');
  7. break;
  8. }


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
kulczycki
post 19.01.2011, 05:56:16
Post #5





Grupa: Zarejestrowani
Postów: 76
Pomógł: 8
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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


Panu chyba nie chodziło o to.

Musisz sobie ustawić jakąś główna zmienną status ($status).

index.php
  1. $zmienna = true;
  2. if($zmienna === true)
  3. include('krok1.php');
  4. if($zmienna === true)
  5. include('krok2.php');
  6. if($zmienna === true)
  7. include('krok3.php');
  8.  
  9. etc.


krok1.php
  1. // jakis kod.
  2. // jesli coś będzie nie tak odwołujesz się do zmiennej $zmienna i ustawiasz jej wartość false.



Od razu zaznaczam że jest to przykład rozwiązania owego problemu. Nie mówię że te rozwiązanie jest poprawne, i estetyczne. Dla mnie to nie jest prawidłowe rozwiązanie. I zależy co chcesz osiągnąć przez to.
Go to the top of the page
+Quote Post
maniana
post 19.01.2011, 08:49:13
Post #6





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


Nie lepiej coś w wyrafinowany sposób?questionmark.gif
np
  1. $krok = 0;
  2.  
  3. ...
  4.  
  5. $file = 'krok'.(int)$krok.'.php';
  6. if(file_exists($file)) include $file;
Go to the top of the page
+Quote Post
kiler129
post 19.01.2011, 10:45:38
Post #7





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

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


Cytat(maniana @ 19.01.2011, 08:49:13 ) *
Nie lepiej coś w wyrafinowany sposób?questionmark.gif
np
  1. $krok = 0;
  2.  
  3. ...
  4.  
  5. $file = 'krok'.(int)$krok.'.php';
  6. if(file_exists($file)) include $file;


Takie pisanie to prosta droga do LFI!
Domyślam się, że chodzi o formularz. Najlepiej zrobić to tak:

  1. <?php
  2. $krok = (empty($_SESSION["krok"]) || $_SESSION["krok"] > 3 || $_SESSION["krok"]."" != (int)$_SESSION["krok"]) ? 1:$_SESSION["krok"]; //Zabezpieczasz się przed wpisaniem krokiem nie-intowym oraz przed krokiem >3. Dodatkowo jeśli to pierwsze wejście i pole krok jest puste wpisze tam 1
  3.  
  4. require("kroki/$krok.inc.php");
  5.  
  6. if($krok == 3) //Ostatni krok wypelniony
  7. echo "Dziekuje!";
  8. elseif($wypełnionyPoprawnie) //Jeśli user wypełnił poprawnie
  9. $_SESSION["krok"]++;
  10. else //Formularz wypelniono blednie
  11. echo "Cos poszlo zle ;/";
  12.  
  13. ?>


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
DiH
post 20.01.2011, 22:03:46
Post #8





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

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


Nie zaszkodziłoby także poprawne zagnieżdżenie zmiennej w tekście.
  1. require("kroki/$krok.inc.php");

=>
  1. require("kroki/" . $krok. ".inc.php");


Ten post edytował DiH 20.01.2011, 22:04:13
Go to the top of the page
+Quote Post
Kshyhoo
post 20.01.2011, 22:16:04
Post #9





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Cytat(Hpsi+ @ 19.01.2011, 03:55:28 ) *
Kshyhoo , twój kod mnie rozwalił totalnie .....

Mnie też, nie wiem czemu strzeliłem takiego babola (trzeźwy byłem a pora wczesna...).


--------------------
Go to the top of the page
+Quote Post
kiler129
post 21.01.2011, 00:02:49
Post #10





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

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


Cytat(DiH @ 20.01.2011, 22:03:46 ) *
Nie zaszkodziłoby także poprawne zagnieżdżenie zmiennej w tekście.
  1. require("kroki/$krok.inc.php");

=>
  1. require("kroki/" . $krok. ".inc.php");


Nie programuję od wczoraj smile.gif Co niepoprawnego widzisz w moim zapisie?

Sprawdź jeśli nie wierzysz:
  1. <?php
  2. $x = "Ala";
  3. $y[0] = "Tomek";
  4.  
  5. echo "$x ma kota<br/>"; //Ala ma kota
  6. echo "$y[0] ma kota<br/>"; //W starych php wywoła parse error, w nowych przejdzie (nie wiem jak z wersjami, kiedyś nie działało, na 5.3.3 działa)
  7. echo '$x ma kota<br/>'; //$x ma kota - działą tylko na "
  8. echo '$y[0] ma kota<br/>'; //$y[0] ma kota
  9. echo $y[0]." ma kota<br/>"; //Tomek ma kota
  10. ?>


Wydajnościowo w sumie mój kod też powinien być lepszy - http://www.phpbench.com/


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
DiH
post 21.01.2011, 23:00:56
Post #11





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

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


O to co jest wydajniejsze nie zamierzam się kłócić. Zwróciłem uwagę, bo takie łączenia są po prostu mało czytelne i bałaganiarskie.
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: 2.05.2025 - 05:12