Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   No database selected (https://javascript.ru/forum/server/29044-no-database-selected.html)

Hekumok 14.06.2012 15:22

devote, Serg_pnz, большое спасибо =)

Hekumok 14.06.2012 16:11

блин, у мя терь пишет
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\ '')' at line 2

DooMer 14.06.2012 18:24

$sql = "insert into users (username, email, password) values
('".$_POST["Логин"]."', '".$_POST["Е-mail"]."',  \
 '".$passwords[0]."')";

Уберите слеш "\"
Должно быть так
$sql = "insert into users (username, email, password) values
('".$_POST["Логин"]."', '".$_POST["Е-mail"]."',  
 '".$passwords[0]."')";

devote 14.06.2012 18:49

должно быть вообще вот так:
$sql = "insert into `users` (`username`, `email`, `password`) values ('".
        mysql_real_escape_string( $_POST["Логин"] )."', '".
        mysql_real_escape_string( $_POST["Е-mail"] )."', '".
        mysql_real_escape_string( $passwords[0] )."')";
А без этого и на инъекцию мускуля напороться можно

Hekumok 14.06.2012 20:36

a это куда чо вставлять о.О

melky 14.06.2012 22:19

Цитата:

Сообщение от Hekumok (Сообщение 181497)
a это куда чо вставлять о.О

Вы это узнаете после первой же атаки :) и многое другое.

DooMer 15.06.2012 13:11

Ну видно же что человек начинающий, по хорошему пароль надо захешировать и посолить

Serg_pnz 15.06.2012 16:02

Hekumok, код в студию.

Это еще можно посмотреть http://dklab.ru/lib/DbSimple/manual.html
Библиотека имеет свои placeholder-ы, что очень облегчает жизнь.

Hekumok 15.06.2012 21:37

Цитата:

Сообщение от Serg_pnz (Сообщение 181656)
Hekumok, код в студию.

Вот, держите:
<html><head>
<title>Регистрация</title>
<meta http-equiv="Content-Language" Content="ru">
</head><body>
<?php 
function validate($allSubmitted) {
$message = "";
$passwords = $allSubmitted["Пароль"];
$firstPass = $passwords[0];
$secondPass = $passwords[1];
$username = $allSubmitted["Логин"];
if ($firstPass != $secondPass) {
$message = $message."Неверный пароль.<br/>";
}
if (strlen($username) < 5 || strlen($username) > 25) {
$message = $message."Логин должен содержать больше 5 и меньше 25 символов.<br/>";
}
if ($message == "") {
$message = "OK";
}
return $message;
} ;
function db_connect( $db_host='mysql.hostinger.ru', $db_user='u777676273_nekit', $db_pass='071296atikin', $db_name='u777676273_users' ) {
$result = mysql_connect( $db_host, $db_user, $db_pass );
if ( !$result ) {
return false;
}
if ( !mysql_select_db( $db_name ) ) {
return false;
}
return $result;
}
if (validate($_POST) == "OK") {
echo "<p>Спасибо за регистрацию!</p>";
db_connect();
$sql = "insert into users (username, email, password) values
('".$_POST["Логин"]."', '".$_POST["Е-mail"]."',  \
 '".$passwords[0]."')";
$result = mysql_query($sql);
if ($result) {
echo "Мы вошли!";
} else {
echo "Возникли проблемы при добавлении записей в БД: ".mysql_error();
}
} else {
echo "<p>У вас при регистрации возникли проблемы:</p>";
echo validate($_POST);
echo "<p>Пожалуйста, поробуйте снова.</p>";
} ;
?>
<p>Ваши данные:</p>
<?php
foreach ($_POST as $key=>$value) {
echo "<p>".$key." = " . $value . "</p>"; 
}
$passwords = $_POST["Пароль"];
echo "Пароль = ".$passwords[0] ;
echo "<p>";
echo "Повтор пароля = ".$passwords[1];
echo "</p>";
?>
</body></html>

Но он пишет ошибку: You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server
version for the right syntax to use near '\ '')' at
line 2

devote 15.06.2012 22:27

Hekumok,
замени строки 36-38 на вот этот код:
$sql = "insert into `users` (`username`, `email`, `password`) values ('".
        mysql_real_escape_string( $_POST["Логин"] )."', '".
        mysql_real_escape_string( $_POST["Е-mail"] )."', '".
        mysql_real_escape_string( $passwords[0] )."')";


Часовой пояс GMT +3, время: 06:11.