Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2008, 11:29   #1
solution
 
Регистрация: 16.07.2008
Сообщений: 6
Печаль php внесение в базу данных mysql

Списал с книжки код, который добавляет данные в базу

Код HTML:
<html>
<body>
<?php
if ($submit) 
{
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$sql = "INSERT INTO employees (first,last,address,position) VALUES ('$first','$last','$address','$position')";
$result = mysql_query($sql);
echo "Thank you! Information entered.\n";
} 
else
{
?>
<form method="post" action="<?php echo $PHP_SELF?>">
First name:<input type="Text" name="first"><br>
Last name:<input type="Text" name="last"><br>
Address:<input type="Text" name="address"><br>
Position:<input type="Text" name="position"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
}
?>
</body>
</html>
Форма работает, но данные не вносятся. Возможно из-за того, что книга для старой версии. У меня сейчас php 5.2.4 и mysql 5.0.45.
Подскажите пожалуйста в чем причина.

Последний раз редактировалось SkyM@n; 16.07.2008 в 13:50.
solution вне форума Ответить с цитированием
Старый 16.07.2008, 11:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А ты сам запрос в PhpMyAdmin проверял? Может он некорректен.
Вот так вот еще попробуй:
Код:
$sql = "INSERT INTO `employees` (`first`,`last`,`address`,`position`) VALUES ('$first','$last','$address','$position');";
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.07.2008, 12:01   #3
solution
 
Регистрация: 16.07.2008
Сообщений: 6
По умолчанию

Такой вариант тоже не работает

Запрос верен, я через phpmyadmin проверял.
solution вне форума Ответить с цитированием
Старый 16.07.2008, 12:05   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от solution Посмотреть сообщение
Подскажите пожалуйста в чем причина.
И снова register_globals .... Ищите по форуму, уже обсуждалось и не раз.
B_N вне форума Ответить с цитированием
Старый 16.07.2008, 13:49   #5
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Руки отбивать надо ВСЕМ тем пейсателям книжек этих(((((((
Тут кроме наглого и ленивого использования глобальных массивов - инъекции немеряно. О мелочах, таких как хороший стиль программирования - вообще молчим.
Вот, более-менее нормальный вариант, без дыр, описанных выше:
Код HTML:
<html>
<body>
<?php
function sanitize_input(&$request) {
    $request = mysql_real_escape_string(strip_tags($request));
}

if ($_POST["submit"]) {
array_walk_recursive($_POST, 'sanitize_input');

$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$sql = "INSERT INTO employees (first,last,address,position) VALUES ('".$_POST["first"]."','".$_POST["last"]."','".$_POST["address"]."','"._POST["$position"]."')";
$result = mysql_query($sql);
echo "Thank you! Information entered.\n";
} else {
?>
<form method="post" action="<?php echo $PHP_SELF?>">
First name:<input type="Text" name="first"><br>
Last name:<input type="Text" name="last"><br>
Address:<input type="Text" name="address"><br>
Position:<input type="Text" name="position"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
}
?>
</body>
</html>
PS. Я надеюсь, у вас пароль на рута таки стоит в реальности?
SkyM@n вне форума Ответить с цитированием
Старый 16.07.2008, 15:26   #6
solution
 
Регистрация: 16.07.2008
Сообщений: 6
По умолчанию

Спасибо. Теперь добавляются записи, но пустые. При выполнении скрипта ругается:

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Z:\home\localhost\www\tab.php on line 5

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in Z:\home\localhost\www\tab.php on line 5

на строчку $request = mysql_real_escape_string(strip_tags ($request));
И так 5 раз.

Что это значит, не знаю. С пхп 3 день работаю
solution вне форума Ответить с цитированием
Старый 16.07.2008, 16:24   #7
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Ключевая фраза тут:
Цитата:
Сообщение от solution Посмотреть сообщение
Access denied for user 'ODBC'@'localhost' (using password: NO)
Думаю - переведете.
PS. Советую вам читать все PS
SkyM@n вне форума Ответить с цитированием
Старый 16.07.2008, 16:44   #8
solution
 
Регистрация: 16.07.2008
Сообщений: 6
По умолчанию

Да он запароленный
solution вне форума Ответить с цитированием
Старый 16.07.2008, 17:28   #9
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от solution Посмотреть сообщение
Да он запароленный
Это вас огорчает?
SkyM@n вне форума Ответить с цитированием
Старый 16.07.2008, 20:03   #10
solution
 
Регистрация: 16.07.2008
Сообщений: 6
По умолчанию

Нет, я про рут
solution вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно сцепить базу написанную на MySQL с Делфи 7 Solovei_MC БД в Delphi 0 13.06.2008 20:15
Создать базу данных Master of Puppets Microsoft Office Excel 5 10.06.2008 13:34
Как создать базу данных? LeonKing Помощь студентам 4 07.05.2008 14:11
как выгрузить базу данных из MySQL в Access??? TRANE Помощь студентам 5 03.12.2007 13:22
Открыть базу данных MogilShik Помощь студентам 3 11.10.2007 17:11