[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не получается сделать проверку.
Страницы: 1, 2, 3
Kusss
// Если таблица не существуе то ошибка
$sql=mysql_query($sql) or die("Ошибка данных!");

Комментарий не верен. Тут проверка выполнился ли запрос без ошибок.
и "$sql = " тут лишнее.

Уверен, что этот код в нужном месте стартует? Да и не только этот
// Стартуем сессию
session_start();

Цитата
Примечание: если вы используете сессии на базе кук, вы обязаны вызвать session_start() перед каким-либо выводом в браузер.



И тут магическим образом появилась $page_title и $save (0_о)!
//Получаем данные
$sql = "select * FROM `mytable` where `id` = '".$page_title."'";

Почти все знают что это и откуда. Но НЕ все серверы настроены одинаково. Пишите чтобы работало ВЕЗДЕ.
И ещё обрабатывайте данные, которые передаете базе данных.
http://php.net/manual/ru/function.mysql-re...cape-string.php
Astin
Цитата

Комментарий не верен. Тут проверка выполнился ли запрос без ошибок.
и "$sql = " тут лишнее.


Исправил на
$query = "select * FROM `mytable` where `id` = '".$page_title."'";
$sql = mysql_query($query) or die("Ошибка данных!");

и для UPDATE тоже исправил

Цитата

Уверен, что этот код в нужном месте стартует? Да и не только этот
// Стартуем сессию
session_start();


А где тогда прописать? В самом начале?
Вот так прописать?

<?php
// Стартуем сессию
session_start();
?>
<!DOCTYPE HTML>
<html lang="ru">
<head



И какой еще код стартует не в том месте?


Цитата

И тут магическим образом появилась $page_title и $save (0_о)!
//Получаем данные
$sql = "select * FROM `mytable` where `id` = '".$page_title."'";


А что тогда нужно задать для $page_title?
Когда нажимаешь редактировать выходит вот такая ссылка из сессии /obr.php?page_title=3
Где 3 это id

А $save это кнопка submit в которой name="save".

Я понимаю что $save здесь в общем то не причем, но тогда что нужно присвоить
для $page_title?






Astin
Kusss про
Цитата

И ещё обрабатывайте данные, которые передаете базе данных.
http://php.net/manual/ru/function.mysql-re...cape-string.php


Прописал вот так
[code]
//Выбираем таблицу для редактирования
$query = "UPDATE `mytable`

SET

`name` = '".mysql_real_escape_string($name_edit)."',
`country` = '".mysql_real_escape_string($coun_edit)."'

WHERE
`id` = '".$_SESSION['id']."'";

// Если не правильный запрос то ошибка
$sql = mysql_query($query) or die("Ошибка данных!");

echo "<b>УСПЕХ!</b>"; //Если записи закончились
}

Правильно или нет?
Kusss
Я не разбираюсь в настройках сервера, знаю только что есть такая штука как register_globals
Цитата

Примечание: С появлением PHP 5.4 директива register_globals была удалена и больше не может быть использована. Это касается тех, кому нужно обновить старое приложение.

Включенный параметр конфигурации register_globals делает несколько типов переменных (в том числе из $_POST, $_GET и $_REQUEST) глобальными, доступными в глобальной области видимости вашего приложение. Это может легко привести к проблемам с безопасностью, поскольку ваше приложение не сможет эффективно определить откуда пришли данные.

Например : $_GET['foo'] будет доступна через $foo, которая может заместить переменную, которая не была объявлена. Если вы используете PHP < 5.4.0 убедитесь что register_globals off (выключена).


Чтобы не было проблем, советую выключить register_globals в файле .htaccess, прописать там строку
php_flag register_globals off
$page_title = $_GET['page_title'];
$save = $_POST['save'];

add
Обрабатывать результаты форм лучше ДО html кода. И после этого "перезагружать" страницу, обнуляя данные формы.
Astin
Цитата

Чтобы не было проблем, советую выключить register_globals в файле .htaccess, прописать там строку

php_flag register_globals off


Большое спасибо Kusss

А про
$page_title = $_GET['page_title'];
$save = $_POST['save'];


Сейчас попробую. Хотел присвоить это переменным сейчас, но делал не правильно.
Astin
Kusss я прописал вот так

<?php
// Стартуем сессию
session_start();
// Подключаемся к базе
require_once ('db.php');

$page_title = $_GET['page'];
$save = $_POST['save'];

//Получаем данные
$query = "select * FROM `mytable` where `id` = '".$page_title."'";
// Если таблица не существуе то ошибка
$sql = mysql_query($query) or die("Ошибка данных!");

while($result = mysql_fetch_assoc($sql))
{
$nam=$result['name'];
$content=$result['country'];

}

//При нажатии на кнопку получаем сообщени об Успехе
if($save){

//Выбираем таблицу для редактирования
$query = "UPDATE `mytable`

SET

`name` = '"
.mysql_real_escape_string($name_edit)."',
`country` = '"
.mysql_real_escape_string($coun_edit)."'

WHERE
`id` = '"
.$_SESSION['id']."'";

// Если таблица не существуе то ошибка
$sql = mysql_query($query) or die("Ошибка данных!");

echo "<b>УСПЕХ!</b>"; //Если записи закончились
}

mysql_close($link);
?>


Правильно ли я прописал?

И еще попытался поменять

$page_title = $_GET['page_title'];


на

$page_title = $_GET['page'];


А в строке браузера все равно obr.php?page_title=3

Почему не меняется в строке браузера, если $page_title присвоена page?

Или я просто не там прописал этот код?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.