Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z funkcjami
Forum PHP.pl > Forum > Przedszkole
Lilo
Witam, mam problem z niby banalną sprawą.

Czy jest taka możliwość by na podstawie wyników z pierwszej i drugiej funkcji , funkcja trzecia wykonała odpowiednie działanie i w przypadku TRUE lub FALSE wczytała header("location:cos2.php"); .

Załączam przykładowy kod.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  5. <meta name="Description" content=" [wstaw tu opis strony] " />
  6. <meta name="robots" content="noarchive" />
  7. <meta name="Generator" content="kED" />
  8. </head>
  9. <body>
  10. <?php
  11. function fun1($a, $b ) //function fun1($a, $b, $output);
  12. {
  13. $a = trim($a);
  14. $b = trim($b);
  15.  
  16. if(empty($a) OR empty($b) ) {
  17. echo 'Wypełnij obowiązkowe pola formularza X';
  18. $output = 'yes'; }
  19. else {
  20.  
  21. if(strlen($a) <= 2 OR strlen($b) <= 2 ) {
  22. echo 'A lub B musi być z co najmniej 2. liter';
  23. $output = 'yes'; }
  24.  
  25. if (ctype_alpha($a)==FALSE){
  26. echo 'nie string';
  27. $output = 'yes'; }
  28. }
  29. }
  30.  
  31. function fun2( $e_mail, $telef){ //function fun2( $e_mail, $telef,$output_form)
  32.  
  33. $e_mail = trim($e_mail);
  34. $telef = trim($telef);
  35.  
  36. if( empty($e_mail) OR empty($telef)) {
  37. echo 'Wypełnij obowiązkowe pola w formularzu: Y';
  38. $output_form = 'yes'; }
  39.  
  40. if (!ereg ("^.+@.+\..+$", $e_mail)){
  41. echo 'Podaj poprawny adres e-mail';
  42. $output_form = 'yes';}
  43.  
  44. if( strlen($telef) <=6) {
  45. echo 'numer telefonu minimum z 6. cyfr.';
  46. $output_form = 'yes'; }
  47. if (ctype_digit($telef)==FALSE){
  48. echo 'numer telefonu musi składać się wyłącznie z cyfr';
  49. $output_form = 'yes'; }
  50. }
  51. // function fun3(){
  52. // if( !$output== 'yes' AND !$output_form== 'yes') { header("location:cos2.php");}
  53.  
  54. // }
  55. ?>
  56. <form action="cos1.php" method="post" enctype="MULTIPART/FORM-DATA">
  57. <? echo "<input type=hidden value='1' name=send>";?>
  58.  
  59. <?php
  60. if($_POST['send']==1)
  61. {
  62. fun1($a, $b); // fun1($a, $b, $output);
  63. }
  64. ?>
  65. <fieldset>
  66. <legend>formularz X</legend>
  67.  
  68. <label>a:</label>
  69. <input class="foor" type="text" name="a" value="<?php echo $_POST['a']; ?>" />
  70.  
  71. <label >b</label>
  72. <input class="foor" type="text" name="b" value="<?php echo $_POST['b']; ?>" />
  73. </fieldset>
  74.  
  75. <?php
  76. if($_POST['send']==1)
  77. {
  78. fun2( $e_mail, $telef); //fun2( $e_mail, $telef, $output_form);
  79. //fun3();
  80. }
  81. ?>
  82. <fieldset>
  83. <legend>formularz Y</legend>
  84. <label >e-mail:</label>
  85. <input class="foor" type="text" name="e_mail" value="<?php echo $_POST['e_mail']; ?>" />
  86.  
  87. <label >telefon:</label>
  88. <input class="foor" type="text" name="telef" value="<?php echo $_POST['telef']; ?>" />
  89. </fieldset>
  90.  
  91. <input type="submit" name="wyslij" class="button" value=" Dalej "/>
  92.  
  93. </body>
wookieb
Tak ale wszelki wysłanie nagłówków dokonujesz PRZED wysłaniem jakiejkolwiek treści do przeglądarki. Czyli przed
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
skarabe.pl
Dodam jeszcze, że żeby pozbyć się wymogu o którym pisze wookieb, można zastosować output buffering, czyli <?php ob_start(); ?> na początku skryptu i <?php ob_end_flush(); ?> na samym jego końcu.
Lilo
Dziękuję za pomoc wskazówki się bardzo przydały.
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.