ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

?pHp + mysql
  #1  
Старый 08.04.2007, 19:00
Аватар для mR_LiNK[deface_0nl
mR_LiNK[deface_0nl
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #2  
Старый 08.04.2007, 19:52
Аватар для r0
r0
Постоянный
Регистрация: 17.07.2005
Сообщений: 475
Провел на форуме:
1665310

Репутация: 488
По умолчанию

Ты думаешь что проблема с алгоритмом ? Все верно, если человека в базе нет - резалт(кол-во строк) - нуль , иначе..
Только используй mysql_num_rows()
 
Ответить с цитированием

  #3  
Старый 08.04.2007, 20:33
Аватар для mamamot
mamamot
Познающий
Регистрация: 20.02.2007
Сообщений: 41
Провел на форуме:
38505

Репутация: 48
Отправить сообщение для mamamot с помощью ICQ
По умолчанию

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
 
Ответить с цитированием

  #4  
Старый 08.04.2007, 20:43
Аватар для mR_LiNK[deface_0nl
mR_LiNK[deface_0nl
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме:
1364740

Репутация: 114
По умолчанию

Всем + и спасибо!

Последний раз редактировалось mR_LiNK[deface_0nl; 08.04.2007 в 20:51..
 
Ответить с цитированием

  #5  
Старый 08.04.2007, 21:31
Аватар для r0
r0
Постоянный
Регистрация: 17.07.2005
Сообщений: 475
Провел на форуме:
1665310

Репутация: 488
По умолчанию

Цитата:
user='".S_POST['name']."'";
=))))
Неплохо было бы еще профильтровать параметр..
 
Ответить с цитированием

  #6  
Старый 08.04.2007, 21:59
Аватар для nc.STRIEM
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

$sql='select name from users where name=\''.mysql_escape_string($_POST['name']).'\'';
 
Ответить с цитированием

  #7  
Старый 08.04.2007, 22:21
Аватар для mR_LiNK[deface_0nl
mR_LiNK[deface_0nl
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме:
1364740

Репутация: 114
По умолчанию

Цитата:
Сообщение от nc.STRIEM  
$sql='select name from users where name=\''.mysql_escape_string($_POST['name']).'\'';
))давайте еще распишем тут всю систему безопасного программирования)))

зы:: спасиб, безопасность всегда..)), но пока ток логика
 
Ответить с цитированием

  #8  
Старый 08.04.2007, 23:58
Аватар для mR_LiNK[deface_0nl
mR_LiNK[deface_0nl
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #9  
Старый 09.04.2007, 00:24
Аватар для Isis
Isis
Флудер
Регистрация: 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 
"Такое имя уже есть";
}
?>
 
Ответить с цитированием

  #10  
Старый 09.04.2007, 00:43
Аватар для mR_LiNK[deface_0nl
mR_LiNK[deface_0nl
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме:
1364740

Репутация: 114
По умолчанию

2_Isis
Как я понял логика такова (если не так поправь):
PHP код:
!get_magic_quotes_gpc() 
этим проверятся автоматическая расстановка слэшей пХп
если это не так, то далее производим эту расстановку сами
PHP код:
$name mysql_real_escape_string($_POST['name']);
... 

Последний раз редактировалось mR_LiNK[deface_0nl; 09.04.2007 в 01:01..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
SQL injection в MySql сервере версии 3,x bandera Чужие Статьи 3 04.06.2006 16:17
Общие Рекомендации Защиты (MySQL и SQL Web-интерфейс) k00p3r Чужие Статьи 0 13.06.2005 11:22
Защищаем MySql. Шаг за шагом k00p3r Чужие Статьи 0 13.06.2005 11:18



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ