Всем добрый день! У меня проблема следующего характера: На локальном компьютере установлены appache 2.2.17, mysql 5.1.53 и php 5.3.3. Мною созданы 2 файла books.html и insert_book.php Из формы в books.html данные обрабатываются скриптом insert_book.php и вносятся в базу данных "base", таблицу "books", поле "author" Коды: books.html Код (Text): <html> <head> <title>HTML-форма</title> </head> <body> <form ACTION="insert_book.php" method="post"> Автор<br> <input name="author" TYPE="text" maxlength=30 size=30> <br> <input type="submit" name="submit" value="Ввод"> </form> </body> </html> insert_book.php Код (Text): <?php $link = mysql_connect("localhost", "root", "12345") or die("Could not connect: " . mysql_error()); print ("Connected successfully "); mysql_select_db("base") or die(mysql_error()); print ("Database selected"); $query = "INSERT INTO books (author) VALUES('$author')"; mysql_query($query) or die(mysql_error()); print ("Информация о вас занесена в базу данных."); mysql_close($link); ?> После этого скрипт выполняется успешно, но вместо введённой в поле информации в базу данных записывается пустая строка, что видно из этого рисунка: При этом если поменять значение в строке на Код (Text): $query = "INSERT INTO books (author) VALUES('author')"; тогда все ок. и в базу данных записывается текстовое значение "author" Короче, не могу разобраться, в чём дело. Перепробовал кучу вариантов. Только начинаю изучать php и mysql, поэтому без вашей помощи мне не разобраться. Заранее спасибо!
Видимо у тебя в php.ini: register_globals = Off Поэтому нужно явно указывать что $author - это POST переменная добавь перед самим запросом PHP: $author=mysql_real_escape_string($_POST['author']); $query = "INSERT INTO books (author) VALUES('$author')";