Извините, что показался новичком с этим, но у меня есть запрос, который я написал, и он, похоже, не работает, и я убедился, что все эти переменные действительны. Ошибок нет, ничего. Это действие формы. Я проверил запрос, переписал его, а также скопировал / вставил туда запрос с другой страницы; все равно не повезло! Я где-то сделал глупую ошибку?
Форма:
<div class="container">
<?php
if($_SESSION['submit_success']){
echo '<div class="alert alert-dismissable alert-success">
<button type="button" class="close" data-dismiss="alert"></button>
<strong>Done! </strong>Your form has been submitted. Please wait up to a week for a reply. Good luck!
</div>';
} elseif($_SESSION['submit_error']){
echo '<div class="alert alert-dismissable alert-danger">
<button type="button" class="close" data-dismiss="alert"></button>
<strong>Error! </strong>You have already sent an application.
</div>';
}
?>
<div class="well">
<center><legend>Sponsorship form</legend></center>
<form class="form-horizontal" autocomplete="off" method="post" action="submitsponsorship.php">
<fieldset>
<div class="form-group">
<label class="control-label r_110">Your details</label><br>
<div class="col-lg-10">
<input type="name" name="name" class="form-control r_90" autocomplete="off" placeholder="Your full name" required>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<input type="email" name="email" class="form-control r_90" autocomplete="off" placeholder="Your email address" required>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<input type="text" name="ign" class="form-control r_90" autocomplete="off" placeholder="Your in-game name (Minecraft username)" required>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<input type="number" name="age" class="form-control r_90" autocomplete="off" placeholder="Your age" required>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<input type="text" name="country" class="form-control r_90" autocomplete="off" placeholder="Your country" required>
</div>
</div>
<br><label class="control-label r_90">Server details</label><br>
<div class="form-group">
<div class="col-lg-10">
<input type="name" name="size" class="form-control r_90" autocomplete="off" placeholder="What size server are you looking for?" required>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<select class="form-control r_90" name="serverlocation" required>
<option value="">Choose a server location</option>
<option value="europe">Europe (France)</option>
<option value="usa">USA</option>
</select>
</div>
</div>
<br><br><label class="control-label r_90">Convince us!</label><br>
<div class="form-group">
<div class="col-lg-10">
<textarea class="form-control r_90" rows="3" name="why-requesting" placeholder="Why are you requesting sponsorship?" required></textarea>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<textarea class="form-control r_90" rows="3" name="why-shouldwe" placeholder="Why should we provide you with sponsorship and not someone else?" required></textarea>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<textarea class="form-control r_90" rows="3" name="how-promote" placeholder="How do you intend on promoting Swift?" required></textarea>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<label class="control-label r_90"><small><i>(optional)</i></small></label>
<textarea class="form-control r_90" rows="3" name="social-links" placeholder="Links to YouTube Channel / Website etc."></textarea>
</div>
</div><br>
<div class="form-group">
<div class="r_500">
<input class="btn btn-success" type="submit" value="Apply">
</div>
</div>
</fieldset>
</form>
<small>Please note that by clicking <i>Apply</i>, you agree to advertising for ******* in the way stated above, <i>if</i> provided with a server.</small>
</div>
</div>
<?php unset($_SESSION['submit_success']) ?>
Это submitsponsorship.php
:
<?php
include 'overall.php';
error_reporting(E_ALL);
include 'resources/database.php';
$email = $_POST['email'];
$check = mysqli_query($db, "SELECT * FROM sponsorships WHERE email = '". $email ."'");
var_dump($check);
if(mysqli_num_rows($check) > 0){
$_SESSION['submit_error'] = 1;
header('Location: /sponsorships');
} else {
$name = $_POST['name'];
$status = 0;
$ign = $_POST['ign'];
$age = $_POST['age'];
$country = $_POST['country'];
$size = $_POST['size'];
$serverlocation = $_POST['serverlocation'];
$why_requesting = $_POST['why-requesting'];
$why_shouldwe = $_POST['why-shouldwe'];
$how_promote = $_POST['how-promote'];
$social_links = $_POST['social-links'];
$applyquery = mysqli_query($db, "INSERT INTO `sponsorships` (`status`, `name`, `email`, `ign`, `age`, `country`, `size`, `serverlocation`, `why-requesting`, `why-shouldwe`, `how-promote`, `social-links`) VALUES (".$status.",".$name.",".$email.",".$ign.",".$age.",".$country.",".$size.",".$serverlocation.",".$why_requesting.",".$why_shouldwe.",".$how_promote.",".$social_links.")");
//$_SESSION['submit_success'] = 1;
//header("Location: /sponsorships");
echo "success";
} ?>
И да, он распечатывает «успех», но ничего не вводит в базу данных. Заранее извиняюсь, если что-то глупое.
Может быть, вы хотите проверить подключение к базе данных? (Прекрасно работает для любого другого запроса в моем проекте) Вот он;
<?php
$db = mysqli_connect("localhost","root","","swiftsetups");
// Check connection //
if (mysqli_connect_errno())
{
echo "MySQL Connection Error: " . mysqli_connect_error();
}
?>
1 ответ
Попробуйте изменить это
$applyquery = mysqli_query($db, "INSERT INTO `sponsorships` (`status`, `name`, `email`, `ign`, `age`, `country`, `size`, `serverlocation`, `why-requesting`, `why-shouldwe`, `how-promote`, `social-links`) VALUES (".$status.",".$name.",".$email.",".$ign.",".$age.",".$country.",".$size.",".$serverlocation.",".$why_requesting.",".$why_shouldwe.",".$how_promote.",".$social_links.")");
К этому:
$applyquery = mysqli_query($db, "INSERT INTO sponsorships (status, name, email, ign, age, country, size, serverlocation, why-requesting, why-shouldwe, how-promote, social-links) VALUES ('$status','$name','$email','$ign','$age','$country','$size','$serverlocation','$why_requesting','$why_shouldwe','$how_promote','$social_links')");
По моему опыту, mysqli_query
не действует как функция echo()
, в которой вы объединяете вещи, используя ". $var ."
РЕДАКТИРОВАТЬ Однако после просмотра комментариев кажется, что '".$var."'
приемлемо?
$_POST['']
от возможных вредоносных записей? php.net/manual/en/security.database.sql-injection. php
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
mysqli_error()
. Лучше всего исправить это с помощью подготовленных операторов.'". YYY ."'
и т. Д. php.net/manual/en/ function.error-reporting.php - это". XXX ."
<= Yours-Bad.