Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Scrypt aktywujący konto usera z linka...
miedzna
post 8.06.2005, 15:31:32
Post #1





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Witam,
mam taki kod:
  1. <?php
  2. include('config.php');
  3. $sql = &#092;"select id from zamowienia where hash = '$hash' AND nazwisko = '$nazwisko'\";
  4. $result = @mysql_num_rows($sql);
  5. $sql2 = &#092;"UPDATE zamowienia SET aktywacja='1' where hash = '$hash' AND nazwisko = '$nazwisko'\";
  6. $result2 = mysql_query($sql2);
  7. echo &#092;"<center><h1>Dziękujemy za potwierdzenie zamówienia</h1></center>\";
  8. ?>


do dokumentu przekazywane są 2 zmienne w linku: hash oraz nazwisko, link wygląda mniej więcej tak:
http://localhost/kodeks/ok.php?hash=6c2f66...zwisko=Kowalski

Po kliknięciu na link zmienna aktywacja (domyslnie 0) zmienia wartośc na 1 - konto zaktywowane.
Pytanie brzmi, jak zrobić, żeby przy przekazaniu do dokumentu złego hasha albo nazwiska user dostaje komunikat że coś nie gra.
Próbowałem sprawdzać wartość zmienne result, ale za KAŻDYM RAZEM okazuje się, że: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in r:\home\localhost\www\kodeks\ok.php on line 4

Dzięki za pomoc
Go to the top of the page
+Quote Post
Nievinny
post 8.06.2005, 15:38:07
Post #2





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 27.01.2005
Skąd: Białystok

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


Bo nie możesz wykonać tego zapytania w mysql_num_rows() bo jego argumentem jest wynik z zapytania.
  1. <?php
  2.  
  3. include_once('config.php');
  4. $sql = &#092;"select id from zamowienia where hash = '$hash' AND nazwisko = '$nazwisko'\";
  5. $result = mysql_query($sql);
  6. $if( !$result ) {
  7. print 'Nie wykonano zapytania.';
  8. }
  9. $sql2 = &#092;"UPDATE zamowienia SET aktywacja='1' where hash = '$hash' AND nazwisko = '$nazwisko'\";
  10. $result2 = mysql_query($sql2);
  11. if( !$result ) {
  12. print 'Nie wykonano zapytania.';
  13. }
  14. print &#092;"<center><h1>Dziękujemy za potwierdzenie zamówienia</h1></center>\";
  15.  
  16. ?>

Do tego dodać jeszcze, że user nie istnieje lub złe dane i koniec.


--------------------
Go to the top of the page
+Quote Post
miedzna
post 8.06.2005, 15:51:06
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Cytat(Nievinny @ 2005-06-08 16:38:07)
Bo nie możesz wykonać tego zapytania w mysql_num_rows() bo jego argumentem jest wynik z zapytania.
  1. <?php
  2.  
  3. include('config.php');
  4. $sql = &#092;"select id from zamowienia where hash = '$hash' AND nazwisko = '$nazwisko'\";
  5. $result = mysql_query($sql);
  6. if(!$result) {
  7. print 'Nie wykonano zapytania.';
  8. }
  9. $sql2 = &#092;"UPDATE zamowienia SET aktywacja='1' where hash = '$hash' AND nazwisko = '$nazwisko'\";
  10. $result2 = mysql_query($sql2);
  11. if(!$result2) {
  12. print 'Nie wykonano zapytania.';
  13. }
  14. print &#092;"<center><h1>Dziękujemy za potwierdzenie zamówienia</h1></center>\";
  15.  
  16. ?>

Do tego dodać jeszcze, że user nie istnieje lub złe dane i koniec.

Tylko teraz jak w linku jest jakieś kosmiczne nazwisko np. Kunajelcyn to i tak zapytanie wykonywane jest dobrze, chociaż w bazie takiego nazwisko w ogóle nie ma...

Ten post edytował miedzna 8.06.2005, 15:54:13
Go to the top of the page
+Quote Post
Darill
post 10.06.2005, 00:31:03
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 15.03.2005

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


Sprobuj powinno zadzialac ...

  1. <?php
  2.  
  3. include_once('config.php');
  4. $sql = &#092;"select id from zamowienia where hash = '$hash' AND nazwisko = '$nazwisko'\";
  5. $result = mysql_query($sql) or die(&#092;"Nie wykonano zapytania.\");
  6. $num = mysql_numrows($result);
  7. if ($num < 1) {
  8. header(&#092;"Location: strona_z_info_o_bledzie.html\");
  9. }
  10. $sql2 = &#092;"UPDATE zamowienia SET aktywacja='1' where hash = '$hash' AND nazwisko = '$nazwisko'\";
  11. $result2 = mysql_query($sql2);
  12. if( !$result ) {
  13. print 'Nie wykonano zapytania.';
  14. }
  15. print &#092;"<center><h1>Dziękujemy za potwierdzenie zamówienia</h1></center>\";
  16.  
  17. ?>


w razie nie istnienia takiej pozycji wysylam na inna strone...
ty mozesz podciagnac reszte scryptu pod pentle ...
cool.gif
Go to the top of the page
+Quote Post
miedzna
post 10.06.2005, 08:15:36
Post #5





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Cytat(Darill @ 2005-06-10 01:31:03)
Sprobuj powinno zadzialac ...

  1. <?php
  2.  
  3. include_once('config.php');
  4. $sql = &#092;"select id from zamowienia where hash = '$hash' AND nazwisko = '$nazwisko'\";
  5. $result = mysql_query($sql) or die(&#092;"Nie wykonano zapytania.\");
  6. $num = mysql_numrows($result);
  7.     if ($num < 1) {
  8.         header(&#092;"Location: strona_z_info_o_bledzie.html\");
  9.     exit;
  10. }
  11. $sql2 = &#092;"UPDATE zamowienia SET aktywacja='1' where hash = '$hash' AND nazwisko = '$nazwisko'\";
  12. $result2 = mysql_query($sql2);
  13. if( !$result ) {
  14.     print 'Nie wykonano zapytania.';
  15. }
  16. print &#092;"<center><h1>Dziękujemy za potwierdzenie zamówienia</h1></center>\";
  17.  
  18. ?>


w razie nie istnienia takiej pozycji wysylam na inna strone...
ty mozesz podciagnac reszte scryptu pod pentle ...
cool.gif

OK, już działa smile.gif wiedziałem, że można liczyć na to forum! Dzięki

Pozdrawiam
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.06.2025 - 13:01