Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
piotrex41
post 18.07.2012, 11:10:06
Post #2





Grupa: Zarejestrowani
Postów: 168
Pomógł: 26
Dołączył: 15.09.2011
Skąd: Wrocław

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


Masz tu warunek:
  1. if ($_GET['weryfikacja'] == 'potwierdz') {

Więc żeby link odniósł się do tego kodu, to musisz najpierw w linku dać tą zmienną. Przykładowy link:
Kod
http://moja-strona.pl/index.php?weryfikacja=potwierdz&kod=TWÓJ_KOD

Bo teraz Twój link jest w ogóle nie poprawny, nie możesz dawać cos=xcD=cokolwiek... Link musi wyglądać mniej więcej tak:
podstrona.php?zmienna_get=wartość&kolejna_zmienna=kolejna_wartosc
Powinno zadziałać.

Ten post edytował piotrex41 18.07.2012, 11:14:00


--------------------
www.piotrex41.pl - piotrex41 portfolio
d(-.-)b - Music is my life || PHP is my passion
Go to the top of the page
+Quote Post
strife
post 18.07.2012, 11:11:17
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


No ale w czym jest problem? Nie możesz tego linku weryfikacyjnego po prostu zmienić na poprawny? W sensie klucz1=wartosc1&klucz2=wartosc2 etc. ?

Nie bardzo widzę fragment kodu, który odpowiada za generowanie linku weryfikacyjnego : >


--------------------
Go to the top of the page
+Quote Post
RaitoPL
post 18.07.2012, 11:17:15
Post #4





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

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


Ale ja mam tak, że strony wyglądają w ten sposób:
moja-strona.pl/index.php?str=weryfikacja
moja-strona.pl/index.php?str=rejestracja
I tak to m.w wygląda, więc nie mogę zrobić tak:
http://moja-strona.pl/index.php?weryfikacj...mp;kod=TWÓJ_KOD
Go to the top of the page
+Quote Post
strife
post 18.07.2012, 11:31:45
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Jak to nie?

Kod
http://moja-strona.pl/index.php?str=weryfikacja&weryfikacja=potwierdz&kod=TWOJ_KOD


Podstawy przekazywania zmiennych. Odsyłam do manuala.


--------------------
Go to the top of the page
+Quote Post
piotrex41
post 18.07.2012, 11:32:58
Post #6





Grupa: Zarejestrowani
Postów: 168
Pomógł: 26
Dołączył: 15.09.2011
Skąd: Wrocław

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


To musisz dodać kolejny klucz i do niego leci kolejna wartość:
Kod
http://moja-strona.pl/index.php?str=weryfikacja&weryfikacja=potwierdz&kod=KOD


Bo jak już pisałem nie możesz mieć cos=xcd=cokolwiek, dlatego w linku musi być kolejny klucz i kolejna wartość, która spełni warunek.

Ten post edytował piotrex41 18.07.2012, 11:39:22


--------------------
www.piotrex41.pl - piotrex41 portfolio
d(-.-)b - Music is my life || PHP is my passion
Go to the top of the page
+Quote Post
RaitoPL
post 18.07.2012, 11:58:33
Post #7





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

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


Jesteś moim mistrzem.. Okazało się, że dzięki Tobie wypatrzyłem błąd. W kaskadzie (chyba tak to się nazywa) dałem "inc/aktywacja.php", a powinno być "inc/weryfikacja.php". Dzięki wielkie!
Żeby nie otwierać nowego tematu, mam problem z rejestracją. Zrobiona jest tak samo, tyle, że nie wyświetla komunikatów, etc. Spróbuję sobie z tym poradzić, ale jak nie dam rady, to napiszę tutaj

Okey, problem występuje. Po wysłaniu formularza w rejestracji, przenosi na stronę główną i nic się nie dzieje. Nie wyświetla żadnego komunikatu o nieudanej lub udanej rejestracji. Kompletnie nic. Jak to naprawić?
Go to the top of the page
+Quote Post

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: 25.04.2024 - 04:51