Ответы пользователя по тегу PHP
  • Как правильно передать переменную в запрос к БД?

    GM_pAnda
    @GM_pAnda
    Бездельник
    Если пишите что-то своё и вам нужно использовать базу, то что бы не придумывать велосипед с PDO, использую ORM RedBeanPHP, именно эта ORM себя зарекомендовала себя хорошо. Легка в использовании, хорошая документация и довольно быстрая
    Ответ написан
    Комментировать
  • Обязательно ли делать форму если отправляешь через ajax?

    GM_pAnda
    @GM_pAnda
    Бездельник
    Да не обязательно, только у вас получится проблема как у меня спустя пол года. Сначала было 3 инпута, потом 5, 10. а когда количество дошло до 20, уже дикая херабора началась. Особенно если эти данные нужно получать не только допустим в одном месте. а ещё где нибудь. По правилам хорошего тона прям ну очень желательно такие вещи заносить в форму, потому что очень удобно вытаскивать данные из формы под средством serialize().
    Ответ написан
    Комментировать
  • Как преобразовать двумерный массив в одномерный PHP?

    GM_pAnda
    @GM_pAnda
    Бездельник
    Точно такой массив какой вы хотите
    $arrOne = Array(
      0 => Array(
        0 => 'name 0',
        1 => 'name 1',
        2 => 'name 2'
      ),
      1 => Array(
        0 => 100,
        1 => 200,
        2 => 300
      )
    );
    $arrTwo = array();
    
    foreach ($arrOne as $keys => $names) { 
    	foreach ($names as $key => $name) {
    		$arrTwo[$key][] = $name;
    		continue;
    	}
    	
    
    }
    
    var_dump($arrTwo);
    Ответ написан
    Комментировать
  • Потеряю ли я трафик если сделаю сайт с нуля?

    GM_pAnda
    @GM_pAnda
    Бездельник
    Что вы подразумеваете под словом сайт с нуля? Делать его на фреймворке?Нужно учитывать SEO. Это очень скользкая тема. Недавно вопросом этим тоже задавался. Решено было просто написать шаблон для HOST CMS с 0. Что бы правильно реализовать свой фреймворк на основе которого будешь пилить нужно учесть кучу всего, вот что первое приходит в голову
    На абсолютно каждой странице сайта должна быть возможность редактировать значения следующих тегов: Title, Meta-Description, Meta-Keywords, H1, H2 (если предусмотрен шаблоном).
    Должен генерироваться файл sitemap.xml. Требования к sitemap можно найти тут https://developers.google.com/search/docs/guides/e... Эти требования следует добавить в ТЗ для разработчиков.
    Желательно реализовать возможность редактировать файл robots.txt через админку. Это позволит seo-специалисту быстро редактировать данный файл без получения доступа к ftp.
    Желательно реализовать возможность редактирования шаблонов страниц или их частей через админку. Это позволит специалисту, при большой необходимости, вносить небольшие правки в html-код страниц без получения доступа к ftp.
    Автоматическое сохранение бэкапа всех файлов и базы сайта. Это позволит обезопасить себя от любых действий привлеченных специалистов (к сожалению, всякое бывает).
    Обязательно должны присутствовать правильно указанные title (Img)
    Ответ написан
    Комментировать
  • Насколько у меня правильный код ООП php?

    GM_pAnda
    @GM_pAnda
    Бездельник
    Почитайте документацию про PSR-4, станет потом более понятно про все именования и тд
    Ответ написан
    1 комментарий
  • Как на все роуты повесить авторизацию?

    GM_pAnda
    @GM_pAnda
    Бездельник
    Смотрите, контроллер cabinet должен наследовать базовый контроллер, получите в базовом контроллере роут нужный и сделайте проверку что-то вроде. А точнее смотрите документацию своего фрейморка) Или подождите ответа того кто разбирался в SLIM
    if(Auth::check() == false && $route['controller'] != 'Login'){
          redirect('/admin/login/'); die;
    }
    Ответ написан
  • Скрипт не возвращает данные что делать?

    GM_pAnda
    @GM_pAnda
    Бездельник
    В описании написано же, проверьте правильность SQL запроса. И я конечно не знаю зачем вам это понадобилось, но сувать данные для запроса прям из _REQUEST очень плохая идея. Проверьте изначально, приходят ли нужные данные $flowers.
    И вообще давно пора переходить на PDO
    Ответ написан
    Комментировать
  • HMVC сильно устарел?

    GM_pAnda
    @GM_pAnda
    Бездельник
    Вы говорите про HMVC, и MVC... А, ещё ведь остались люди которые до сих пор пишут в процедурном стиле :) На самом деле нет идеального Паттерна :) У каждого есть минусы и плюсы. Всё зависит в большой части от проекта который реализовываете.. Но, для себя я давно сделал выбор и остановился на MVC.. Да есть проблемы с зависимостью вид и контроллер зависят более чем от одной модели, а от одной модели зависят более одного вида и контроллера.. На самом деле можно создать почти свой идеальный паттерн MVC.. Это же только идеология написания кода, вас никто не может заставлять её придерживаться
    Ответ написан
    1 комментарий
  • Как получить данные из HTML инпута, и передать их в php скрипт в виде переменной?

    GM_pAnda
    @GM_pAnda
    Бездельник
    <form onsubmit="postQuery($(this), event, 'nameCtrl'); return false;" action="/auth" method="POST">
       <input type="text" name="idUser" placeholder="Введите ID юзера" autocomplete="off" required="">
      <button class="btn-primary">Войти</button>
    </form>

    requestSent = false; // флаг что бы нельзя было отправить повторный запрос на сервер.
    
    function postQuery(form, event, action){
      var 
        url = form.attr('action'),
        data = form.serialize();
      if(!requestSent) {
        requestSent = true;
        $.ajax({
          type: "POST",
          async: true,
          url: url,
          cache: false,
          data: data+'&action='+action,
          success: function(data){
            // что-то делаем если всё выполнилось
          alert(data);
          },
          complete: function() {
            requestSent = false;
            // что-то делаем после завершения AJAX запроса
          }
        });
      }
    }

    Данные на сервере таким способом можно получить
    <?php
    if (isset($_POST["action"]) ) {
     if($_POST["action"] == "nameCtrl"){
        echo "ID пользователя: " . $_POST["idUser"] . "<br/>";
     }
    }
    ?>
    Ответ написан
  • Rак подключить БД в свой MVC движок?

    GM_pAnda
    @GM_pAnda
    Бездельник
    На ютубе пересмотри ещё раз видео и поймёшь где ошибка. Андрей Кудлай всё подробно там разжевал
    <?php
    
    namespace vendor\core;
    
    use R;
    class Db {
    	
    	protected $pdo;
    	protected static $instance;
    	
    	
    	protected function __construct() {
    		$db = require ROOT . '/config/config_db.php';
    		require LIBS.'/rb.php';
    		R::setup($db['dsn'], $db['user'], $db['pass']); 
    		
    		//R::fancyDebug( TRUE );
    	}
    	
    	public static function instance() {
    		if(self::$instance === null){
    			self::$instance = new self;
    		}
    		return self::$instance;
    	}
    }
    Ответ написан
  • Переформировать объект PHP?

    GM_pAnda
    @GM_pAnda Автор вопроса
    Бездельник
    На данный момент вот так решил.. Но, мне кажется это не правильный подход..
    $_SESSION['user']['id'] = $user->id;
    	$_SESSION['user']['full_name'] = $user->full_name;
    	$_SESSION['user']['phone'] = $user->phone;
    	$_SESSION['user']['password'] = $user->password;
    	$_SESSION['user']['join_date'] = $user->join_date;
    	$_SESSION['user']['group'] = $user->group;
    	$_SESSION['user'] = (object) $_SESSION['user'];
    Ответ написан
  • Как можно поймать нажатие кнопки button?

    GM_pAnda
    @GM_pAnda
    Бездельник
    Я давно такой вариант использую.
    Функция принимает 3 аргумента (Объект, Событие, Экшен)
    <form onsubmit="postQuery($(this), event, 'login'); return false;" action="/auth" method="POST">
       <input type="tel" name="phone" placeholder="password" autocomplete="off" required="">
      <button class="btn-primary">Войти</button>
    </form>

    requestSent = false; // флаг что бы нельзя было отправить повторный запрос на сервер.
    
    function postQuery(form, event, action){
    	var 
    		url = form.attr('action'),
    		data = form.serialize();
    	if(!requestSent) {
    		requestSent = true;
    		$.ajax({
    			type: "POST",
    			async: true,
    			url: url,
    			cache: false,
    			data: data+'&action='+action,
    			success: function(data){
    				// что-то делаем	
    			},
    			complete: function() {
    				//requestSent = false;
    				// что-то делаем после завершения AJAX запроса
    			}
    		});
    	}
    }
    Ответ написан
    Комментировать