0

Собственно в чём пробелама. Веб приложение на локальном сервере mamp pro работает отлично. Регистрация, изменения данных у уже созданных пользователей, но вот выгрузив приложение на сервер, появилась проблема. Регистрация работает исправно, но обновление данных у уже существующих пользователей работает некоректно. А вернее работает один раз и семи-восьми. Что я имею ввиду: После регистрации у пользователя в бд есть строка как "points". Туда зачисляются баллы за прохождение тестов в приложении. Т.е. человек набрал 4 балла, и эти 4 балла ссумирывались с тем что у него уже есть в бд. Если было 0, то стало 4, а если было 2, то стало 6. Ну вы поняли. Так вот эти баллы не начисляются. Но это если использовать телефон. А вот если запустить приложение на пк, то всё отлично работает. Всё записывается, работает отлично. В чём может быть проблема?

Более кратко: на локальном сервере всё отлично, а на хостинге нормально работает только пк.

Код подключения к бд:

<?php   
$mysql = mysqli_connect('localhost', 'youthvif_hemika02', '8Au34mFov9', 'youthvif_db');
$mysql->set_charset("utf8");

Код отправки данных в бд:

<?php

include '../php/connect.php';

$login = $_COOKIE["login"];

$func = $_POST['func']; if ($func === 'func_data') { $arr['newUserPoints'] = $_POST['newUserPoints']; $arr['newAllPoints'] = $_POST['newAllPoints']; $arr['nameTest'] = $_POST['nameTest']; $arr['result'] = $_POST['result']; $arr['fulfield'] = $_POST['fulfield']; echo json_encode($arr); }

$userPoints = $arr[newUserPoints]; $allPoints = $arr[newAllPoints];

$nameTest = $arr[nameTest]; $result = $arr[result]; $fulfield = $arr[fulfield];

$mysql->query("UPDATE users SET points = '$userPoints' WHERE users.login = '$login'"); $mysql->query("UPDATE goals SET allPoints = '$allPoints'");

$mysql->query("INSERT INTO complTest (login, test, points, fulfield) VALUES('$login', '$nameTest', '$result', '$fulfield')");

// setcookie($nameTest, $fulfield, time() + 3600 * 24 * 365, "/");

$mysql->close();

1 Answers1

0

А вы пробывали запринтить данные перед передачей в запросе?

echo $login;
$mysql->query("UPDATE `users` SET `points` = '$userPoints' WHERE `users`.`login` = '$login'");

Учитывая что логин берется из куки, мне кажется проблемма в нем.

  • 2 совета исходя из вашего кода.
  1. Не используйте mysql, Используйте хотя бы PDO
  2. Данные которые лежат в куки, легко модифицируются и могут содержать неожыданное содержание, например команду на удаление бд. Вместо $_COOKIE["login"] используйте $_SESSION["login"]
Red
  • 346