Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Нет записей в базу данных!

9.8K
19 июня 2006 года
Tigris
41 / / 14.06.2006
Почему-бы это?

---------------------------
Есть скрипт конфигурации:
<?

/* Print "&#207;&#238;&#228;&#234;&#235;&#254;&#247;&#224;&#229;&#236;&#241;&#255; &#234; &#225;&#224;&#231;&#229; &#228;&#224;&#237;&#237;&#251;&#245; &#241;&#229;&#240;&#226;&#229;&#240;&#224;"; */

$db_host = "localhost";
$db_user = "root";
$db_pasw = "";
$db_name = "regbase";

$connect = mysql_connect($db_host, $db_user, $db_pasw);
mysql_select_db($db_name);

if(!$connect) {
echo("&#209;&#229;&#240;&#226;&#229;&#240; &#193;&#196; &#237;&#229; &#228;&#238;&#241;&#242;&#243;&#239;&#229;&#237;");
exit();
}
else {
if(!mysql_select_db($db_name, $connect)) {
echo("&#194;&#251;&#225;&#240;&#224;&#237;&#237;&#224;&#255; &#225;&#224;&#231;&#224; &#228;&#224;&#237;&#237;&#251;&#245; &#237;&#229; &#228;&#238;&#241;&#242;&#243;&#239;&#237;&#224;");
exit();
}
}

?>

-------------------
Есть вввод записи:
<?

include("config.php");

if(mysql_query("insert into main values('$name','$pasw');")) {
echo("&#199;&#224;&#239;&#232;&#241;&#252; &#228;&#238;&#225;&#224;&#226;&#235;&#229;&#237;&#224; - &#206;&#202;");
}
else {
echo("&#206;&#248;&#232;&#225;&#234;&#224; &#239;&#240;&#232; &#228;&#238;&#225;&#224;&#226;&#235;&#229;&#237;&#232;&#232; &#231;&#224;&#239;&#232;&#241;&#232;");
}
print "<br><a href='../create/'><br> &#208;&#229;&#227;&#232;&#241;&#242;&#240;&#224;&#246;&#232;&#255; &#239;&#238;&#235;&#252;&#231;&#238;&#226;&#224;&#242;&#229;&#235;&#229;&#233; </a>";
print "<br><a href='list.php'> &#199;&#224;&#240;&#229;&#227;&#229;&#241;&#242;&#240;&#232;&#240;&#238;&#226;&#224;&#237;&#237;&#251;&#229; &#239;&#238;&#235;&#252;&#231;&#238;&#226;&#224;&#242;&#229;&#235;&#232; </a>";
mysql_close($connect);

?>

-----------
Есть вывод:
<?
print "<br><a href='../create/'> &#208;&#229;&#227;&#232;&#241;&#242;&#240;&#224;&#246;&#232;&#255; &#239;&#238;&#235;&#252;&#231;&#238;&#226;&#224;&#242;&#229;&#235;&#229;&#233; </a>";
print "<br><a href='list.php'> &#209;&#239;&#232;&#241;&#238;&#234; &#239;&#238;&#235;&#252;&#231;&#238;&#226;&#224;&#242;&#229;&#235;&#229;&#233;: </a><br><br>";

include("config.php");
if ($res_query = mysql_query("select * from main;")) {
while ($res_array = mysql_fetch_array($res_query)) {
echo("&#200;&#236;&#255;: ".$res_array["name"]."<br>");
echo("&#207;&#224;&#240;: ".$res_array["pasw"]."<br><br>");
}

}
else {
echo("&#206;&#248;&#232;&#225;&#234;&#224; &#239;&#240;&#232; &#226;&#251;&#225;&#238;&#240;&#234;&#229; &#228;&#224;&#237;&#237;&#251;&#245;, &#243;&#241;&#235;&#238;&#226;&#232;&#229; - &#205;&#229;&#242;");
}


?>

Внизу рисунки phpmyadmin:
18K
19 июня 2006 года
Shtogrin
14 / / 19.06.2006
mysql_query : Строка запроса НЕ должна заканчиваться точкой с запятой

Попробуй сначала mysql_error, после запросов.
8
19 июня 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=Tigris]Почему-бы это?

if(mysql_query("insert into main values('$name','$pasw');")) {
echo("&#199;&#224;&#239;&#232;&#241;&#252; &#228;&#238;&#225;&#224;&#226;&#235;&#229;&#237;&#224; - &#206;&#202;");
}
[/QUOTE]

Поинтересуйся, на всякий случай, синтаксисом INSERT'а:

INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES (expression,...),(...),...
or INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
or INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name
SET col_name=expression, col_name=expression, ...
15
19 июня 2006 года
shaelf
2.7K / / 04.05.2005
1. Код нужно оформлять
2. Ты сам это читал? У меня способностей по автосмене кодировок нету...
3. При записи в БД указывай поля в которые ты заносишь.
8
19 июня 2006 года
mfender
3.5K / / 15.06.2005
А ещё предлагаю написать:
 
Код:
Есть вввод записи:
<?
error_reporting(E_ALL);

include("config.php");

if(mysql_query("insert into main values('$name','$pasw');")) {
echo("Запись добавлена - ОК");
}

и попытаться определиться с $name и $pasw, т.к. из приведённого кода совсем не очевидно, что они есть...
9.8K
19 июня 2006 года
Tigris
41 / / 14.06.2006
Ну вот писал, писал, а форум выдал что нет темы и не вывел моё произведение, вообщем - еррор_репорт добавил и получил вывод ошибки:

Notice: Undefined variable: name in c:\home\web\create\add.php on line 7
Notice: Undefined variable: pasw in c:\home\web\create\add.php on line 7

точку-с-запятой убрал и как при записи указать поле в которое заносишь.
Странно, но ранее код в таком виде работал и свою миссию выполнял.
8
19 июня 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=Tigris]Ну вот писал, писал, а форум выдал что нет темы и не вывел моё произведение, вообщем - еррор_репорт добавил и получил вывод ошибки:

Notice: Undefined variable: name in c:\home\web\create\add.php on line 7
Notice: Undefined variable: pasw in c:\home\web\create\add.php on line 7

точку-с-запятой убрал и как при записи указать поле в которое заносишь.
Странно, но ранее код в таком виде работал и свою миссию выполнял.[/QUOTE]
Вот и я о том же: $name и $pasw вполне может и не быть. Откуда они вообще беруться? Судя по всему - это приходит из браузера. Т.е. - пресловутый register_globals: они называются $_GET['name'] и $_GET['pasw'], либо $POST['name'] и $_POST['pasw']. Отсюда и ошибка.

Но, имена полей в SQL-запросе, всё же, указывать надо...
9.8K
19 июня 2006 года
Tigris
41 / / 14.06.2006
[QUOTE=mfender]Вот и я о том же: $name и $pasw вполне может и не быть. Откуда они вообще беруться? Судя по всему - это приходит из браузера. Т.е. - пресловутый register_globals: они называются $_GET['name'] и $_GET['pasw'], либо $POST['name'] и $_POST['pasw']. Отсюда и ошибка.

Но, имена полей в SQL-запросе, всё же, указывать надо...[/QUOTE]
Как?
В актионе формы указан php файл, в который значения передаются из
name формы, что не так?

Например есть форма:

<FORM ACTION="email.php" METHOD="POST"><BR>
Ваше имя:
<INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30"><BR>
Ваш емал:
<INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30"><BR>
Ваш выбор:
<SELECT NAME="preference">
<OPTION value = "1 место">
<OPTION value = "2 место">
<OPTION value = "3 место">
</SELECT>
<P>
<INPUT TYPE="submit" VALUE="Отправить в статистику!">
</FORM>

и сам email.php:

<body>
<html>
<?
/* Вывод данных пользователя из формы index.html */

PRINT "<CENTER>";
PRINT "Привет <b> $name </b>";
PRINT "<BR><BR>";
PRINT "Ваш выбор принят, вы голосовали за <b>$preference</b>";
PRINT "<br>Статистика выслана Вам на E-Mail: <b>$email</b>.<br>";
PRINT "</CENTER>";
include('send_Mail.php');

?>
</body>
</html>

Разве это не будет работать, если сюда включить необходимые вызовы соединения и добавления данных в базу MYSQL указав значения полей, например, name и emal, как значения name=$name name=$email из формы
- этим любая статья знакомства с PHP и козерует, что напрямую можно передавать значения формы и обрабатывать в .php файле.
8
19 июня 2006 года
mfender
3.5K / / 15.06.2005
Цитата:
Разве это не будет работать, если сюда включить необходимые вызовы соединения и добавления данных в базу MYSQL указав значения полей, например, name и emal, как значения name=$name name=$email из формы
- этим любая статья знакомства с PHP и козерует, что напрямую можно передавать значения формы и обрабатывать в .php файле.


Вот ты внимательно читаешь ответы на свои вопросы? Я же написал про register_globals. Посмотри, в каком состоянии он у тебя написан в php.ini. Отсюда и пляши. Тут же телепатов нет, чтобы прямо-таки знать содержимое твоего php.ini....

8
19 июня 2006 года
mfender
3.5K / / 15.06.2005
Просто в приведённо тобою последнем примере и вопросе "В актионе формы указан php файл, в который значения передаются из
name формы, что не так?" уже слишком явно видно, что про register_globals ты имеешь довольно смутное представление... И, видимо, он находится-таки в положении OFF. Потому и не работают твои $name и $pasw. Просто укажи вместо них конкретные переменные хэшей $_GET или $_POST (взависимости от того, что у тебя передаёт форма) - и счасть не замедлит прийти.
9.8K
19 июня 2006 года
Tigris
41 / / 14.06.2006
[QUOTE=mfender]Вот ты внимательно читаешь ответы на свои вопросы? Я же написал про register_globals. Посмотри, в каком состоянии он у тебя написан в php.ini. Отсюда и пляши. Тут же телепатов нет, чтобы прямо-таки знать содержимое твоего php.ini....[/QUOTE]

если надо щас выложу, делов-то, а про эти рег_глобалс читал, они по умолчанию отключены, дабы не могли хакеры воспользоваться у незнающих програмистов, поэтому после установки ничего из этого не менял, так и есть отключены:

; You should do your best to write your scripts so that they do not require
; register_globals to be on; Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
register_globals = Off
8
19 июня 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=Tigris]если надо щас выложу, делов-то, а про эти рег_глобалс читал, они по умолчанию отключены, дабы не могли хакеры воспользоваться у незнающих програмистов, поэтому после установки ничего из этого не менял, так и есть отключены:

; You should do your best to write your scripts so that they do not require
; register_globals to be on; Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
register_globals = Off[/QUOTE]
Ну, насчёт хакеров - это ты погорячился. А вот то, что отключены - это причина того, что в БД ничего не попадает, т.к. переменных $name и $pasw действительно не существует.
332
19 июня 2006 года
Valiant
416 / / 27.09.2004
а ещё лучше - возьми толковый учебник по пыху и мускулю ...
покури их часика по 4 в день и все вопросы такого плана отваляться сами собой
9.8K
19 июня 2006 года
Tigris
41 / / 14.06.2006
[QUOTE=mfender]Просто в приведённо тобою последнем примере и вопросе "В актионе формы указан php файл, в который значения передаются из
name формы, что не так?" уже слишком явно видно, что про register_globals ты имеешь довольно смутное представление... И, видимо, он находится-таки в положении OFF. Потому и не работают твои $name и $pasw. Просто укажи вместо них конкретные переменные хэшей $_GET или $_POST (взависимости от того, что у тебя передаёт форма) - и счасть не замедлит прийти.[/QUOTE]

Ну ты кудесник, угадал, но как пишут нельзя это делать ибо этим могут воспользоваться мальчиши-плахиши и поэтому по умолчанию при установке они выключены, и ещё раз повторю у меня этот скрипт работает на локальной машине и здесь ранее работал.

А так как ты просишь уже делал, а именно $_POST[name] $_POST[pasw]
сейчас у меня код выглядит так:
<?
error_reporting(E_ALL);

include("config.php");

$name = $_POST['name'];
$pasw = $_POST['pasw'];

$query = "insert into main values('$name','$pasw')";
$result = mysql_query($query);

if($result) { echo("Запись добавлена") }
else { echo("Ошибка при добавлении записи") }
mysql_close($connect);
?>
9.8K
19 июня 2006 года
Tigris
41 / / 14.06.2006
[QUOTE=mfender]Ну, насчёт хакеров - это ты погорячился. А вот то, что отключены - это причина того, что в БД ничего не попадает, т.к. переменных $name и $pasw действительно не существует.[/QUOTE]

Это не я этов книшках так пишут, объясняя почему они по умолчанию отключены. как их не существует если они передаются из формы. Совсем запутали....
9.8K
19 июня 2006 года
Tigris
41 / / 14.06.2006
[QUOTE=Valiant]а ещё лучше - возьми толковый учебник по пыху и мускулю ...
покури их часика по 4 в день и все вопросы такого плана отваляться сами собой[/QUOTE]

Вот в этих книшках и вычитаны все эти примеры для ознакомления.
Я их только стараюсь применить к своеё задачи....
8
19 июня 2006 года
mfender
3.5K / / 15.06.2005
Цитата:
но как пишут нельзя это делать ибо этим могут воспользоваться мальчиши-плахиши и поэтому по умолчанию при установке они выключены


Опять ты не внимательно книжку прочитал: не рекомендуется, как раз, использовать глобальные переменные - $name и $pasw в твоём случае - но использовать переменные из глобальных массивов $_GET, $_POST, $_COOKIE, $_FILES etc.

Вот представь себе, что у тебя включен register_globals и из формы приходит методом POST значение поля $name, а в action формы написан адрес script.php?name=vasya. Да ещё и в куках тоже какой-нибудь $name обнаружиться. Как PHP должен угадать, кого из них использовать в SQL-запросе INSERT INTO table SET fldName='$name'? Догадываюсь, что "кто последний - того и тапки". Т.е. те данные, которые придут методом POST. А как же с остальными? А так вот - они все в своих массивах.

9.8K
19 июня 2006 года
Tigris
41 / / 14.06.2006
[QUOTE=mfender]Опять ты не внимательно книжку прочитал: не рекомендуется, как раз, использовать глобальные переменные - $name и $pasw в твоём случае - но использовать переменные из глобальных массивов $_GET, $_POST, $_COOKIE, $_FILES etc.

Вот представь себе, что у тебя включен register_globals и из формы приходит методом POST значение поля $name, а в action формы написан адрес script.php?name=vasya. Да ещё и в куках тоже какой-нибудь $name обнаружиться. Как PHP должен угадать, кого из них использовать в SQL-запросе INSERT INTO table SET fldName='$name'? Догадываюсь, что "кто последний - того и тапки". Т.е. те данные, которые придут методом POST. А как же с остальными? А так вот - они все в своих массивах.[/QUOTE]

Как правильно для моего примера будет,
сейчас у меня так и всё ранво не работает:

$name = $_POST['$name'];
$pasw = $_POST['$pasw'];

$query = "insert into main values('$name','$pasw')";
$result = mysql_query($query);

if($result) {
echo("Запись добавлена");
}

и выдаёт ошибки только уже на другие строки:

Notice: Undefined index: $name in c:\home\web\create\add.php on line 7
Notice: Undefined index: $pasw in c:\home\web\create\add.php on line 8
8
19 июня 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=Tigris]Notice: Undefined index: $name in c:\home\web\create\add.php on line 7
Notice: Undefined index: $pasw in c:\home\web\create\add.php on line 8[/QUOTE]
Я даже уже заинтересовался: ты сколько лет на Земле-Матушке живёшь?
Есть в PHP такая замечательная функция - print_r()
Специально для тебя, в прямом эфире, передаю душераздирающую функцию prer():
 
Код:
function prer($arr){
    echo "<pre>";
    print_r($arr);
    echo "</pre>";
}

Чертовски полезная штука! По аналогии можешь сделать для var_dump().

Объясняю:
1. Сделай на входе просто echo "insert into main values('$name','$pasw')";
2. Посмотри внимательно в результат этого echo.
3. Не валяй дурака и пиши лаконично и читабельно:
 
Код:
$query = "INSERT INTO main SET name = '{$_POST['name']}', pasw = '{$_POST['pasw']}'";
if (mysql_query($query)) {echo("Запись добавлена")};

4. Задумайся в пятнадцатый раз, отчего ты не можешь получить получить значения из браузера. Удостоверься, что ты их действительно не получаешь с помощью вышеуказанной prer($_REQUEST).

ЗЫ. Если мне что-то не изменяет, name - зарезервированное слово MySQL.
332
19 июня 2006 года
Valiant
416 / / 27.09.2004
Вы хотите обойти процесс обучения и сразу применить
примеры из книг к своим проектам ...
может всё таки попробовать разобраться как они работают
потом нормально настроить сервер
и уже тогда перейти к созданию своих программ ???
9.8K
20 июня 2006 года
Tigris
41 / / 14.06.2006
Что вы мне предлагаете - бросить все дела и бежать в институт для обучения, если в книгах приводят пример явно неправильный зачем книги читать, но и по другому не полчится.
Можете быть спокойны - глобальные в пиэйчпи.ини включил (On),
а о том, что пеперменные которые задаёт пользователь php считает глобальными в голову не прийдёт....
332
20 июня 2006 года
Valiant
416 / / 27.09.2004
блин ... да нормально настрой сервер,
протестируй его, а уже потом задавай вопросы
9.8K
20 июня 2006 года
Tigris
41 / / 14.06.2006
Чем и занимаюсь, вся история в постах, а настройку и хочу проверить нормальной работой скрипта. Не кипи, это же не утебя ... :))
332
20 июня 2006 года
Valiant
416 / / 27.09.2004
для тестирования тебе подойдёт простейший скрипт
 
Код:
<?php
echo "Работает";
mysql_connect(host,user,password) or die ("Cant connect".mysql_error());
?>

проверь таким образом
9.8K
20 июня 2006 года
Tigris
41 / / 14.06.2006
Все эти и другие простыи тесты прошёл и скажу больше, что для теста пойдёт любой скрипт и даже самый простой <? phpinfo() ?>, но дальше надо работать ....
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог