Моя регистрационная форма и PHP скрипт: оба расположены на одной странице: index.php
. У меня 4 вопроса:
- Код php успешно добавляет все
информация в БД, но после клика отправить
кнопка, появляется новая открытая страница
пустой. Функция не возвращается к
предыдущая страница после отправки формы
- При регистрации как узнать что
будет идентификатором регистрации пользователя? я
использовал
$new_user_id =
$db->insert_id();
для этой цели
но это не работает правильно. Также
формула "последний автоинкремент + 1"
ненадежный. Потому что в гонке
условия нет гарантии
что другой пользователь не будет вставлять новый
запись в то время как ваша функция выполнена
это работает. Есть идеи?
- Как добавить новое поле в форму на лету
и хранить их значение в дБ, как
тот? http://prntscr.com/2303n
(Contacts.google.com)
И, наконец, я добавил
foreach ($_POST as $key => $value) {
$_POST[$key] = mysqli_real_escape_string($value);
}
вверху страницы, но он опустошается
некоторые значения. Какие ценности я должен
дезинфицировать?
Мой код
if($submit) {
$sql = "INSERT INTO usr_table (fullname, dob, school, add_date, phone, adress, info) VALUES ('$fullname', '$dob', '$school', CURDATE(), '$phone', '$adress', '$info')";
$result = $db->query($sql) or die(mysqli_errno());
$new_user_id = $db->insert_id();
$friend_arr = explode(',', $friends);
foreach($friend_arr as $friend_name) {
$friend_name = trim($friend_name);
if (empty($friend_name)) {
continue;
}
$sql = "SELECT id FROM usr_table WHERE `fullname` = '$friend_name' LIMIT 1";
$result = $db->query($sql);
if (!$result) {
echo "$sql failed " . mysqli_errno();
exit;
}
if (mysqli_num_rows($result) == 0) {
echo "Bazada ".$friend_name ." adlı adam yoxdur ";
}
$data = $db->fetch_array($result);
$friend_id = $data['id'];
$sql = "INSERT INTO usrfrnd_table (`user_id`, `friend_id`) VALUES ('$new_user_id', '$friend_id')";
$success=$db->query($sql) or die(mysqli_errno());
if($success) {header('Location: index.php');}
else {die(mysqli_errno());}
}
}