при отправке формы значения не вставляются в базу данных в php - PullRequest
1 голос
/ 30 января 2020

У меня есть форма html, когда пользователь отправляет данные, данные отправляются в базу данных, это работало нормально, пока я не добавил еще одну вещь, я добавил функцию mail для отправки почты после отправки данных. мой код как показано ниже:

<?php
error_reporting(0);

session_start();
require('db_config.php');

if (isset($_POST['submit'])) {
	
	$name = $_FILES['Photo']['name'];
	list($txt, $ext) = explode(".", $name);
	$image_name = time() . "." . $ext;
	$tmp = $_FILES['Photo']['tmp_name'];
	
	$shame = $_FILES['paymentphoto']['name'];
	list($txts, $exts) = explode(".", $shame);
	$receipt_name = time() . "." . $ext;
	$tmps = $_FILES['paymentphoto']['tmp_name'];
	
	if (move_uploaded_file($tmp, 'uploads/' . $image_name) && move_uploaded_file($tmps, 'receipt/' . $receipt_name)) {
		$sql = "INSERT INTO members (firstname, lastname, image, company, designation, addressone, addresstwo, aadhar, city, state, pin, pan, rnameone, rnametwo, mobile, alternate, email, experience, businessdate, companyregistration, gstin, servicesoffered, fee, mode, receipt) VALUES ('" . $_POST['first_name'] . "','" . $_POST['last_name'] . "' , '" . $image_name . "','" . $_POST['company'] . "', '" . $_POST['designation'] . "','" . $_POST['address'] . "', '" . $_POST['address2'] . "', '" . $_POST['aadhaar'] . "', '" . $_POST['city'] . "', '" . $_POST['state'] . "', '" . $_POST['pin'] . "', '" . $_POST['pan'] . "', '" . $_POST['recommended'] . "', '" . $_POST['recommended2'] . "','" . $_POST['mobile'] . "', '" . $_POST['alternate'] . "', '" . $_POST['email'] . "', '" . $_POST['experience'] . "', '" . $_POST['date'] . "', '" . $_POST['registration'] . "', '" . $_POST['gst'] . "', '" . $_POST['services'] . "', '" . $_POST['fee'] . "', '" . $_POST['payment'] . "', '" . $receipt_name . "' )";
		$mysqli->query($sql);
		
		$to = "teiamembers@gmail.com"; // this is your Email address
		$from = $_POST['email']; // this is the sender's Email address
		$first_name = $_POST['first_name'];
		$last_name = $_POST['last_name'];
		
		$headers = "From:" . $from . "\nMIME-Version: 1.0\nContent-Type: text/html; charset=utf-8\n";
		$headers2 = "From:" . $to;
		$subject = "TEIA Membership Registration Request";
		$subject2 = "TEIA Membership Request";
		$message = $first_name . " has requested for TEIA Registration.  Full Name:" . " " . $first_name . " " . $last_name . "<br>" . "Email:" . $from . "<br>" . "Mobile:" . " " . $_POST['mobile'] . "<br>" . "Company Name:" . " " . $_POST['company'] . "<br>" . "Designation" . " " . $_POST['designation'] . "<br>" . "Residence Address:" . " " . $_POST['address'] . "<br>" . "Office Address:" . " " . $_POST['address2'] . "<br>" . "Aadhaar:" . " " . $_POST['aadhaar'] . "<br>" . "City:" . " " . $_POST['city'] . "<br>" . "State:" . " " . $_POST['state'] . "<br>" . "Pin:" . " " . $_POST['pin'] . "<br>" . "Pan:" . " " . $_POST['pan'] . "<br>" . "Reference:" . " " . $_POST['recommended'] . "<br>" . "Alternate Number:" . " " . $_POST['alternate'] . "<br>" . "Experience:" . " " . $_POST['experience'] . "<br>" . "Aadhaar:" . " " . $_POST['aadhaar'] . "<br>" . "Date of Business Setup:" . " " . $_POST['date'] . "<br>" . "Company Registration Number:" . " " . $_POST['registration'] . "<br>" . "GSTIN:" . " " . $_POST['gst'] . "<br>" . "Services Offered:" . " " . $_POST['services'] . "<br>" . "Fee Paid:" . " " . $_POST['fee'] . "<br>" . "Payment Mode:" . " " . $_POST['payment'] . "<br>";
		$message2 = "Your request for TEIA Membership Received. We will contact you Shortly. ";
		
		mail($to, $subject, $message, $headers);
		mail($from, $subject2, $message2, $headers2); // sends a copy of the message to the sender
		
		if ($mysqli) {
			$msg = "Your Request For Membership Registration Sent Successfully";
		}
	}
}
?>

Теперь проблема в том, что когда пользователь отправляет форму, почта работает правильно, но значения не отправляются в базу данных, может кто-нибудь сказать, что может быть не так? здесь, заранее спасибо

1 Ответ

1 голос
/ 30 января 2020

Сначала позаботьтесь о SQL ВПРЫСКА.

Некоторое количество проверки необходимо все время. По крайней мере ... этот.

if($mysqli->query($sql)) { fine } else { error }

А в части "ошибка" выше, если бы вы включили номер ошибки и реальное сообщение, вы сами могли бы найти ответ.

Главное сомнение, которое у меня есть ... у вас есть какой-то уникальный столбец, и вставка не произошла, как это было в базе данных ранее.

Кроме того, лучше использовать id int unique auto_increment для нескольких целей .

Во-вторых, вы должны были создать $ mailstatus и проверить то же самое, а не mysqli для этого сообщения.

if ($mailstatus) {
    $msg = "Your Request For Membership Registration Sent Successfully";
}
...