Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zmienna z GET w innym pliku.
kapsel2105
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.10.2012

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


Witam wszystkich.
Proszę o wyrozumiałość gdyż to mój pierwszy post.
Dopiero zaczynam przygodę z PHP.

Mianowicie mam problem z jedną zmienną, które nie mogę wyłapać.
Próbuje na znane mi sposoby, ale widocznie jeszcze za mało umiem.

Sprawa wygląda następująco:
Mam zrobioną rejestrację która wysyła mail na wpisany adres mail z prośbą o aktywację.
Link wygląda następująco:
Kod
http://moja_domena/weryfikacja.php?weryfikacja=potwierdz&kod=2067450578508451e4155be.

Klikając w niego zmienna w bazie zmienia stan z 0 na 1.
Poniżej kod z pliku wykonującego zadanie
  1. <?php include('header.php'); ?>
  2. <h2>&raquo; Weryfikacja użytkownika</h2>
  3. <div class="content">
  4.  
  5. <?php
  6.  
  7.  
  8. if ($_GET['weryfikacja'] == 'potwierdz') {
  9.  
  10. include 'inc/db.php'; // połączenie się z bazą danych
  11. $tabela = 'rejestracja'; // zdefiniowanie tabeli MySQL
  12.  
  13. $kod = htmlspecialchars(stripslashes(strip_tags(trim($_REQUEST['kod']))), ENT_QUOTES); // filtrowanie $_GET['kod']
  14.  
  15. // jeżeli kod znajduje się w URL, skrypt najpierw patrzy czy użytkownik ma aktywne konto
  16. // jeżeli nie ma, wtedy zmienia się jego status, jeżeli nie upłynęło 48 godzin od rejestracji
  17.  
  18. $wynik = mysql_query("SELECT * FROM $tabela
  19. WHERE kod='$kod' and status=1");
  20.  
  21. if (mysql_num_rows($wynik) == 1) {
  22. echo '<span class="powodzenie">Aktywowałeś już swoje konto.</span>';
  23. exit;
  24. } else {
  25. $wynik = mysql_query("DELETE FROM $tabela
  26. WHERE data<=DATE_SUB(NOW(),INTERVAL 2 DAY) and status=0");
  27. $wynik = mysql_query("UPDATE $tabela
  28. SET status='1', data=NOW() WHERE kod='$kod' and status=0");
  29. $wynik = mysql_query("SELECT * FROM $tabela
  30. WHERE kod='$kod' and status=1");
  31. if (mysql_num_rows($wynik) == 1) {
  32. echo '<span class="powodzenie">Dziękujemy. Rejestracja została zakończona poprawnie. Możesz teraz ustanowić swoje hasło dostępu.</span>';
  33.  
  34. }
  35. }
  36.  
  37. // jeżeli został wprowadzony zły link, wyświetla się błąd
  38. if (!$kod or mysql_num_rows($wynik)<>1) {
  39. echo '<p>Aktywowanie konta nie powiodło się.</p>';
  40. }
  41.  
  42. mysql_close($polaczenie);
  43.  
  44. }
  45.  
  46. ?>
  47. </div>
  48. <?php include('footer.php'); ?>


Po kliknięciu w link pokazuje się informacja o tym że konto zostało pomyślnie aktywowane.

I teraz chciałbym aby umieścić tutaj możliwość ustawienia hasła gdzie będzie tylko taka możliwość tylko raz.

Mam napisany poniższy kod, dzięki któremu mogę zmienić hasło jak jestem już zalogowany, i trwa sesja.

  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  3. <link rel="stylesheet" href="css/style.css" type="text/css"
  4. media="screen" />
  5. </head>
  6. <h2>&raquo; Ustawienie hasła</h2>
  7. <div class="content">
  8.  
  9. <?php
  10.  
  11. include 'inc/db.php'; // połączenie się z bazą danych
  12. $tabela = 'rejestracja'; // zdefiniowanie tabeli MySQL
  13.  
  14. //początek skryptu zmiany hasła
  15.  
  16. if ($_POST['wyslane']) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  17. // formularz ustawienia hasła
  18.  
  19. $haslo = $_POST['haslo'];
  20. $haslo2 = $_POST['haslo2'];
  21. //$kod = $_REQUEST['kod'];
  22.  
  23. // system sprawdza czy prawidłowo zostały wprowadzone dane
  24.  
  25. if ($haslo) {
  26. if (strlen($haslo) < 6 or strlen($haslo) > 30) {
  27. $blad++;
  28. echo '<span class="blad">Proszę poprawnie wpisać hasło (od 6 znaków do 30 znaków).</span>';
  29. }
  30. }
  31. if ($haslo !== $haslo2) {
  32. $blad++;
  33. echo '<span class="blad">Podane hasła nie są ze sobą zgodne.</span>';
  34. }
  35.  
  36. // jeżeli błąd nie wystąpił, to dane zostają prawidłowo zapisane z bazie MySQL
  37. if ($blad == 0) {
  38.  
  39. if ($haslo == false) {
  40. }
  41. else {
  42.  
  43.  
  44. $haslo = md5($haslo); // szyfrowanie hasla
  45. $wynik2 = mysql_query("UPDATE $tabela SET haslo='$haslo' WHERE kod='$kod1' ");
  46.  
  47.  
  48. }
  49.  
  50. if ($wynik2) {
  51. echo '<span class="powodzenie">Dane zostały zmienione.</span>';
  52. } else {
  53. echo '<span class="blad">Dane nie zostały zmienione.</span>';
  54. }
  55. }
  56. }
  57. //koniec skryptu zmiany hasła
  58.  
  59.  
  60. // mysql_close($polaczenie);
  61.  
  62.  
  63. // tworzenie formularza HTML z danymi użytkownika
  64. echo <<< KONIEC
  65. <br>
  66. <br>
  67.   <form class="form" action="weryfikacja2.php" method="post">
  68.   <input type="hidden" name="wyslane" value="TRUE" />
  69.  
  70.  
  71. <p>
  72. <div class="label"><label for="haslo">Hasło</label></div>
  73. <input type="password" name="haslo" id="haslo" />
  74. </p>
  75.  
  76. <p>
  77. <div class="label"><label for="haslo2">Powtórz hasło</label></div>
  78. <input type="password" name="haslo2" id="haslo2" />
  79. </p>
  80.  
  81.   <p class="submit2">
  82. <input type="submit" value="Aktualizuj moje dane" />
  83. </p>
  84.  
  85. KONIEC;
  86.  
  87. //koniec tworzenia formularza
  88.  
  89. //tu koniec formularza ustawienia hasła
  90.  
  91.  
  92. ?>
  93. </div>


W żaden znany mi sposób nie mogę odebrać zmiennej "$kod".

Z góry dziękuję za pomoc w rozwiązaniu problemu.
[php][/php]

Ten post edytował kapsel2105 22.10.2012, 16:41:37
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 20.08.2025 - 07:39