почему не выполняется sql-запрос
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
почему не выполняется sql-запрос - 2008-10-18 21:54:21.090000
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
помогите плс ничего уже в голову не идет, что такое <html>
<head>
<title>Registration</title>
</head>
<body>
<font align="left">
<h2>Registration to <font color="8b8989">Hack bl0g</font></h2><br>
<?php
if(isset($_POST['ok']))
{
if($login and $email and $passwd and $passwd2)
{
$_POST['login'] = $login;
$_POST['email'] = $email;
$_POST['passwd'] = $passwd;
$_POST['passwd2'] = $passwd2 ;
$table="users";
$sql = 'INSERT INTO `users` (`login`, `password`, `email`) VALUES ("'.$login.'", "'.$passwd.'", "'.$email.'")';
$connect = mysql_connect("localhost", "testuser", "testuser777");
mysql_select_db("hackblog", $connect);
mysql_query($sql, $connect);
mysql_close($connect);
}
else
{
echo('<script>alert("Не заполнены все необходимые поля")</script>');
}
}
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<b>Login:</b><br>
<input type="text" name="login"><br><br>
<b>Email:</b><br>
<input type="text" name="email"><br><br>
<b>Password:</b><br>
<input type="password" name="passwd"><br><br>
<b>Repeat password:</b><br>
<input type="password" name="passwd2"><br><br>
<input type="submit" name="ok" value="Register me!">
</form>
</body>
</html>
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-18 22:24:02.820000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
ну вообще достаточно и просто mysql_query($sql); и в запросе напиши так $sql = "INSERT INTO `users` (`login`, `password`, `email`) VALUES ('$login', '$passwd', '$email')"; хотя незнаю спасёт ли но так тоже можно)
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-18 23:35:46.443333
|
|
|
med
Сообщений: 138
Оценки: 0
Присоединился: 2006-06-12 21:06:38
|
интересно что случится если в любую переменную загонят кавычки и сделают post
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 01:42:07.006666
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
надо использовать конвертер для этого.. я обычно конвертю все символы
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 02:33:34.270000
|
|
|
med
Сообщений: 138
Оценки: 0
Присоединился: 2006-06-12 21:06:38
|
покажи пример фильтра? что то типа $string = stripslashes($string); $string = htmlentities($string); $string = strip_tags($string); ? ещё думаю если в установках php register globals включены, этот скрипт так же уязвим т.к. нету проверки откуда исходит запрос POST, значит можно послать свой собственный?
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 12:31:26.900000
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
FriLL, да выруби же ты регистр глобалс на своем компе: quote:
$_POST['login'] = $login; $_POST['email'] = $email; $_POST['passwd'] = $passwd; $_POST['passwd2'] = $passwd2 ; полный бред. Попробуй: mysql_query($sql, $connect) or die(mysql_error());
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 14:23:55.553333
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
No database selected
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 14:35:36.776666
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
quote:
ORIGINAL: FriLL No database selected вот в эту сторону и копай
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 14:40:33.826666
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
<?php
if(isset($_POST['ok']))
{
if($_POST['login'] and $_POST['email'] and $_POST['passwd'] and $_POST['passwd2'])
{
$table="users";
$sql = 'INSERT INTO `users` (`login`, `password`, `email`) VALUES ("'.$_POST['login'].'", "'.$_POST['passwd'].'", "'.$_POST['email'].'")';
$connect = mysql_connect("localhost", "testuser", "testuser777");
mysql_select_db("hackblog", $connect);
mysql_query($sql, $connect) or die(mysql_error());
mysql_close($connect);
}
else
{
echo('<sсriрt>alert("Не заполнены все необходимые поля")</sсriрt>');
}
}
?> теперь типо все так выглядит странно почему No database selected ведь ясно базу выбрал mysql_select_db("hackblog", $connect);
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 15:06:56.413333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
Вот пример конфига обычного, покури:)
<?php
$path='';
$website="http://твой_сайт.ru/"; //format look like http://www.yourwebsitename.com/
$servername='бла-бла'; // Your MySql Server Name or IP address here
$dbusername='бла-бла'; // Login user id here
$dbpassword='бла-бла'; // Login password here
$dbname='бла-бла'; // Your database name here
connecttodb($servername,$dbname,$dbusername,$dbpassword);
function connecttodb($servername,$dbname,$dbuser,$dbpassword)
{
global $link;
$link=mysql_connect ("$servername","$dbuser","$dbpassword");
if(!$link){die("Could not connect to MySQL");}
mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
}
?>
$table ты написал, а при соединении его не указываешь, хотя указывать надо даже не $table, а имя самой базы Т.е. ключ решению загадки в коде здесь: mysql_select_db("$dbname",$link)
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 15:50:53.963333
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
послушайте уважаемый у меня все правильно mysql_select_db("hackblog", $connect);
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 15:58:21.310000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
connecttodb($servername,$dbname,$dbusername,$dbpassword) А это где? Чтобы в одну строчку и сервер, и дб-нэйм и юзер и пароль? Посмотри на последовательность, она у тебя нарушена, ты сначала указываешь имя базы, а не хост
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 16:51:29.563333
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
function connecttodb($servername,$dbname,$dbuser,$dbpassword)
{
global $link;
$link=mysql_connect ("$servername","$dbuser","$dbpassword");
if(!$link){die("Could not connect to MySQL");}
mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
} вапщето это ты сам делаеш такую функцию, а mysql_select_db() это встоеная функция пхп
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 17:31:49.766666
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
FriLL, не тупи, смотри правильную последовательность в момент соединения connecttodb($servername,$dbname,$dbusername,$dbpassword) а функцию делаю не я, а phpbb:D 100% рабочий вариант. Просто посмотри внимательно
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-19 19:04:07.380000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
уууууууууу………………………………… блин фрил ну ты тип.. вот держи класс работы с базой
<?php
class db
{
public $db_id = false;
public $query_num = 0;
public $query_list = array();
public $mysql_error = '';
public $mysql_version = '';
public $mysql_error_num = 0;
public $mysql_extend = "MySQL";
public $MySQL_time_taken = 0;
public $query_id = false;
public function connect($db_user, $db_pass, $db_name, $db_location = 'localhost', $show_error=1)
{
if(!$this->db_id = @mysql_connect($db_location, $db_user, $db_pass)) {
if($show_error == 1) {
$this->display_error(mysql_error(), mysql_errno());
} else {
return false;
}
}
if(!@mysql_select_db($db_name, $this->db_id)) {
if($show_error == 1) {
$this->display_error(mysql_error(), mysql_errno());
} else {
return false;
}
}
$this->mysql_version = mysql_get_server_info();
mysql_query("SET NAMES 'utf8';");
return true;
}
public function get_cell ($query)
{
$result = mysql_query($query) or die("Query failed : " . mysql_error());
while ($line = mysql_fetch_array($result)) {
foreach ($line as $col_value) {
$data = "$col_value";}}
mysql_free_result($result);
return $data;
}
public function get_arr ($query)
{
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$arr = mysql_fetch_array($result);
mysql_free_result($result);
return $arr;
}
public function query ($query)
{
$result = mysql_query($query) or die($this->display_error(mysql_error(), mysql_errno()));
}
public function free( $query_id = '' )
{
if ($query_id == '') $query_id = $this->query_id;
@mysql_free_result($query_id);
}
public function close()
{
@mysql_close($this->db_id);
}
public function get_real_time()
{
list($seconds, $microSeconds) = explode(' ', microtime());
return ((float)$seconds + (float)$microSeconds);
}
public function display_error($error, $error_num, $query = '')
{
if($query) {
$query = preg_replace("/([0-9a-f]){32}/", "****", $query);
$query_str = "$query";
}
echo $query_str;
exit();
}
}
?> пользоваться так $db = new db; - создание объекта базы $db->connect('db_user','db_pass','db_name','db_port') - думаю параметры тут ясно что к чему, порт не обязательный параметр $db->get_cell(""); - возвращает одну ячейку $db->get_cell(""); - возвращает асоциированый массив $db->query(""); - выполняет запрос без возвращения результата $db->close(); -закрытие соединение
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-20 12:51:11.480000
|
|
|
saint_byte
Сообщений: 19
Оценки: 0
Присоединился: 2008-09-30 11:21:05.296666
|
А что mysql_escape_string не хватает ?
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-20 16:51:49.866666
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
magistr_bender мне не нужен целый класс для того чтобы занести одну запись в бд
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-20 17:09:11.403333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
так ты что, до сих пор не разобрался что ли?
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-20 17:17:37.610000
|
|
|
kolPeeX
Сообщений: 1456
Оценки: 0
Присоединился: 2007-01-25 14:57:57.683333
|
проверь существование базы hackblog и наличие у testuser на нее прав. <?php
if(!isset($_POST['ok'])) die;
if(!($_POST['login'] and $_POST['email'] and $_POST['passwd'] and $_POST['passwd2'])) {
echo('<sсriрt>alert("Не заполнены все необходимые поля")</sсriрt>');
}
$sql = 'INSERT INTO `users` (`login`, `password`, `email`) VALUES ("'
.mysql_escape_string($_POST['login']).'", "'
.mysql_escape_string($_POST['passwd']).'", "'
.mysql_escape_string($_POST['email']).'")';
mysql_connect("localhost", "testuser", "testuser777");
mysql_select_db("hackblog");
mysql_query($sql) or die(mysql_error());
mysql_close();
?> p.s. научись провильно оформлять код, так легче ошибки искать
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-20 18:35:17.720000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
вот хорошая документация по оформлению документов пхп http://framework.zend.com/manual/ru/coding-standard.html
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-20 18:50:50.660000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
Есть еще такая мысль, что типо если в Денвере монстрячишь, то под рутом не получится, надо отдельного юзера заводить. И вообше надо проверить file_priv
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-20 19:57:06.110000
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
quote:
ORIGINAL: Pashkela Есть еще такая мысль, что типо если в Денвере монстрячишь, то под рутом не получится, надо отдельного юзера заводить. И вообше надо проверить file_pryv а теперь все тоже самое, только чтоб содержимое твое поста и другие поняли ;)
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-25 12:12:50.216666
|
|
|
Buffalon
Сообщений: 14
Оценки: 0
Присоединился: 2008-10-17 18:41:56.566666
|
quote:
ORIGINAL: FriLL помогите плс ничего уже в голову не идет, что такое <html>
<head>
<title>Registration</title>
</head>
<bоdу>
<font align="left">
<h2>Registration to <font color="8b8989">Hack bl0g</font></h2><br>
<?php
if(isset($_POST['ok']))
{
if($login and $email and $passwd and $passwd2)
{
$_POST['login'] = $login;
$_POST['email'] = $email;
$_POST['passwd'] = $passwd;
$_POST['passwd2'] = $passwd2 ;
$table="users";
$sql = 'INSERT INTO `users` (`login`, `password`, `email`) VALUES ("'.$login.'", "'.$passwd.'", "'.$email.'")';
$connect = mysql_connect("localhost", "testuser", "testuser777");
mysql_select_db("hackblog", $connect);
mysql_query($sql, $connect);
mysql_close($connect);
}
else
{
echo('<sсriрt>alert("Не заполнены все необходимые поля")</sсriрt>');
}
}
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<b>Login:</b><br>
<input type="text" name="login"><br><br>
<b>Email:</b><br>
<input type="text" name="email"><br><br>
<b>Password:</b><br>
<input type="password" name="passwd"><br><br>
<b>Repeat password:</b><br>
<input type="password" name="passwd2"><br><br>
<input type="submit" name="ok" value="Register me!">
</form>
</bоdу>
</html> Парни вы реально жжоте , вас бы всех на бАШ … .-> Что за бред->
Зачем isset($_POST['ok']) (это если существует ) обычно делают так - (!empty($_POST['ok'])(Это если нажата)
if($login and $email and $passwd and $passwd2) ЧТо ты этим хотел сказать ???вообще непонимаю , у тебя же всё через POST … .
$_POST['login'] = $login; $_POST['email'] = $email; $_POST['passwd'] = $passwd; $_POST['passwd2'] = $passwd2 ;
Вообще то x=3 , а не наоборот ,-> $login=$_POST['login']; Дальше смотреть нестал/ lol
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-26 12:38:33.986666
|
|
|
Панда
Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
|
quote:
ORIGINAL: Buffalon Зачем isset($_POST['ok']) (это если существует ) обычно делают так - (!empty($_POST['ok'])(Это если нажата) Как я понял нужно узнать существует ли переменная, для этих целей и нужна функция isset. Твой метод хоть и даст такой же результат, но както через ж@пу.
|
|
|
RE: почему не выполняется sql-запрос - 2008-10-26 12:40:33.550000
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
все проблема решена, просто прав моему юзверю не хватало!
|
|
|
|
|