[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите отправить форму в MySQL
admin32
Помогите отправить форму в MySQL не пойму почему не отправляет? Помогите

найти ошибки я здесь не указываю поле id у меня в базе оно auto_increment

<?php 	
$dblocation = "localhost";
$dbuser = "root";
$dbpasswd = "";
$dbname="article";

$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo("<p>В настоящий момент сервер базы данных не
доступен, поэтому корректное отображение страницы
невозможно.</p>"
);
exit();
}

if (!@mysql_select_db($dbname, $dbcnx))
{
echo( "<p>В настоящий момент база данных не доступна,
поэтому корректное отображение страницы невозможно.</p>"
);
exit();
}
mysql_query('SET NAMES utf8');
if (@$send)
$sql = mysql_query("INSERT INTO `form`(`name`, `email`, `phone`,
`message`) VALUES ('"
.$_POST[`my_name`]."', '".$_POST[`my_email`]."',
'"
.$_POST[`my_phone`]."', '".$_POST[`my_message`]."');");


?>
<div class="content_blok">
<
table width="100%">
<
tr>
<
td><form id="form" class="blocks" action="index.php" method="post">
<
p>
<
label>Имя:</label>
<
input type="text" class="text" name="my_name" />
</
p>
<
p>
<
label>Адрес e-mail:</label>
<
input type="text" class="text" name="my_email" />
</
p>
<
p>
<
label>Номер телефона:</label>
<
input type="text" class="text" name="my_phone" />
</
p>
<
p class="area">
<
label>Сообщение:</label>
<
textarea class="textarea" name="my_message" rows="" cols=""></textarea>
</
p>
<
p>
<
label> </label>
<
input name="send" type="submit" class="btn" value="Отправить" />
</
p>
</
form></td>
</
tr>
</
table>
</
div>
<
div class="logo_pos"></div>
<
div class="server_info"><?php echo $_SERVER['SERVER_SOFTWARE'];?>
</div>




Спустя 10 минут, 43 секунды (22.10.2011 - 18:19) johniek_comp написал(а):
Опять поповщина?

Спустя 3 минуты, 6 секунд (22.10.2011 - 18:22) Ramzil_Nixon написал(а):
if (!@mysql_select_db($dbname, $dbcnx))
{
echo( "<p>В настоящий момент база данных не доступна,
поэтому корректное отображение страницы невозможно.</p>" );
exit();
}
mysql_query('SET NAMES utf8');
if (@$send)
$sql = mysql_query("INSERT INTO `form`(`name`, `email`, `phone`,
`message`) VALUES ('".$_POST[`my_name`]."', '".$_POST[`my_email`]."',
'".$_POST[`my_phone`]."', '".$_POST[`my_message`]."');");


?>


А не проще сделать так?

@mysql_select_db($dbname, $dbcnx) or die('Ошибка');
$sql = mysql_query("INSERT INTO `form`(`name`, `email`, `phone`,
`message`) VALUES ('".$_POST[`my_name`]."', '".$_POST[`my_email`]."',
'".$_POST[`my_phone`]."', '".$_POST[`my_message`]."');");
mysql_query($sql);

Спустя 1 минута, 46 секунд (22.10.2011 - 18:24) YVSIK написал(а):
Уже больно смотреть на этот такой логин ( когото он напоминает :ph34r: )
а что до формы, так все зделано на оборот вначале идет обработчик а потом сама форма, это так, ну если файл сам насебя будет посылать то сработает),
а тереь так , а где обьявление самих переменных , которые ты отправляешь?
как пример для понимания что написал, это что?
$sql = mysql_query("INSERT INTO `form`(`name`, `email`, `phone`,

это подлючение к полям таблицы!
а это что
VALUES ('".$_POST[`my_name`]."', '".$_POST[`my_email`]."', 

а это ! это те переменные которые ты заносишь(их значения )
так откуда им взяться тут если нет самих переменных, нет обьявления вот и нет переменных
вот таким путем ))

Спустя 2 минуты, 51 секунда (22.10.2011 - 18:27) YVSIK написал(а):
а это так вообще неподается описанию
if (@$send)

каково твое условие ? что значит это условие ?

Спустя 24 минуты, 23 секунды (22.10.2011 - 18:51) Игорь_Vasinsky написал(а):
@ - ты глушишь ошибки... как настроить и отладить скрипт если сам от ошибок прячешься.

в начале кода - на время отладки - пиши ещё

error_reporting(E_ALL);


чтоб не одна су сволочь не проскочила.

Спустя 2 часа, 56 минут, 44 секунды (22.10.2011 - 21:48) imbalance_hero написал(а):
johniek_comp
Особенность в том, что ты это спрашиваешь у всех подряд? Смысл? Это называется офф-топ, и я делаю тебе усное предупреждение. Если не хочешь говорить по теме, то не надо офф-топить!

admin32
Пиши запрос так:
mysql_query("тут запрос") or die(mysql_error());

Спустя 54 минуты, 18 секунд (22.10.2011 - 22:42) admin32 написал(а):
Да, с условием явно переборщил

Спустя 10 минут (22.10.2011 - 22:52) Игорь_Vasinsky написал(а):
Цитата
if (@$send)


и кнопу так проверяй

if (isset($send))


в запросе кавычки лишние у тебя

вот так надо

 $sql = mysql_query("INSERT INTO `form`(`name`, `email`, `phone`, `message`) 
VALUES ('"
.$_POST[`my_name`]."', '".$_POST[`my_email`]."', '".$_POST[`my_phone`]."', '".$_POST[`my_message`]."')");

Спустя 2 минуты, 24 секунды (22.10.2011 - 22:54) Игорь_Vasinsky написал(а):
блин.. ты обратные апострофы ставишь

Цитата
.$_POST[`my_name`]


для этого одинарные кавычки

$_POST['my_name']


обратные апострофы используют чтобы обрамить название таблиц и полей в SQL запросах, чтоб случайно с зарезервированными операторами не совпало.

Спустя 13 минут, 53 секунды (22.10.2011 - 23:08) admin32 написал(а):
Да я уже врубился , спасибо огромное можно закрывать пост

Спустя 1 минута, 38 секунд (22.10.2011 - 23:10) admin32 написал(а):
Вот так я решил сделать, все работает, СПАСИБО!!!
<?php
include_once ("connect/host.php");
mysql_query("INSERT INTO `form`(`name`, `email`, `phone`,
`message`) VALUES ('"
.$_POST['my_name']."', '".$_POST['my_email']."',
'"
.$_POST['my_phone']."', '".$_POST['my_message']."');") or die(mysql_error());
?>

<div class="content_blok">
<
table width="100%">
<
tr>
<
td><form id="form" class="blocks" action="index.php" method="post">
<
p>
<
label>Имя:</label>
<
input type="text" class="text" name="my_name" />
</
p>
<
p>
<
label>Адрес e-mail:</label>
<
input type="text" class="text" name="my_email" />
</
p>
<
p>
<
label>Номер телефона:</label>
<
input type="text" class="text" name="my_phone" />
</
p>
<
p class="area">
<
label>Сообщение:</label>
<
textarea class="textarea" name="my_message" rows="" cols=""></textarea>
</
p>
<
p>
<
label> </label>
<
input name="send" type="submit" class="btn" value="Отправить" />
</
p>
</
form></td>
</
tr>
</
table>
</
div>
<
div class="logo_pos"></div>
<
div class="server_info"><?php echo $_SERVER['SERVER_SOFTWARE'];?>
</div>

Спустя 5 минут, 18 секунд (22.10.2011 - 23:15) admin32 написал(а):
да, простите вот еще, при обновлении, запрос дублируется, то есть добовляется забись в таблицу как это можно преупредить, заранее спасибо!!!

Спустя 36 секунд (22.10.2011 - 23:16) Игорь_Vasinsky написал(а):
Из соседнего топика мои пости - прочти - полезно

Цитата
вот и усё.

осталось тока по уму проверку на уникальность логина и emaila сделать

т.е. перед записью в БД - нужно пошуршать в БД - чтобы не было таких же там.


$query = mysql_query("SELECT `login`, `email` FROM `table` WHERE `login` = '".mysql_escape_string($_POST['login'])."' 
OR `email` = '"
.mysql_escape_string($_POST['email'])."'") or die(mysql_error());

if(mysql_num_rows($query)) //Если нет совпадений - значит FALSE - !mysql_num_rows($query)\
echo "Такой логин или емайл уже используется";
else
{
//Регистрируешь нового юзера
}


Цитата
Запрос в БД необходим чтобы до регистрации (когда данные с формы приняяты) - мы не зарегили юзера если уже есть такой логин или пароль в БД

Выбираю я в таблице тока логин и емайл - да потому что мне тока их проверить нужно - зачем мне все строки целиком шуршать



После записи в БД - делайц редирект с HEADER - чтобы очистить POST - иначе F5 - и данные снова летят в БД ;)


Спустя 2 минуты, 48 секунд (22.10.2011 - 23:19) Игорь_Vasinsky написал(а):
обновил верхний пост
Быстрый ответ:

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