Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Inna wartość dla skryptu,a inna dla MySQL'a ;/
Forum PHP.pl > Forum > Przedszkole
ISeeYou
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ć ;/)
Virti
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.
ISeeYou
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
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.