Как написать php скрипт чтобы он не выполнялся при загрузке страницы?

Делаю простую страничку на которой можно забивать данные в mysql базу.
Как сделать так, чтоб форма и сам скрипт были в одном файле?

insert.php :
<?php
	include_once 'db.php';
?>

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>ProjectX</title>
	<link rel="stylesheet" href="css/style.css">
</head>
<body>
	<div class="wrapper">
		<form action="insert.php" method="post">
			<input type="text" name="first_name" id="firstName">
			<input type="text" name="last_name" id="lastName">
			<input type="text" name="phone" id="phone">
			<input type="submit" value="Add">
		</form>
	</div>
</body>
</html>

<?php

$first_name = (isset($_POST['first_name']));
	$last_name = (isset($_POST['last_name']));
	$phone = (isset($_POST['phone']));


	if(@mysql_num_rows(mysql_query("SELECT first_name AND last_name AND phone FROM sellers WHERE first_name ='$first_name' AND last_name = '$last_name' AND phone ='$phone'"))==0){
		
		$sql = "INSERT INTO sellers (first_name, last_name, phone) VALUES ('$first_name', '$last_name', '$phone')";
		$result=mysql_query($sql);
		
		header("Location: ok.php");
	} else {
		echo "ERROR!";
	}
?>


Сделал так, но при открытии странички, в базу сохраняется пустая строка.

UPD: Поправил код , спасибо кто помог )

if ((isset($_POST['first_name'])) && (isset($_POST['last_name'])) && (isset($_POST['phone'])))  {
	$first_name = $_POST['first_name'];
	$last_name = $_POST['last_name'];
	$phone = $_POST['phone'];

...
}
  • Вопрос задан
  • 972 просмотра
Решения вопроса 3
@dk-web
Перед $first_name = (isset($_POST['first_name']));
Добавьте if (isset($_POST))... то есть проверку

п.с. сейчас вам расскажут про PDO, старый mysql иии... необходимость проверки данных перед занесением в бД))
Ответ написан
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
Надо сделать проверку на POST-метод, оберните код в if:
if ($_SERVER['REQUEST_METHOD'] == 'POST')
Ответ написан
Комментировать
@Mixxer
Достаточно добавить проверку в самом начале (перед $first_name....)

if (isset($_POST['first_name'])) {
тут ваш код
}


В проверке конечно лучше все поля проверять. И не совсем понятно зачем вы записываете везде значение функции isset, там же либо true, либо false (советую взглянуть: php.net/manual/ru/function.isset.php)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@LiguidCool
Засуньте нижнюю часть в if и проверяйте есть ли входные данные.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы