Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

08.04.2007, 19:00
|
|
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме: 1364740
Репутация:
114
|
|
?pHp + mysql
Собственно тривиальная задача - поиск по базе и вывод результата (на пхп)
Я решил так (но чувствую что не то))!!)::
PHP код:
$sql="select name from users where name=$_POST['name']";
$result=mysql_query($sql, $conn);
$n=mysql_num_fields($result);
if ($n==0)
{
...
}
else
{
echo 'user c таким именем уже существует!!';
..
}
подскажите альтернативные решения пож?!!
зы: если что-то не так в коде или логике - просьба конкретизировать и предложить свое!!
зыы: ну и сильно не ругайте, ток недавно скуль+пхп начал, пока путаюсь))
Последний раз редактировалось mR_LiNK[deface_0nl; 08.04.2007 в 20:18..
|
|
|

08.04.2007, 19:52
|
|
Постоянный
Регистрация: 17.07.2005
Сообщений: 475
Провел на форуме: 1665310
Репутация:
488
|
|
Ты думаешь что проблема с алгоритмом ? Все верно, если человека в базе нет - резалт(кол-во строк) - нуль , иначе..
Только используй mysql_num_rows()
|
|
|

08.04.2007, 20:33
|
|
Познающий
Регистрация: 20.02.2007
Сообщений: 41
Провел на форуме: 38505
Репутация:
48
|
|
PHP код:
<?php
$query = "SELECT COUNT(*) FROM users WHERE user='".S_POST['name']."'";
$res=mysql_query($query)
if(mysql_result($res,1)==0)
{
echo "такого пользователя нет";
...
}
else
{
echo "Пользователь с указанным именем существует!";
}
?>
Здесь уже больше SQL, чем PHP
|
|
|

08.04.2007, 20:43
|
|
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме: 1364740
Репутация:
114
|
|
Всем + и спасибо!
Последний раз редактировалось mR_LiNK[deface_0nl; 08.04.2007 в 20:51..
|
|
|

08.04.2007, 21:31
|
|
Постоянный
Регистрация: 17.07.2005
Сообщений: 475
Провел на форуме: 1665310
Репутация:
488
|
|
user='".S_POST['name']."'";
=))))
Неплохо было бы еще профильтровать параметр..
|
|
|

08.04.2007, 21:59
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
$sql='select name from users where name=\''.mysql_escape_string($_POST['name']).'\'';
|
|
|

08.04.2007, 22:21
|
|
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме: 1364740
Репутация:
114
|
|
Сообщение от nc.STRIEM
$sql='select name from users where name=\''.mysql_escape_string($_POST['name']).'\'';
))давайте еще распишем тут всю систему безопасного программирования)))
зы:: спасиб, безопасность всегда..)), но пока ток логика
|
|
|

08.04.2007, 23:58
|
|
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме: 1364740
Репутация:
114
|
|
С учетом выше сказанного и мануалов::
PHP код:
$name=mysql_real_escape_string($_POST['name']);
$mail=mysql_real_escape_string($_POST['mail']);
$pass=mysql_real_escape_string($_POST['pass']);
$sql="select name from users where name='".$name."'";
$result=mysql_query($sql, $conn);
$n=mysql_num_rows($result);
if ($n==0){
$sql="INSERT INTO".$table_name."SET name='".$name"', pass='".$pass"', mail='".$mail."'";
$result=mysql_query($sql, $conn);
...
}
else
{
echo ...
}
зы:: нагромоздил .. почти запутался уже..)
Последний раз редактировалось mR_LiNK[deface_0nl; 09.04.2007 в 00:03..
|
|
|

09.04.2007, 00:24
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Мда ребята...
PHP код:
<?php
if(!get_magic_quotes_gpc()) {
$name = mysql_real_escape_string($_POST['name']);
$mail = mysql_real_escape_string($_POST['mail']);
$pass = mysql_real_escape_string($_POST['pass']);
} else {
$name = $_POST['name'];
$mail = $_POST['mail'];
$pass = $_POST['pass'];
}
$sql = "SELECT `name` FROM `users` WHERE `name` = '".$name."'";
$result = mysql_query($sql, $conn);
if(mysql_num_rows($result) > 0) {
$sql = "INSERT INTO `".$table_name."` SET `name` = '".$name"', `pass` = '".$pass"', `mail` = '".$mail."'";
$result = mysql_query($sql, $conn);
...
} else {
echo "Такое имя уже есть";
}
?>
|
|
|

09.04.2007, 00:43
|
|
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме: 1364740
Репутация:
114
|
|
2_Isis
Как я понял логика такова (если не так поправь):
этим проверятся автоматическая расстановка слэшей пХп
если это не так, то далее производим эту расстановку сами
PHP код:
$name = mysql_real_escape_string($_POST['name']);
...
Последний раз редактировалось mR_LiNK[deface_0nl; 09.04.2007 в 01:01..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|