Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6

Пропали $_POST'ы при внедрении конструктора?

29.04.2012, 15:33. Показов 3580. Ответов 33

Студворк — интернет-сервис помощи студентам
решил переделать свою функцию createUser() под __construct(), итог - пропали $_POST'ы,
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
 $user = new User();
 
 switch ($_POST["action"]){
 
 case "success":
 
    $user->email=$_POST['email'];
    $user->pass=$_POST['pass'];
 
    if ($user instanceof User){
      $form = User::$success;
    }
    else $form = User::$regform;
а когда обычный createUser() ставлю, т.е.
PHP
1
if ($user->createUser()){
в массив $_POST вставляются данные.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2012, 15:33
Ответы с готовыми решениями:

Пропали окна с кодом и конструктора формы
Пропало окно с кодом и окно с конструктором формы. У всех проектов. Сами проекты работают. Visual Studio 2012 русифицированная. Пробовал...

Ошибка при внедрении зависимости через конструктор
Присутствует вот такой код. $сonfig = new Config(); $init = new Init($сonfig); class Init { private $сonfig; ...

Активирование функция Init при внедрении dll файла из ресурсов в игру
У меня есть проект, хочу что бы при внедрении dll файла в игру, активировалась функция Init в данную игру, как это сделать? Вот сам проект ...

33
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
29.04.2012, 15:44
$_POST - суперглобальный массив и пропасть никаким каком не может.
0
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
29.04.2012, 16:23  [ТС]
PHP
1
2
$user->email=$_POST['email'];
$user->pass=$_POST['pass'];
значит это не срабатывает.

Добавлено через 33 минуты
хмм, проvar_dump'ил, поля объекта таки есть, в конструкторе идет запись в БД этих полей, в итоге ячейки в таблице оказываются пустыми, при обычном подходе без конструктора все хорошо срабатывает. Может я не так в конструкторе к полям обращаюсь?

Добавлено через 2 минуты

сейчас так:

PHP
1
2
3
4
5
6
7
8
9
public $email;
public $pass;
 
/* Создание юзера */
function __construct()
{
 echo $this->email;
 echo $this->pass;
}
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
29.04.2012, 17:20
Работать с бизнес логикой, тем более БД, в конструкторе объекта - дурной тон.
0
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
30.04.2012, 23:46
PHP
1
2
3
4
5
6
7
8
9
10
11
12
class Shlak{
  private $email;
  private $pass;
 
  function __construct($email,$pass)
  {
   $this->email=$email;
   $this->pass=$pass;
  }
}
 
$Shlak = new Shlak(POST['email'],POST['pass']);
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
01.05.2012, 00:05
$Shlak = new Shlak(POST['email'],POST['pass']);
шо сие такое POST?
если это то что у некриворуких программеров - $_POST то зачем его параметрами передавать
если он и так доступный.
0
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
01.05.2012, 00:08  [ТС]
Цитата Сообщение от caballero Посмотреть сообщение
Работать с бизнес логикой, тем более БД, в конструкторе объекта - дурной тон.
как-то тогда, я про синглтон уже 10 раз в книге перечитал главу, и видео пересмотрел, ни въеду...

borovik, это вариант, но на синглтон что-то не очень похоже.
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
01.05.2012, 01:44
Цитата Сообщение от caballero Посмотреть сообщение
зачем его параметрами передавать
если он и так доступный.
потому, что глобальные переменные, точнее их использование в функциях или методах - это дурной тон. Всегда данные нужно передавать как аргументы, вне зависимости от того, откуда они приходят.
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
01.05.2012, 01:54
как-то тогда, я про синглтон уже 10 раз в книге перечитал главу, и видео пересмотрел, ни въеду...
при чем тут синглтон.

потому, что глобальные переменные, точнее их использование в функциях или методах - это дурной тон.
слышал звон да не знаешь где он
это не обычные глобальные переменные для которых нужен global а суперглобальные переменные специально создаваемые системмой и доступные в любом месте
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
01.05.2012, 01:59
Цитата Сообщение от caballero Посмотреть сообщение
слышал звон да не знаешь где он
это не обычные глобальные переменные для которых нужен global а суперглобальные переменные специально создаваемые системмой и доступные в любом месте
В чем разница?
Если создаешь метод, оперирующий данными, нужно сделать так, что бы можно было без проблем в клиентском коде вызвать этот метод из любого окружения и с любыми параметрами. Иначе полезность данного метода стремится к нулю.
0
 Аватар для Dartk
48 / 50 / 4
Регистрация: 15.03.2009
Сообщений: 146
01.05.2012, 02:16
Обменяю овчарку на 4-ре мешка картошки. Срочно!
0
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
01.05.2012, 12:46
Цитата Сообщение от caballero Посмотреть сообщение
при чем тут синглтон.
причем тут синглтон? я в не название, не в сабже не нашел ни одного слова про синглтон.
пс. Мой пример идеален с точки зрения ООП.
0
01.05.2012, 15:14

Не по теме:

АХАХАХАХАА, ТС ПРОЧИТАЛ ДУРНОЙ ТОН КАК СИНГЛТОН

0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
01.05.2012, 18:28
Мой пример идеален с точки зрения ООП.
только тема о том что у ТС якобы пропали посты а не о том у кого самый крутой ООП.
0
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
02.05.2012, 00:15  [ТС]
Наконец-то добрался, я опечатку сделал и предложение про синглтон не вставилось в пост, вот и вся канитель, а заключалось оно в том что я хотел бы сделать это через этот самый синглтон, для практических навыков, я понимаю что рваться к базе через конструктор затея глупая, а посты так и не появились, конструктор их просто съедает, решил отказаться пока от него и сделать как было до этого через обычную процедуру CreateUser, но...
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
02.05.2012, 01:31
конструктор их просто съедает
чушь, разберись с обычными косяками в коде а потом берись за ООП и прочее

и какой смысл делать синглетон на юзере
у тебя единственный юзер в системме?
0
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
02.05.2012, 01:42  [ТС]
Цитата Сообщение от caballero Посмотреть сообщение
у тебя единственный юзер в системме?
нда, не один. А разобраться таки хочу в чем "косяки".
0
 Аватар для Денис Н.
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
14.06.2012, 06:23
Цитата Сообщение от AlienNation Посмотреть сообщение
PHP
1
2
3
$user = new User();
...
if ($user instanceof User){
Это что, проверка на самозванца?

Вместо свитч-кейса можно сделать стратегию
1
 Аватар для basili4
201 / 199 / 4
Регистрация: 13.06.2012
Сообщений: 1,009
Записей в блоге: 3
14.06.2012, 12:22
Все очень спорно. Я за явную передачу аргументов в функцию. А то сегодня $_POST завтра $_GET.
И каждый раз лезть в конструктор. А так на входе есть данные и пофигу откуда они берутся. Кастрюля не должна знать, что в ней варят (c)
1
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
14.06.2012, 14:42
А то сегодня $_POST завтра $_GET.
поэтому следует использовать $_REQUEST
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.06.2012, 14:42
Помогаю со студенческими работами здесь

Почему при вызове конструктора из конструктора нельзя передавать this как аргумент?
Есть такой код: public class Order { { } Order(){ this(this.hashCode());//ошибка тут } ...

АКТ о внедрении
Здравствуйте, не знаю в какую тему обратиться даже... Пишу НПР по модернизации локальной сети предприятия, нужно написать акт о внедрении....

о внедрении продуктов... крик души...
У меня возникла некоторая "дыра" в проэктировании и внедрении новых БД на предприятии... Связана она с тем, что те проекты которые были...

Пропали системные звуки, в настройках звука пропали все звуковые схемы и программные события
Пропали системные звуки в windows 8.1. В настройках звука пропали все звуковые схемы и программные события. Подскажите, как решить эту...

В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать?
Помогите разобраться в копирующем и перемещающем конструкторах. В чём их существенное отличие и какой плюс от использования перемещающего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru