Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] - Problem z get., Problem z get'em w aktywacji.
RaitoPL
post 18.07.2012, 11:04:55
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 17.07.2012

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


Witam. Mam problem z GET w aktywacji konta. Używam sobie fajnego "systemu", który wyświetla mi podstrony w następujący sposób:
  1. <?php $sites = array ("news" => "inc/news.php", "register" => "inc/rejestracja.php", "logowanie" => "inc/logowanie.php", "aktywacja" => "inc/aktywacja.php", "kontakt" => "inc/kontakt.php", "uzytkownik" => "inc/zmiana-danych.php");
  2. if ($_GET["str"]!="")
  3. {
  4. if ($sites[$_GET["str"]]) { include($sites[$_GET["str"]]); }
  5. else { include("inc/error.php"); }
  6. }
  7. else { include("inc/news.php"); }
  8. ?>

I teraz tak.. Znajomy (Uhutaf z Wojborku) pisał mi kiedyś, że w adresie, przy GET, nie może być pod rząd dwa razy znaku "=". Weryfikacja wygląda tak:


  1. <?php
  2.  
  3. if ($_GET['weryfikacja'] == 'potwierdz') {
  4.  
  5. include 'db.php'; // połączenie się z bazą danych
  6. $tabela = 'uzytkownik'; // zdefiniowanie tabeli MySQL
  7.  
  8. $kod = htmlspecialchars(stripslashes(strip_tags(trim($_GET['kod']))), ENT_QUOTES); // filtrowanie $_GET['kod']
  9.  
  10. // jeżeli kod znajduje się URL, skrypt najpierw patrzy czy użytkownik ma aktywne konto
  11. // jeżeli nie ma, wtedy zmienia się jego status, jeżeli nie upłynęło 48 godzin od rejestracji
  12. $wynik = mysql_query("SELECT * FROM $tabela
  13.  
  14. WHERE kod='$kod' and status=1");
  15. if (mysql_num_rows($wynik) == 1) {
  16. echo '<p>Aktywowałeś już swoje konto.</p';
  17. } else {
  18. $wynik = mysql_query("DELETE FROM $tabela
  19. WHERE data<=DATE_SUB(NOW(),INTERVAL 2 DAY) and status=0");
  20. $wynik = mysql_query("UPDATE $tabela
  21. SET status='1', data=NOW() WHERE kod='$kod' and status=0");
  22. $wynik = mysql_query("SELECT * FROM $tabela
  23. WHERE kod='$kod' and status=1");
  24. if (mysql_num_rows($wynik) == 1) {
  25. echo '<p>Dziękujemy. Rejestracja została zakończona poprawnie. Możesz się teraz zalogować.</p>';
  26. }
  27. }
  28.  
  29. // jeżeli został wprowadzony zły link, wyświetla się błąd
  30. if (!$kod or mysql_num_rows($wynik)<>1) {
  31. echo '<p>Aktywowanie konta nie powiodło się.</p>';
  32. }
  33. mysql_close($polaczenie);
  34.  
  35. }
  36.  
  37. ?>

Przykładowy email weryfikacyjny wygląda następująco:
moja-strona.pl/index.php?str=weryfikacja=weryfikacja&kod=KOD
Proszę o szybką pomoc. Tak, jak wczoraj - każdy post otrzyma "pomógł".
Pozdrawiam!

Ten post edytował RaitoPL 18.07.2012, 11:08:46
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 Wersja Lo-Fi Aktualny czas: 20.07.2025 - 01:51