Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Problem - nie zarejestrowany user, help me
buddha
post 7.10.2017, 23:46:43
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.09.2017

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


Cześć, przerabiam gotowy portal randkowy w którym natrafiłem na parę problemów.
Bardzo bym prosił o pomoc w rozwiązaniu smile.gif

Mój główny problem polega na tym że niektóre dane/skrypty nie są widoczne
dla nie zarejestrowanego użytkownika. I tutaj zaczynają się pytania.. jak to obejść?

W pliku connect.php znalazłem taki kod

  1. if ($logged == true) { $mysqli->query("UPDATE users SET lang = '".$slang."' WHERE id = '".$user_id."'"); } }


Oraz w plike core.php

  1. function isLogged() {
  2.  
  3. global $mysqli;
  4.  
  5. if (!empty($_SESSION['user']) && is_numeric($_SESSION['user']) && $_SESSION['user'] > 0) {
  6.  
  7. $user_id = secureEncode($_SESSION['user']);
  8.  
  9. $query = "SELECT COUNT(id) AS count FROM usuarios WHERE id=$user_id";
  10.  
  11. $sql_query = $mysqli->query($query);
  12.  
  13. $sql_fetch = mysqli_fetch_assoc($sql_query);
  14.  
  15.  
  16.  
  17. return $sql_fetch['count'];
  18.  
  19. }
  20.  
  21. }



Ten post edytował buddha 7.10.2017, 23:53:23
Go to the top of the page
+Quote Post
Pyton_000
post 8.10.2017, 06:52:01
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


facepalmxd.gif blink.gif sciana.gif
Go to the top of the page
+Quote Post
buddha
post 8.10.2017, 08:33:29
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.09.2017

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


Źle przedstawiłem mój problem biggrin.gif. Większość funkcji wymaga jakiś danych/parametrów od nas by przypisać do innych funkcji i je odtworzyć.
Przykładowo, jeśli chcemy wejść na czyjś profil to musimy być zalogowani - ominąłem to ale dane się nie wyświetlają np jak zdjęcia.

Myślę by zrobić konto wspólne - z którym będzie każdy nie zalogowany użytkownik powiązany. Co sądzicie o takim rozwiązaniu?

Ten post edytował buddha 8.10.2017, 08:42:28
Go to the top of the page
+Quote Post
emillo91
post 8.10.2017, 14:21:48
Post #4





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

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


A może byś podał przykład takiego skryptu dla zarejestrowanego użytkownika? A w jaki sposób strawdzasz czy użytkownik jest zarejestrowany?
Go to the top of the page
+Quote Post
buddha
post 8.10.2017, 15:05:55
Post #5





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.09.2017

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


  1. $logged = false;
  2. $user = array();
  3. $available_languages = availableLanguages();
  4. $langs = prefered_language($available_languages, $_SERVER["HTTP_ACCEPT_LANGUAGE"]);
  5. $lang = key($langs);
  6.  
  7. if($lang != ''){ $_SESSION['lang'] = checkUserLang($lang); $sm['lang'] = siteLang(checkUserLang($lang)); $sm['alang'] = appLang(checkUserLang($lang)); } else{ $sm['lang'] = siteLang($sm['config']['lang']);
  8.  
  9. $sm['alang'] = appLang($sm['config']['lang']); } if (!empty($_SESSION['user']) && is_numeric($_SESSION['user']) && $_SESSION['user'] > 0) { $user_id = secureEncode($_SESSION['user']); $logged = true; getUserInfo($user_id,0); checkUserPremium($user_id);
  10. $sm['user_notifications'] = userNotifications($user_id);
  11. $sm['lang'] = siteLang($sm['user']['lang']); $sm['alang'] = appLang($sm['user']['lang']);
  12. $sm['twoo_lang'] = siteTwooLang($sm['user']['lang']);
  13. $mysqli->query("UPDATE users SET lang = 1 WHERE id = 1"); }
  14.  
  15. $sm['logged'] = $logged;
  16.  
  17. if (!empty($_GET['lang'])) { $slang = secureEncode($_GET['lang']); $_SESSION['lang'] = $slang; $sm['lang'] = siteLang($_SESSION['lang']); $sm['alang'] = appLang($_SESSION['lang']); $sm['twoo_lang'] = siteTwooLang($_SESSION['lang']); if ($logged == true) { $mysqli->query("UPDATE users SET lang = '".$slang."' WHERE id = '".$user_id."'"); } }
  18.  
  19. if ($logged == false) { unset($_SESSION['user']); unset($user); }


  1. case 'register':
  2. $email = secureEncode($_GET['reg_email']);
  3. $password = secureEncode($_GET['reg_pass']);
  4. if($password == 'fb'){
  5. $password = $email;
  6. }
  7. $name = secureEncode($_GET['reg_name']);
  8. $gender = secureEncode($_GET['reg_gender']);
  9. $birthday = secureEncode($_GET['reg_birthday']);
  10. $location = json_decode(file_get_contents('http://freegeoip.net/json/'.$_SERVER['REMOTE_ADDR']));
  11. $looking = secureEncode($_GET['reg_looking']);
  12. $photo = secureEncode($_GET['reg_photo']);
  13. $dID = secureEncode($_GET['dID']);
  14. $city = $location->city;
  15. $country = $location->country_name;
  16. $lat = $location->latitude;
  17. $lng = $location->longitude;
  18. $date = date('m/d/Y', time());
  19. $to = new DateTime('today');
  20. $age = $from->diff($to)->y;
  21. $from = new DateTime($birthday);
  22.  
  23. $time = time();
  24. $arr = array();
  25. $arr['error'] = 0;
  26. if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  27. $arr['error'] = 1;
  28. $arr['error_m'] = $sm['lang'][181]['text'];
  29. echo json_encode($arr);
  30. exit;
  31. }
  32.  
  33. if($email == "" || $email == NULL || $password == "" || $password == NULL ){
  34. $arr['error'] = 1;
  35. $arr['error_m'] = $sm['lang'][182]['text'];
  36. echo json_encode($arr);
  37. exit;
  38. }
  39.  
  40.  
  41. $bio = $sm['lang'][322]['text']." ".$name.", ".$age." ".$sm['lang'][323]['text']." ".$city." ".$country;
  42. //CHECK IF USER EXIST
  43. $email_check = $mysqli->query("SELECT email FROM users WHERE email = '".$email."'");
  44. if($email_check->num_rows == 1 ){
  45. $arr['error'] = 1;
  46. $arr['error_m'] = $sm['lang'][188]['text'];
  47. echo json_encode($arr);
  48. } else {
  49. $query = "INSERT INTO users (name,email,pass,age,birthday,gender,city,country,lat,lng,looking,lang,join_
    date,bio,s_gender,s_age,credits,app_id)
  50. VALUES ('".$name."', '".$email."','".crypt($password)."','".$age."','".$birthday."','".$gender."','".$city."','".$country."','".$lat."','".$lng."','".$looking."','".$_SESSION['lang']."','".$date."','".$bio."','".$looking."','18,35,1','".$sm['config']['free_credits']."','".$dID."')";
  51. if ($mysqli->query($query) === TRUE) {
  52. $last_id = $mysqli->insert_id;
  53. $mysqli->query("INSERT INTO users_videocall (u_id) VALUES ('".$last_id."')");
  54. $free_premium = $sm['config']['free_premium'];
  55. $time = time();
  56. $extra = 86400 * $free_premium;
  57. $premium = $time + $extra;
  58. $mysqli->query("INSERT INTO users_premium (uid,premium) VALUES ('".$last_id."','".$premium."')");
  59. $mysqli->query("INSERT INTO users_notifications (uid) VALUES ('".$last_id."')");
  60. $mysqli->query("INSERT INTO users_extended (uid,field1) VALUES ('".$last_id."','".$sm['lang'][224]['text']."')");
  61. $query2 = "INSERT INTO users_photos (u_id,photo,profile,thumb,approved) VALUES ('".$last_id."','".$photo."',1,'".$photo."',1)";
  62. $mysqli->query($query2);
  63.  
  64. welcomeMailNotification($name,$email,$password);
  65. getUserInfo($last_id,0);
  66. $_SESSION['user'] = $last_id;
  67. $arr['user'] = $sm['user'];
  68. $arr['user']['slike'] = getUserSuperLikes($sm['user']['id']);
  69. $age = $sm['user']['s_age'];
  70. $e_age = explode( ',', $age );
  71. $arr['user']['sage'] = $e_age[1];
  72. $arr['user']['photos'] = userAppPhotos($sm['user']['id']);
  73. echo json_encode($arr);
  74. }
  75. }
  76. break;
Go to the top of the page
+Quote Post
emillo91
post 8.10.2017, 15:38:11
Post #6





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

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


Tam gdzie w "ifach" masz $_SESSION['user'] to jest to sprawdzenie czy istnieje sesja zalogowanego użytkownika np:$ _SESSION['user'] > 0. We wszystkich skryptach musisz zmodyfikować tego rodzaju warunki aby skrypt nie sprawdzał czy użytkownik jest zalogowany. Poczytaj trochę o sesjach php bo to są podstawowe informacje aby zabezpieczyć się przed nieuprawnionym dostępem do pewnych części strony. Pamiętaj że skrypt takie warunki mogą sprawdzać też inne dane dla zalogowanego użytkownika i to też trzeba zmodyfikować thumbsdownsmileyanim.gif
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: 19.04.2024 - 19:21