Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Scrypt aktywujący konto usera z linka...
Forum PHP.pl > Forum > Gotowe rozwiązania
miedzna
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
Nievinny
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.
miedzna
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...
Darill
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
miedzna
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
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.