Перейти к содержимому

Фото
- - - - -

маленькая проблема с пхп


  • Вы не можете создать новую тему
  • Please log in to reply
4 ответов в этой теме

#1 simonsays

simonsays
  • Пользователь
  • 835 сообщений

Отправлено 21 января 2006 - 00:12

пытаюсь сделать в регистрационной форме поле, где пользователь может регистрировать, какого он пола...

<input type="radio" name="sex" value="male">mees<br>
<input type="radio" name="sex" value="female">naine

затем делаю в таблице БД столбец sex (text). в пхп скрипт, который заполняет таблицу для нового пользователя добавляю:

$sql = "INSERT INTO users SET
              login = '$_POST[newuser]',
              password = '$_POST[newpass]',
              name = '$_POST[newname]',
              sex = '$POST[sex]',
              mail = '$_POST[newmail]',
              day = '$_POST[day]',
              month = '$_POST[month]',
              year = '$_POST[year]'
              ";

регистрируются все данные, кроме пола. что я делаю не так? заранее благодарен!
  • 0

#2 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 21 января 2006 - 09:38

simonsays, ну и кто же так делает :)

затем делаю в таблице БД столбец sex (text).

VARCHAR (4) хватло бы вполне!

Прежде чем передать информацию в БД, нужно экранировать кавычки ф-цией mysql_escape_string()...

Почему запрос не работает, потому, что sex = '$POST[sex]', а переменной $POST не существует :)
  • 0

#3 simonsays

simonsays
  • Пользователь
  • 835 сообщений

Отправлено 21 января 2006 - 22:35

да, облажался я :) наверное, повеселил.
но всё равно, спасибо большое! :)

Сообщение изменено: simonsays (21 января 2006 - 22:46 )

  • 0

#4 ФрукТ

ФрукТ
  • Постоялец
  • 768 сообщений
  • Откуда:сеть

Отправлено 22 января 2006 - 14:06

да, облажался я наверное, повеселил.
но всё равно, спасибо большое!


так и не понял, понял ли автор, в чем его ошибка в плане безопасности системы...

кстати, я бы сделал вообще так:

<input type="radio" name="sex" value="0">mees<br>
<input type="radio" name="sex" value="1">naine

в скрипте переменная просто явно приводится к булевому типу.

В итоге:
1) Закрываем все возможные и невозможные дыры
2) Существенно облегчаем таблицу

(к примеру, у нас есть миллион записей типа varchar 4 против миллиона типа bool... что будет работать быстрее решайте сами :))

Сообщение изменено: banana (22 января 2006 - 14:08 )

  • 0

#5 simonsays

simonsays
  • Пользователь
  • 835 сообщений

Отправлено 23 января 2006 - 01:49

разумно :)
  • 0