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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2010, 22:22   #1
%$PROregRAMi$t%
Заблокирован
 
Регистрация: 28.05.2010
Сообщений: 65
По умолчанию Прямой постинг в MySQL

Вот код:
PHP код:
<?
$login
='
<form action="" metod="post" name="log"><br>
Логин: <input type="text" name="login"><br>
Пасс: <input type="password" name="pass"><br>
<input type="submit" value="Войти"><br>
</form>'
;

$register='
<form action="" metod="post" name="reg"><br>
Логин: <input type="text" name="login"><br>
Пасс: <input type="password" name="pass"><br>
Мыло: <input type="email" name="email"><br>
Реф (если есть): <input type="text" disabled="disabled" name="ref" value="'
.$_GET['ref'].'"><br>
<input type="submit" value="Зарегистрироваться">
</form>'
;

echo 
$register;

@
mysql_connect('test1.ru','root','') or die ('Не могу подключиться к серверу!!!');
@
Mysql_select ('project_partnerka') or die ('Не могу выбрать эту базу данных!!!');

$query='INSERT INTO `users` VALUES ("'', '.$_POST['login'].', '.$_POST['email'].', '.$_POST['pass'].', '.$_POST['ref'].'")'//ТУТ ОШИБКА
$result=mysql_query($query);
echo 
"Благодарю за регистрацию";
mysql_close();

"?>
в строке присвоения переменной $query значения SQL-запроса - выбивается ошибка.
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in Z:\home\test1.ru\www\aa\proba.php on line 23

Что здесь не верно?

Последний раз редактировалось %$PROregRAMi$t%; 24.07.2010 в 22:28.
%$PROregRAMi$t% вне форума Ответить с цитированием
Старый 24.07.2010, 22:49   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

это товарищ кавычки..... об это прямо пишется в ошибке....
смотрите чтобы все двойные и одинарные кавычки были парными
ADSoft вне форума Ответить с цитированием
Старый 24.07.2010, 23:04   #3
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,603
По умолчанию

Подождите, а после имени таблицы в запросе в скобках имена столбцов куда вставляться будут данные, перечислять кто будет?
И кавычки тоже проверьте
Gorychev вне форума Ответить с цитированием
Старый 24.07.2010, 23:44   #4
%$PROregRAMi$t%
Заблокирован
 
Регистрация: 28.05.2010
Сообщений: 65
По умолчанию

Вообще-то по идее этот SQL-запрос должен добавить одну строку с переменными в таблицу. Столбцы перечисляются по порядку в самом тексте запроса. Первое значение - это ключевое поле, поэтому я его оставил пустым для того, чтобы оно автоматически заполнилось уникальным числом.

ЗЫ: лишних кавычек тут нет. Все кавычки парные.
%$PROregRAMi$t% вне форума Ответить с цитированием
Старый 24.07.2010, 23:48   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

не нужно пустое поле вставлять.....
а ошибка все же говорит о неправильно построенной строке (кавычки итд)
ADSoft вне форума Ответить с цитированием
Старый 24.07.2010, 23:58   #6
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

в данном случае он ругается на кавычку в этом месте скорей всего:
Код:
"?>
если это полный оригинал кода, то 23 строка именно сюда указывает
Все генитальное просто.

Последний раз редактировалось kirosin; 25.07.2010 в 00:00.
kirosin вне форума Ответить с цитированием
Старый 25.07.2010, 03:27   #7
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

$query='INSERT INTO `users` VALUES ("'', '.$_POST['login'].', '.$_POST['email'].', '.$_POST['pass'].', '.$_POST['ref'].'")';

Ошибку выделил. Что с ней делать, надеюсь разберётесь.

Обновление:
Посмотрел ещё раз на строку и решил помочь более активно:

$query='INSERT INTO `users` VALUES ("", "'.$_POST['login'].'", "'.$_POST['email'].'", "'.$_POST['pass'].'", "'.$_POST['ref'].'")';
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 25.07.2010 в 03:32. Причина: испугался злого модерастора
Johnatan вне форума Ответить с цитированием
Старый 08.09.2010, 07:43   #8
%$PROregRAMi$t%
Заблокирован
 
Регистрация: 28.05.2010
Сообщений: 65
По умолчанию

СПАСИБО ВСЕМ!!!

В первом коде нашел у себя кучу ошибок. Немного подправил, но все-же постинг в базу не осуществляется...

Вот код:

PHP код:
<?
$login
='
<form action="" metod="post" name="log"><br>
Логин: <input type="text" name="login"><br>
Пасс: <input type="password" name="pass"><br>
<input type="submit" value="Войти"><br>
</form>'
;

$register='
<form action="" metod="post" name="reg"><br>
Логин: <input type="text" name="login"><br>
Пасс: <input type="password" name="pass"><br>
Мыло: <input type="email" name="email"><br>
Реф (если есть): <input type="text" readonly name="ref" value="'
.$_GET['ref'].'"><br>
<input type="submit" value="Зарегистрироваться">
</form>'
;

echo 
'<a href="?ref=kakoj_to_ref">рефка</a>';
echo 
$register;

$db=mysql_connect('test1.ru','root','') or die ('Не могу подключиться к серверу!!!');
mysql_select_db('project_partnerka') or die ('Не могу выбрать эту базу данных!!!');

$query='INSERT INTO users VALUES ("", "'.$_POST['login'].'", "'.$_POST['email'].'", "'.$_POST['pass'].'", "'.$_POST['ref'].'")'
$result=mysql_query($query$db);

if(
mysql_query($query$db)) { echo 'Запись <br/><a href="">добавлена</a>';}
 else {echo 
"Ошибка записи";}


mysql_close();

?>
Что я делаю не правильно?

Последний раз редактировалось %$PROregRAMi$t%; 08.09.2010 в 07:58.
%$PROregRAMi$t% вне форума Ответить с цитированием
Старый 08.09.2010, 10:41   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Попробуйте один из вариантов:
1.После формирования строки запроса ($query) сделайте её вывод прямо в браузер:
PHP код:
echo $query
Это позволит явно увидеть,какие параметры вы передаёте в запросе.
Затем попробуйте выполнить этот запрос напрямую в phpMyAdmin.
2. После запроса к Базе вставьте функцию вывода ошибки MySQL:
PHP код:
echo mysql_error(); 
Оба варианта позволят узнать об ошибках в запросе к Базе - ну и соответственно откорректировать запрос.
После корректировки - не забудьте убрать все эти отладочные команды.
Andkorol вне форума Ответить с цитированием
Старый 08.09.2010, 11:25   #10
%$PROregRAMi$t%
Заблокирован
 
Регистрация: 28.05.2010
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Попробуйте один из вариантов:
1.После формирования строки запроса ($query) сделайте её вывод прямо в браузер:
PHP код:
echo $query
Это позволит явно увидеть,какие параметры вы передаёте в запросе.
Затем попробуйте выполнить этот запрос напрямую в phpMyAdmin.
2. После запроса к Базе вставьте функцию вывода ошибки MySQL:
PHP код:
echo mysql_error(); 
Оба варианта позволят узнать об ошибках в запросе к Базе - ну и соответственно откорректировать запрос.
После корректировки - не забудьте убрать все эти отладочные команды.
Огромное Вам спасибо и не только за то что помогли решить этот вопрос, а именно за то, что подсказали как вообще решаются подобного рода вопросы!!!
Оказывается в таблице у меня еще одно поле было, и из-за того что я не добавил это - ( "",) - был нарушен порядок записи.
%$PROregRAMi$t% вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поворот прямой Байт Помощь студентам 2 15.02.2010 22:41
Как в WORDPRESS запретить постинг без указания заголовка и тегов? Рыжая_Бестия WordPress и другие CMS 2 11.09.2009 15:44
Анимация прямой NecroSlider Помощь студентам 3 23.04.2007 13:31