Хорошо, у вас слишком много неправильного кода, поэтому, если вы учитесь у определенного сайта или человека ... найдите другой источник.
Не открывайте PHP с помощью <?
. Это сокращенный стиль. Он отключен на многих, если не на большинстве веб-серверов, и не зря - потому что XML вводит его кодировку с использованием того же открытия <?
и вызывает конфликт. Всегда открывайте свой PHP с помощью <?php
. http://www.php.net/manual/en/ini.core.php#ini.short-open-tag
Не использовать if($_POST['submit'])
, используйте if (isset($_POST['submit']))
. Ваш текущий скрипт должен генерировать ошибку, но это, вероятно, маскируется, потому что PHP по умолчанию не показывает очень много ошибок. Это вызывает предупреждение, хотя, потому что вы проверяете, является ли переменная (или, скорее, значение массива) $_POST['submit']
равна true
. Фактически, эта переменная не определена. Используйте isset()
, чтобы проверить, существует ли переменная. http://php.net/manual/en/function.isset.php
Санизировать вход пользователя. Если кто-то набрал '
в любое из ваших полей, ваш запрос сломается. Зачем? Потому что в вашем запросе вы помещаете свои строковые значения в одинарные кавычки, и любой экземпляр другого одинарного кавычка вырвется из этого. Существует такая вещь, как волшебные кавычки в PHP (который автоматически избегает значений POST), но это абсолютно ужасно, поэтому, пожалуйста, отключите его. http://php.net/manual/en/security.magicquotes.php Лучший способ избежать ввода пользователем - это настоящие функции выхода (подробнее об этом позже).
mysql_
функции устарели. Используйте PDO или MySQLi. Если вы привыкаете к функциям mysql_
, проще перейти на MySQLi. Для простоты я буду использовать процедурный стиль, но гораздо лучше пойти с стилем ООП.
Если вы хотите отлаживать команды MySQL с помощью PHP, вы должны тщательно отформатировать свои запросы, распечатать ошибку , а также распечатать вычисленный запрос, потому что иногда вам нужно посмотреть фактический приведенный запрос, чтобы узнать, что с ним не так.
Тем не менее, вот что я предлагаю:
<?php
error_reporting(E_ALL);
// Turn on all error reporting. Honestly, do this every time you write a script,
// or, better yet, change the PHP configuration.
$connection = mysqli_connect('host', 'username', 'password', 'database');
// Somewhere in your config file, I assume you're calling mysql_connect.
// This is a pretty similar syntax, although you won't need mysql_select_db.
if (isset($_POST['submit'])) {
$click = mysqli_real_escape_string($connection, $_POST['click']);
// This will escape the contents of $_POST['click'], e.g.
// if the user inputted: Hello, 'world'! then this will produce:
// Hello, \'world\'!
$imp = mysqli_real_escape_string($connection, $_POST['imp']);
$url = mysqli_real_escape_string($connection, $_POST['url']);
$razmer = mysqli_real_escape_string($connection, $_POST['razmer']);
$picurl = mysqli_real_escape_string($connection, $_POST['picurl']);
$query = "
INSERT INTO `banneradd` (
`click`,
`imp`,
`url`,
`razmer`,
`picurl`,
`username`
)
VALUES
(
'$click',
'$imp',
'$url',
'$razmer',
'$picurl',
''
);
";
// Format your query nicely on multiple lines. MySQL will tell you what line
// the error occurred on, but it's not helpful if everything's on the same line.
$result = mysqli_query($connection, $query);
$error = mysqli_error($connection);
if ($error) {
echo "A MySQL error occurred: $error<br>";
echo "<pre>$query</pre>";
// If an error occurred, print the error and the original query
// so you can have a good look at it.
die;
// Stop executing the PHP.
}
echo '<div class="hr">The Banner has been added, please go back to the index: <a href="view_reklama.php"> Index </a></div>';
}
?>
Смотрите, если это помогает. Скорее всего, ошибка MySQL будет полезна при диагностике проблемы. Возможно, вы просто ошибочно написали имя столбца или имя таблицы.
Для любви к Богу, дезинфицируйте свои переменные! –
Вы можете быть более конкретным, Im beginner in php ... Спасибо :) – Bulqr4eto
Проверьте '$ result', если он содержит' FALSE', были ошибки (которые вы можете получить с помощью функции 'mysql_error()'). –