Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeniesienie z jednej strony na drugą - problem.
Forum PHP.pl > Forum > PHP
Aprill
Witam, mam sprawnie działający skrypt .php, wypełniamy formularz i dopiero po wypełnieniu wszystkich pól i sprawdzeniu poprawności chciałbym aby przeniosło mnie na następną stronę przy zachowaniu wartości zmiennych. Oto kod:

plik pierwszy o nazwie registro.php:

  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=utf-8" />
  5. <title> Rejestracja (Krok 1)</title>
  6. <link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
  7. <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
  8. <script src="js/fns.js" type="text/javascript"></script>
  9. </head>
  10. <body>
  11. <div id="wrapper">
  12. <div id="page">
  13. <div id="header">
  14. <div class="shell">
  15. <div id="logo">
  16. <h1><a href="index.php">MOJA STRONA</a><span class="description">Centrum Zarządzania Postacią</span></h1>
  17. </div>
  18. </div>
  19. </div>
  20. <center>
  21. <h2>Rejestracja - Krok 1</h2>
  22. <br>
  23. <form method = "post" action = "">
  24. Imie_Nazwisko:<br><input type = "text" name = "nome"><br><br>
  25. Hasło:<br><input type = "password" name = "senha"><br><br>
  26. Powtórz hasło:<br><input type = "password" name = "senha2"><br><br>
  27. Adres E-mail:<br><input type = "text" name = "email"><br><br>
  28. Wybierz swoją płeć:<br>
  29. <input type = "radio" name = "plec" value = "kobieta" checked = ""/><b> Kobieta&thinsp;&ensp;&emsp;</b><br>
  30. <input type = "radio" name = "plec" value = "mezczyzna"/><b> Mężczyzna</b><br>
  31. <input type = "submit" name = "registrar" value = "Następny krok">
  32. </center>
  33. </form>
  34. <br>
  35. <br>
  36. <font color="red"><b>
  37. <?php
  38. if(isset($_POST['registrar']))
  39. {
  40. if(IsValidName($_POST['nome']))
  41. {
  42. include('config.php');
  43. $nome = mysql_real_escape_string($_POST['nome']);
  44. $query = mysql_query("SELECT * FROM player_info WHERE name = '$nome'") or die(mysql_error());
  45. $rows = mysql_num_rows($query);
  46. if(!$rows)
  47. {
  48. if(strlen($_POST['senha']) >= 6 && strlen($_POST['senha']) <= 20)
  49. {
  50. if($_POST['senha'] == $_POST['senha2'])
  51. {
  52. if((strlen($_POST['email']) >= 7) && (strstr($_POST['email'],"@")) && (strstr($_POST['email'],".")) )
  53. {
  54. $email = mysql_real_escape_string($_POST['email']);
  55. $query2 = mysql_query("SELECT * FROM player_info WHERE email = '$email'") or die(mysql_error());
  56. $rows2 = mysql_num_rows($query2);
  57. if(!$rows2)
  58. {
  59. header('location: registro2.php');
  60. }
  61. else
  62. {
  63. echo "<center>BŁĄD: Ten adres E-mail jest już zajęty!</center>";
  64. }
  65. }
  66. else echo "<center>BŁĄD: Niepoprawny adres E-mail!</center>";
  67. }
  68. else echo "<center>BŁĄD: Podane hasła nie są jednakowe!</center>";
  69. }
  70. else echo "<center>BŁĄD: Niepoprawny format hasła! Hasło musi zawierać od 6 do 28 znaków!</center>";
  71. }
  72. else echo "<center>BŁĄD: Ten nick jest już zarejestrowany w bazie danych! Wybierz inny nick!</center>";
  73. }
  74. else
  75. {
  76. echo "<center>BŁĄD: Niepoprawny format nicku postaci! Nick musi zawierać od 5 do 24 liter!&thinsp;&ensp;&emsp;&emsp;&emsp;&emsp; </center>";
  77. echo "<center>BŁĄD: Musi on przybrać formę Imie_Nazwisko, nie może zawierać znaków specjalnych!</center>";
  78. echo "<center>BŁĄD: Przykład poprawnego nicku: Jan_Kowalski , proszę podać poprawny nick!&thinsp;&emsp;&emsp;&emsp;</center>";
  79. }
  80. }
  81.  
  82. function IsValidName($n)
  83. {
  84. $len = strlen($n);
  85. if($len < 5 || $len > 24)
  86. return 0;
  87.  
  88. if($n[$len - 1] == '_' || $n[0] == '_')
  89. return 0;
  90.  
  91. $underlines = 0;
  92. for($i = 0; $i != $len; ++$i)
  93. {
  94. if($n[$i] == '_')
  95. {
  96. ++$underlines;
  97. }
  98. }
  99. return $underlines == 1;
  100. }
  101. ?>
  102. </b></font>
  103. </div>
  104. <div class="cl">&nbsp;</div>
  105. </div>
  106. <div class="cl">&nbsp;</div>
  107. <div id="footer">
  108. <div class="shell">
  109. <p class="copy">&copy;moja strona kox!</p>
  110. </div>
  111. </div>
  112. </body>
  113. </html>
  114.  
  115.  


plik drugi o nazwie registro2.php:

  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=utf-8" />
  5. <title> Rejestracja (Krok 2)</title>
  6. <link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
  7. <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
  8. <script src="js/fns.js" type="text/javascript"></script>
  9. </head>
  10. <body>
  11. <div id="wrapper">
  12. <div id="page">
  13. <div id="header">
  14. <div class="shell">
  15. <div id="logo">
  16. <h1><a href="index.php">Moja strona</a><span class="description">Centrum Zarządzania Postacią</span></h1>
  17. </div>
  18. </div>
  19. </div>
  20. <center>
  21. <h2>Rejestracja - Krok 2</h2>
  22. <br>
  23.  
  24.  
  25. Nazwa Postaci: <?php echo $_POST['nome']?><br>
  26. Hasło: <?php echo $_POST['senha']?><br>
  27. Adres E-mail: <?php echo $_POST['email']?><br>
  28. Płeć: <?php
  29. switch($_POST['plec'])
  30. {
  31. case "kobieta":
  32. echo "Kobieta";
  33. break;
  34. case "mezczyzna":
  35. echo "Mężczyżna";
  36. break;
  37. }
  38. ?>
  39. </center>
  40. </div>
  41. <div class="cl">&nbsp;</div>
  42. </div>
  43. <div class="cl">&nbsp;</div>
  44. <div id="footer">
  45. <div class="shell">
  46. <p class="copy">&copy;Moja strona kox!</p>
  47. </div>
  48. </div>
  49. </body>
  50. </html>


Oto treść problemu:

Przy takim rozwiązaniu, przenosi człowieka bez wartości zmiennych. Proszę o pomoc.
styryl
Musisz dane zapisać np w sesji, i wyświetlić w drugim pliku. Lub poprzez $_GET:

  1. header('location: registro2.php?zmienna=wartość&druga_zmienna=druga_wartośc');


I potem wyświetlasz zamiast $_POST['zmienna'] => $_GET['zmienna']
Aprill
Metoda $_GET chyba nie jest zbyt odpowiednia jeśli chodzi o przenoszenie hasła. Spróbuję tą sesją i dam znać czy działa.
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.