Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц, летом дешевле!

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2022, 15:52   #1
hexor_boo
Разъяснятор
Пользователь
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 42
Вопрос Непонятка с mySQL (Frontend: Delphi 10.4; Backend: PHP 7.4)

Код на сервере:
Код:
<?php
 $mysqlig=new mysqli('localhost', 'msk-vizitka', 'test0fff', 'msk-vizitka');
 session_start();
 $_SESSION['user']=$_POST['username'];
 $_SESSION['pass']=$_POST['password'];
 $query="SElECT * FROM `users` WHERE `uname`='".$_SESSION['username']."' AND `upass`='".$_SESSION['password']."');";
 $r=mysqlig::query($query);
  if ($r>0)
   {
    $f=mysqli::fetch_assoc($r);
    $_SESSION["hash"]=md5($f['uname'].$f['upass']);
    echo($_SESSION["hash"]);
   }
 //SetCookie("unp", $unp); //auth handshake cookie
 //SetCookie("test", $_COOKIE["test"]);
?>
Код клиента:
Код:
 procedure TfrmMain.btnAuthClick(Sender: TObject);
var
 strVarData : TStrings;
 tstCookie  : TCookie;
begin
 strVarData:=TStringList.Create;
 strVarData.Add('username="'+edLogin.Text+'"');
 strVarData.Add('password="'+edPassword.Text+'"');
 netPostAuth.Post(
  'http://hex-space.ru/auth.php', strVarData, Nil, TEncoding.Default
 ); //netPostAuth - это компонент TNetHTTPRequest
end;

procedure TfrmMain.netPostAuthRequestCompleted(const Sender: TObject;
  const AResponse: IHTTPResponse);
var
 Cookie : TCookie;
begin
  memLog.Lines.Add(AResponse.ContentAsString);
  For Cookie In AResponse.Cookies Do
   Begin
    memLog.Lines.Add('Cookie-Name: '+Cookie.Name);
    memLog.Lines.Add('Cookie-Value: '+Cookie.Value);
   End;
end;
При нажатии на кнопку btnAuth в memLog выводится следующее:
Код:
<br />
<b>Fatal error</b>:  Uncaught Error: Class 'mysqlig' not found in /home/users/m/msk-vizitka/domains/hex-space.ru/auth.php:7
Stack trace:
#0 {main}
  thrown in <b>/home/users/m/msk-vizitka/domains/hex-space.ru/auth.php</b> on line <b>7</b><br />

Cookie-Name: PHPSESSID
Cookie-Value: c4a27f3bee3692bdbb59b8ba6b2e4a03
Что я делаю неправильно? Если честно - я бы предпочел вместо mysqli использовать старые функции mysql (от PHP5) - в процессе проверок я пришел к тому, что они не работают. Это действительно так?
hexor_boo вне форума Ответить с цитированием
Старый 24.08.2022, 16:04   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,265
По умолчанию

Цитата:
Сообщение от hexor_boo Посмотреть сообщение
$r=mysqlig::query($query);
mysqlig->query

Цитата:
Сообщение от hexor_boo Посмотреть сообщение
$f=mysqli::fetch_assoc($r);
mysqlig->fetch_assoc
p51x вне форума Ответить с цитированием
Старый 24.08.2022, 16:10   #3
hexor_boo
Разъяснятор
Пользователь
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 42
По умолчанию

2 p51x:
Теперь в memLog выводится следующее:
Код:
<br />
<b>Parse error</b>:  syntax error, unexpected '-&gt;' (T_OBJECT_OPERATOR) in <b>/home/users/m/msk-vizitka/domains/hex-space.ru/auth.php</b> on line <b>7</b><br />
hexor_boo вне форума Ответить с цитированием
Старый 24.08.2022, 16:16   #4
hexor_boo
Разъяснятор
Пользователь
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 42
По умолчанию

А если по-старому?

Код:
<?php
 mysql_connect('localhost', 'msk-vizitka', 'test0fff');
 mysql_select_db('msk-vizitka');
 session_start();
 $_SESSION['user']=$_POST['username'];
 $_SESSION['pass']=$_POST['password'];
 $query="SElECT * FROM `users` WHERE `uname`='".$_SESSION['username']."' AND `upass`='".$_SESSION['password']."');";
 $r=mysql_query($query);
  if (mysql_num_rows($r)>0)
   {
    $f=mysql_fetch_row($r);
    $_SESSION["hash"]=md5($f['uname'].$f['upass']);
    echo($_SESSION["hash"]);
   }
 //SetCookie("unp", $unp); //auth handshake cookie
 //SetCookie("test", $_COOKIE["test"]);
?>
Тогда в memLog выводится:
Код:
<br />
<b>Warning</b>:  mysql_num_rows() expects parameter 1 to be resource, bool given in <b>/home/users/m/msk-vizitka/domains/hex-space.ru/auth.php</b> on line <b>9</b><br />

Cookie-Name: PHPSESSID
Cookie-Value: a6871b150389029c0df46482a85951d2
Возможно ля этого проще найти решение?
hexor_boo вне форума Ответить с цитированием
Старый 24.08.2022, 16:26   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,265
По умолчанию

Вы перед mysqlig не забываете ставить $ ?
p51x вне форума Ответить с цитированием
Старый 24.08.2022, 17:45   #6
hexor_boo
Разъяснятор
Пользователь
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 42
По умолчанию

2 p51x, именно так!
И ещё косяк в коде PHP:
Код:
 $_SESSION['user']=$_POST['username'];
 $_SESSION['pass']=$_POST['password'];
 $query="SElECT * FROM `users` WHERE `uname`='".$_SESSION['username']."' AND `upass`='".$_SESSION['password']."');";
Значение я пишу сюда: $_SESSION['user'], а в SQL запрос вставляю $_SESSION['username']
hexor_boo вне форума Ответить с цитированием
Старый 24.08.2022, 17:59   #7
hexor_boo
Разъяснятор
Пользователь
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 42
По умолчанию

2 p51x,

$mysqlig->fetch_assoc почему-то не работает.
вместо нее я сделал так:
Код:
$f=mysqli_fetch_array($r, MYSQLI_BOTH);
Благодарю за разъяснение!

Последний раз редактировалось hexor_boo; 25.08.2022 в 06:24.
hexor_boo вне форума Ответить с цитированием
Старый 25.08.2022, 05:56   #8
hexor_boo
Разъяснятор
Пользователь
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 42
По умолчанию

Косяк в SQL-запросе: закрывающая скобка в конце при отсутствии открывающей. Что примечательно - ошибку никакую не пишет.

Последний раз редактировалось hexor_boo; 25.08.2022 в 08:14.
hexor_boo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц, летом дешевле!

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Долой backend! Все делаем на javascript в frontend. lerneree JavaScript, Ajax 13 01.04.2018 02:25
Настольная игра с шашками (Backend и Frontend). flash, python ManuMana Фриланс 4 29.03.2018 00:25
Frontend(ReactJS) Backend(Stamplay) MongoDB МихаилМАК Фриланс 0 26.07.2016 16:09