Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przejscie do innego pliku php
Forum PHP.pl > Forum > PHP
de_gie
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
cycofiasz
  1. header('Location: krok3.php');
Kshyhoo
Ż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...
Hpsi
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. }
kulczycki
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.
maniana
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;
kiler129
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. ?>
DiH
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");
Kshyhoo
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...).
kiler129
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/
DiH
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.
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.