Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Inna wartość dla skryptu,a inna dla MySQL'a ;/
ISeeYou
post 24.02.2008, 20:52:13
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.02.2008

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


Mam taki skrypt:
  1. <?
  2.  
  3. include('inc/config.php');
  4. $nick1 = addslashes($_GET['nick']);
  5. $sys1 = $_SERVER['HTTP_USER_AGENT'];
  6. $ip1 = $_SERVER['REMOTE_ADDR'];
  7. $data1 = date("Y-m-d H:i:s");
  8.  
  9.  
  10. function generate_activate_code()
  11. {
  12. $activate_code = '';
  13. $znaki = '0123456789';
  14.  
  15. for ($i = 0; $i < 10; $i++)
  16. {
  17. $activate_code .= substr($znaki, rand(0, strlen($znaki)) , 1);
  18. }
  19. return $activate_code;
  20. }
  21. $activate_code = generate_activate_code();
  22.  
  23. $tor = mysql_query("SELECT * FROM 8m_users WHERE login = '$nick1'");
  24. $t = mysql_fetch_assoc($tor);
  25.  
  26. $acc = $activate_code;
  27.  
  28. if(!$nick){
  29. require_once('menu.php');
  30. echo '<div id="main">'.$naglik.'
  31. <p>Podany przez Ciebie nick jest niepoprawny!</p>
  32. </div>';}
  33. else {
  34.  if(mysql_query("INSERT INTO 8m_users (login,ip,data,sys,a_code) VALUES ('$nick1','$ip1','$data1','$sys1','$acc')")){
  35. require_once('menu.php');
  36.  echo '<div id="main">'.$naglik.'
  37. <p class="alert">Zarejstrowano pod nazwą <b>'.$nick.'</b><br><a href="gwww.php?login='.$nick.'&code='.$acc.'">Kliknij aby pobrać swój link!</a></p></div>';
  38. }
  39.  }
  40.  
  41. ?>

Zadaniem skryptu jest zarejstrować usera i wygenerować kod aktywacyjny tyle,że bardzo czesto zdaża się,że w URL pokazuje się np:
localhost/~wlk/gwww.php?login=test&code=99281666
a do bazy zapisuje się kod 2147483647
2 zmienne są po to,ponieważ user musi pobrać swój link do serwisu,a nie moge go jakoś umieścić w jednym pliku bo tylko się dodaje,ale odrazu go nie pobiera dopiero od następnego odświerzenia. Może ktoś wie jak zrobić,żeby po zarejstrowaniu się odrazu z bazy pobierało ID do tego usera?
(Odrazu mówie,że jest możliwość powtarzania się loginów więc WHERE login='$nick' moze nie wypalić ;/)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Virti
post 24.02.2008, 21:20:51
Post #2





Grupa: Zarejestrowani
Postów: 115
Pomógł: 12
Dołączył: 11.01.2005
Skąd: Zduńska Wola

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


Zezwalając na powtarzanie loginów sam sobie stwarzasz problem (wiem, że nie o to pytasz). Po pierwsze, przy logowaniu będziesz musiał sprawdzać login i hasło w jednym zapytaniu, pozatym jednoznaczna identyfikacja konta, bez hasła, czyli to co potrzebujesz staje się niemożliwa w erze neostrady, gdy spora część polskiego Internetu posiada zmienne IP, pozatym zawsze jest jakaś możliwość ukrycia się za proxy itp.

Mam pytanie, czy to jest cały skrypt, czy posklejałeś go z poszczególnych części? Bo nadal nie rozumiem, dlaczego deklarujesz 2. zmienne $activation_code i $acc. Patrząc na ten kod uważam, że bez problemów mógłbyś korzystać z jednej zmiennej.

PS. Zauważyłem, że do bazy zapisuje Ci się maksymalna dopuszczalna wartość dla typu INTEGER... (2147483647) i szczerze mówiąc, nie mam pojęcia dlaczego. Spróbuj posprawdzać i potestować różne typy dla tej kolumny (a_code)

Pozdrawiam.
Go to the top of the page
+Quote Post
ISeeYou
post 24.02.2008, 22:17:18
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.02.2008

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


To nie służy do logowania.Poprostu jest taka stronka gdzie ktoś wpisuje swój login dostaje swó link po iD na końcu i jak ktoś wejdzie to pisze:
$login przesyła Ci $x..Kliknij jeśli przyjmujesz $x

A to jest tylko pliczek od dodania do bazy.Kod w sumie faktycznie jest niepotrzebny teraz. Poradziłem sobie tkaim sposobem,ze ID pobiera nie z polecenia WHERE login=$login tylko dodałem ORDER BY data DESC i wtedy pokazuje od końca ten sam login.

Ale jak zrobić,żeby nie było osobnego pliku na pobranie ID do nowostworzonego loginu? Można zrobić,ze jak odświerzy to się pokaże,ale po co ma odświerzać skoro napewno się da zrobić tak jak chce
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: 14.08.2025 - 10:47