Сессия формы не работает, когда ее используют несколько пользователей

Мне нужна помощь от всех вас.

Я создал форму, используя PHP. это школьная регистрационная форма. у него только одна страница.

мне нужно сгенерировать регистрационный номер (идентификатор сессии используется здесь как регистрационный номер) для всех, кто открывает форму.

вместо создания сеанса я использовал ID для всех. то есть когда кто-то отправляет форму, он проверяет БД и, если там есть регистрационный номер, он увеличивает одно значение и добавляет текущую форму в БД.

мой код здесь

<td>Application No : <input type="hidden" name="disablusr_dummyid" autocomplete="off" style="background:#f0efed;" value="00<?php
include('config.php');
$q="select MAX(auto_gen_id) from application_form";
$result=mysql_query($q);
$data=mysql_fetch_array($result);
$max_val=$data[0];
echo $max_val+1;
?>"/>
<input type="hidden" name="applicant_id" autocomplete="off" value="00<?php
include('config.php');
$wer = "select MAX(auto_gen_id) from application_form";
$resultgh = mysql_query($wer);
$dates = mysql_fetch_array($resultgh);
$erfdqwe = $dates[0];
echo $erfdqwe+1;
?>" />
<input type="hidden" name="txt_applicant_id" style="display:none;" autocomplete="off" value="<?php
include('config.php');
$werqw = "select MAX(auto_gen_id) from application_form";
$resultghasw = mysql_query($werqw);
$dataqsax = mysql_fetch_array($resultghasw);
$erfdqweqti = $dataqsax[0];
echo $erfdqweqti+1;
?>" /></td>

но происходит то, что, когда несколько пользователей используют форму, генерируется один и тот же идентификатор сеанса, и только один пользователь может сохранить форму, и это отражается в БД. другие формы не отправляются и не добавляются в БД.

помогите мне в этой ошибке .. заранее спасибо.

0

Решение

Решением здесь не является использование скрытых полей для идентификаторов:
В этот момент у вас есть что-то вроде этого:

"INSERT INTO (id, ..., ...) VALUES('".addslashes($_POST['applicant_id']."', ...)

Вы должны рефакторировать свою логику, чтобы потом вычислить идентификатор, что означает, что вы отбрасываете скрытые поля и делаете это:

<?php
if (!empty($_POST)) {
$wer = "select MAX(auto_gen_id) from application_form";
$resultgh = mysql_query($wer);
$dates = mysql_fetch_array($resultgh);
$erfdqwe = $dates[0];
$new_applicant_id = $erfdqwe+1;
}

А затем использовать $new_applicant_id в ВСТАВИТЬ sql.
На заметку ваш код уязвим для внедрения SQL и использует устаревшие функции.
Вы должны попытаться перейти к mysqli или же PDO и предпочтительное использование prepared statements

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]