PHP не удалит из MySQL - PullRequest
       4

PHP не удалит из MySQL

0 голосов
/ 22 декабря 2010

Код PHP не удалит элемент из базы данных, используя "$ noteid". Если я помещу число в это место, оно будет, но когда я попытаюсь использовать "$ noteid". Это не будет делать это. Он все исправляет до того момента, когда пытается удалить.

Вот как я получаю "$ noteid":

//javascript
function viewnote(noteid) {

  window.location = "noteview.php?noteid="  + noteid;

}

//button in body
<input type="button" value="Edit" onclick="editnote('<?= $noteid ?>')" />

Вот код на ссылке на страницу:

<?php

$noteid = $_REQUEST['noteid'];

if (isset($_POST['delete'])){
 mysql_query("DELETE FROM notes WHERE noteid='$noteid'");
 header ('Location: index2.php');
}
?>

<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" style="margin:0px; pading:0px"><input type="submit" name="delete" value="Delete"></form>
</body>

** Это работает сейчас !!! ** То, что заставило это работать, было скрытым полем формы.

Вот код:

<?php
if (isset($_POST['delete'])){
        $nid = $_REQUEST['notenum'];
    mysql_query("DELETE FROM notes WHERE noteid='$nid'");
    header ('Location: index2.php');
}
?>

//body cody
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" style="margin:0px; pading:0px"><input type="text" name="notenum" value="<?php echo $noteid; ?>" style="display:none" /><input type="submit" name="delete" value="Delete"></form>

Спасибо всем за помощь !!! Этот сайт сейчас мой любимый.

Ответы [ 3 ]

5 голосов
/ 22 декабря 2010

Вы используете много плохих практик:

<?= $noteid ?>

Это поддерживается не во всех версиях PHP, используйте следующее:

<?php echo $noteid; ?>

Во-вторых,

mysql_query("DELETE FROM notes WHERE noteid='$noteid'");

ОСТАНОВИТЕСЬ ПРАВИЛЬНО. Пойдите, узнайте о внедрении SQL перед кодированием. Я не шучу.Правильный код:

mysql_query('DELETE FROM notes WHERE noteid="'.mysql_real_escape_string($noteid).'"');

Также убедитесь, что переменная PHP $noteid существует до onclick="editnote(...)" />.

1 голос
/ 22 декабря 2010

Пожалуйста, рассмотрите возможность использования Привязки и подготовленные операторы . Почти все проблемы из «x из PHP не работает правильно в SQL» можно решить с помощью подготовленных операторов.

1 голос
/ 22 декабря 2010

Ваша проблема в том, что $_REQUEST['noteid'] не будет установлен после публикации формы.В этом случае вы можете добавить скрытое поле формы для хранения значения из строки запроса.Вам также нужно взглянуть на санацию вашей переменной с помощью mysql_real_escape_string и использования $_GET или $_POST вместо $_REQUEST

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...