найти ошибки я здесь не указываю поле 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
Пиши запрос так:
Особенность в том, что ты это спрашиваешь у всех подряд? Смысл? Это называется офф-топ, и я делаю тебе усное предупреждение. Если не хочешь говорить по теме, то не надо офф-топить!
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 написал(а):
обновил верхний пост