Я работаю над настраиваемой CMS, чтобы попытаться изучить некоторые вещи на PHP. Я основываю свой опыт на некоторых учебниках, которые я вижу/читаю.UPDATE php function not working
Итак, у меня есть таблица table_hem, где сохраняются все данные. Затем я повторяю его по текстовым полям по всей странице, которая на данный момент является моим index.php. Все работает отлично, особенно если я вставляю данные из PHP MyAdmin.
Но теперь я создаю форму редактирования, и все больше не работает. Я все еще могу повторить все в текстовые поля, чтобы изменить текст, но когда я нажимаю кнопку «сохранить», мои переменные не обновляются в базе данных, несмотря на то, что я получаю сообщение об успешном завершении. Я не знаю, является ли проблема на странице редактирования или в синтаксическом коде ... Я не получаю никаких ошибок, даже когда я Firebugging ... Кто-нибудь может мне помочь?
Вот страница редактирования:
<?php
require_once "../scripts/connect_to_mysql.php";
// Determine which page ID to use in our query below
if (!$_GET['pid']) {
$pageid = '1';
} else {
$pageid = ereg_replace("[^0-9]", "", $_GET['pid']); // filter everything but numbers for security
}
// Query the body section for the proper page
$sqlCommand = "SELECT text1, text2 FROM page_hem WHERE id='$pageid' LIMIT 1";
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error());
while ($row = mysqli_fetch_array($query)) {
$body1 = $row["text1"];
$body2 = $row["text2"];
}
mysqli_free_result($query);
?>
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
</head>
<body>
<div class="container">
<div class="home-page main">
<section class="grid-wrap" >
<header class="grid col-full">
<hr>
<form id="form" name="form" method="post" action="page_edit_parse.php">
<div class="grid col-two-thirds mq2-col-full">
<label>Titel:</label>
<textarea name="body1" id="body1" cols="3" rows="2"><?php echo $body1 ?></textarea>
<label>Meddelande</label>
<p><textarea name="body2" id="body2" cols="6" rows="10"><?php echo $body2 ?></textarea></p><br>
</div>
<input type="submit" name="button" id="button" value="Update!" />
</form>
</section>
</body>
</html>
А вот page_edit_parse.php
<?php
// You may want to obtain refering site name that this post came from for security purposes here
// exit the script if it is not from your site and script
$body1 = $_POST["text1"];
$body2 = $_POST["text2"];
include_once "../scripts/connect_to_mysql.php";
// Add the updated info into the database table
$query = mysqli_query($myConnection, "UPDATE page_hem SET text1='$body1', text2='$body2', lastmodified='now()' WHERE id='$pid'") or die (mysqli_error($myConnection));
echo 'Updated, yeah! <br /><br /><a href="kpanel.php">Go back!</a>';
exit();
?>
P.S. - Возможно, в html могут возникнуть некоторые незначительные ошибки из-за того, что я отредактировал его, чтобы оно было короче.
Заранее спасибо!
Я не вижу, где вы определяете '$ pid' –
также то, что ошибки вы получаете и почему вы не избежать ввода в базу данных? это может также вызвать проблему. я бы рекомендовал PDO с подготовленными операторами вместо mysqli –
1. 'if (! $ _ GET ['pid']) {' use isset. 2. 'ereg_replace' устарел. Я не уверен, почему вы не получаете уведомление. включить отчет об ошибках может быть? 3. в 'page_edit_parse.php', вы не определили' pid' – itachi