Ответы пользователя по тегу PHP
  • Что происходит после ввода адреса сайта?

    eucalipt
    @eucalipt
    Самоделкин.
    Стандартный Request-Response цикл.
    Вы переходите на сайт example.com.
    example.com - это домен. Любой домен привязан к определенному IP-адресу какого-то сервера. Соответственно, вы отправляете запрос на этот сервер, который "стучится" на 80-ый порт (стандартный порт HTTP-запросов. У HTTPS, например, 443). Ваш запрос приходит на сервер, где его обрабатывает Web-сервер, слушающий заданный порт (в продакшене как правило 80, опять же). Далее этот web-сервер отправляет ваш запрос в application-сервер (в вашем случае - apache, судя по тегам вопроса). Apache решает, что делать с вашим запросом, вызывает определенные исполняемые файлы PHP, происходит рутинная работа по "компиляции" запрашиваемой страницы, короче говоря. После этого PHP "подставляет" в шаблоны (если такие имеются) необходимые данные и отправляет готовую HTML-страницу обратно в клиент (ваш браузер), где браузер собирает все css, html, js, media файлы и "компонует" страницу, которую вы можете видеть после ответа сервера.
    Ответ написан
    5 комментариев
  • Чем закодирована строка?

    eucalipt
    @eucalipt
    Самоделкин.
    Может быть часть, начинающаяся с == добавляется после? Я не думаю, что ВСЯ строка закодирована. Закодирована только ее часть до "=".
    s2uzsvlppntKmH6gHd0LTw
    pOM0ihls4IiaxHlUyEBASw
    Ответ написан
  • Как сделать так что бы он автоматом загружал из папки те страницы (если они есть), которые есть в папке?

    eucalipt
    @eucalipt
    Самоделкин.
    Это быдлокодерство. Ужасное быдлокодерство.
    Я так понимаю, что если пользователь ввел site.my/page, то нужно отдать файл page.php? Почему бы не сделать папку page, а в нее не поместить index.php, и тогда при вводе site.my/page, будет запрошена страница index.php из этой папки.

    Но это тоже так себе решение.
    А если уж прямо так принципиально (не делайте так!), чтобы тот файл назывался page.php, то в index.php поместите скрипт, читающий page.php и вставляющий в index.php, е-мое, что я советую. Если это действительно НЕОБХОДИМО, то стоит задуматься о логике своего приложения.
    Ответ написан
    Комментировать
  • Откуда взялась ошибка при SQL запросе?

    eucalipt
    @eucalipt Автор вопроса
    Самоделкин.
    Очень сильно сглупил:
    Какой fetch() может быть при INSERT запросе? XD
    Ответ написан
    Комментировать
  • Где и как можно обучиться ООП по простому, желательно для web-оринтирования?

    eucalipt
    @eucalipt
    Самоделкин.
    Вот вам основы ООП.
    А вот реализация простейшего паттерна MVC.

    Все максимально просто и понятно. Только почитать по раз 5 придется.
    Ответ написан
    Комментировать
  • MVC: куда включают логику формирования заголовков?

    eucalipt
    @eucalipt
    Самоделкин.
    Вы сами ответили на свой вопрос: куда включать логику формирования заголовков?

    Суть MVC - отделение логики от представления. А контроллер служит лишь тоннелем передачи информации между ними. Модель - это и есть логика. Поэтому храните в модели.

    P.S. Лично я для себя ее вообще именую LVC - Logics, Controllers, Views (просто потому что так соображается быстрее). И вообще, поскольку проект такой, что суть контроллера всегда одна и та же - подставить данные в шаблон (данные получаю в логике), то и контроллер использую один на все модели и представления.
    Ответ написан
    9 комментариев
  • Какие проблемы могут возникнуть: router?

    eucalipt
    @eucalipt
    Самоделкин.
    А где описание функции _getUrl() ?
    Либо я слепой, либо вы его замаскировали под этими троеточиями.
    Просто, если у вас url делится по слешам, то я знаю, где может затаиться ошибка (вангую).
    Ответ написан
  • Как убрать � php substr?

    eucalipt
    @eucalipt
    Самоделкин.
    Дело в том, что функция substr изначально предназначена для работы с латинскими символами, которые представлены одним байтом. А все кириллические символы представлены двумя. Вот браузер и не знает, как отобразить пол русской буквы.

    Так что специально для этого и ввели mb_substr. Кстати, есть еще несколько функций для работы со string типом данных с префиксами mb_. И для работы с кириллицей лучше использовать именно их.
    Ответ написан
  • Работа без высшего образования, это реально?

    eucalipt
    @eucalipt
    Самоделкин.
    Ваша корочка никому не будет нужна, если вы понимаете основ программирования.
    Ответ написан
  • PHP запрос при наведении мыши. Как сделать?

    eucalipt
    @eucalipt
    Самоделкин.
    В написанном использую JQuery.
    $element = "путь к элементу (CSS)";
    
    $($element).on("mouseover", function() {
    $.ajax({
    			type: /* post или get */,
    		  url: /* путь к php файлу */,
    			data: /* данные, которые нужно послать скрипту (объект) */,
    		  dataType: /* json | text | html */,
    		  success: function(answ) {
    				
    				// ответ с сервера посылаем простым выводом (print или echo в php) и он записывается в переменную answ
    				
    		  }
    		});
    });
    Ответ написан
    5 комментариев
  • Как в php задать единожды глобальную (для всего сервера) переменную?

    eucalipt
    @eucalipt
    Самоделкин.
    Это вам только движок переписывать. В любом случае эта переменная должна как-нибудь подключаться к скрипту. Либо в начале каждого файла прописывать, либо файлом подключать. И объявить как константу, кстати, желательно.
    Ответ написан
    Комментировать
  • Восстановление пароля на php, как исправить?

    eucalipt
    @eucalipt
    Самоделкин.
    Попробуй
    mysql_fetch_assoc

    И еще, 2015 год на дворе, пора переходить на ООП и MySQLi (советую PDO) ;)
    Ответ написан
  • Фильтрация входящих данных?

    eucalipt
    @eucalipt
    Самоделкин.
    Советы есть. Пиши такие вещи сам, абсолютно точно такого же, что необходимо именно тебе, ты не найдешь. Ты можешь найти похожее, но точно такое же, как в твоей голове ты можешь только сам написать.

    А теперь ближе к делу.
    Во-первых, для передачи данных в БД, используй подготавливаемые запросы MySQLi.
    Кроме того, все данные обрабатывай следующими функциями.
    trim($enteredData); // Удалит все пробелы в начале и в конце стоки
    htmlspecialchars($enteredData); // Сделает невозможный SQL инъекцию.


    SQL инъекция - это когда пользователь вводит какую-то команду из MySQL в строку (например - удалить все строки), а эта строка (если нет защиты от этих инъекций) просто попадает в БД и выполняется, то бишь чистит базу в нашем примере.

    trim не будет удалять вообще все пробелы, можете не волноваться, она удалит только те ненужные символы (такие как пробелы, alt+255 и прочие "невидимые" символы), который находятся в начале и конце стоки.

    Естественно, в эти переменные для начала нужно записать то, что пользователь вводит:
    $enteredData = $_POST['field'];
    // или
    $enteredData = $_GET['field'];


    В зависимости от метода, который Вы используете.

    Эти функции - только самые основные, вы можете добавить и еще нужные Вам в конкретном случае, но, обычно, этого достаточно.
    Ответ написан
    1 комментарий
  • Ссылка через код php?

    eucalipt
    @eucalipt
    Самоделкин.
    Если есть что-то unexpected (неожиданное) на линии 12, значит чего-то не хватает на линии 11. Обычно это точка с запятой.
    Ответ написан
    Комментировать
  • На каком языке лучше делать сайт?

    eucalipt
    @eucalipt
    Самоделкин.
    Одним языком ты точно не обойдешься.
    Начни с изучения каркаса, с html (и да, я знаю, что это не язык :D), бери сразу html 5, не читай старой литературы по нему.

    После займись стилизацией, за это отвечает css. Бери сразу css3, не возвращайся в 2000-е, тебе это не надо. Обычно стилизацию рассматривают вместе с каркасом. То есть большинство учебной лит-ры - это html+css (в новых подразумевается, что это html5 + css3).

    По ходу изучения (а лучше после) берись за JS, то бишь Java Script. Он отвечает за "красивости на сайте". lern.javascript.ru - для отличного начала.

    После всего этого (а лучше разом с JS) бери php. Советую именно его, потому что распространен, много отличных гайдов (в том числе и на оф. сайте). Можешь читать старую лит-ру, НО только чтобы понять основные конструкции, такие как if, for, while, foreach и так далее. Сам же код пиши в ООП стиле, это будет большим плюсом для тебя в будущем, так как сейчас все активно на него переходят. Дойдя до MySQL бери MySQLi (это относится к PHP).

    Этих знаний должно быть достаточно. Для полного освоения и плавания без надувных кругов рассчитывай на 2 - 3 года обучения.
    Ответ написан
    Комментировать
  • Как эффективнее сравнить несколько полей таблицы MySql с одним значением?

    eucalipt
    @eucalipt
    Самоделкин.
    Какой бы ты способ не выбрал, ты на этом особо много не потеряешь. Речь идет о паре микро(!)секунд, если они способны сделать погоду твоему проекту, то у меня для тебя плохие новости.

    Куда больше времени займет вытаскивание данных из БД. Вообще, с БД нужно по стараться по возможности соединяться как можно реже.

    А что касается способа проверки конкретно, то тут всего несколько вариантов.

    Смотри.
    if () {
    
    } else if () {
    
    } else {
    
    }


    Ну тут все понятно, не буду останавливаться.

    $yourVar == 1 ? // do in for me if true : // do it for me in case of lie;


    В этом способе сначала идет условие проверки, после идет знак вопроса. Проще говоря, мы как бы спрашиваем у интерпретатора, задаем вопрос ему. А потом он просто выбирает, что делать. Если условие дало true, то выполнится часть до двоеточия, а если false, то после двоеточия.
    Минусы по сравнению с if - плохая читабельность, также немногоусловность, то бишь на проверку можно отправить только одно условие (отличие - if else) а также то, что выполнять можно только относительно небольшой участок кода.

    switch $yourVar;
      case 1:
        // your code
        break;
      case "two":
        // your code
        break
      default:
        // your code


    Конструкция switch быстро сравнивает данную переменную (результат выполнения функции, что угодно, проще говоря) с заданными значениями. Значений можно иметь сколько угодно, только это не могут быть математ. выражения и прочая подобная фигня (поправьте, если я не прав). Это должны быть уже просто заранее известные значения.
    default здесь определяет, что будет происходить при обнаружении неправильного условия. Точнее, если ни один из предложенных вариантов не подошел. Казалось бы, зачем такое надо, если мы используем только то, что нам точно известно, но, согласитесь, лучше всегда перестраховаться. В конце концов просто выбить в default'е
    exit("Unexpected error");

    Знаешь, честно скажу, что я не измерял микросекунды различий между этими функциями. Каждая из них хороша по-своему. if лучше читается и понимается в чужом коде (да и в своем, написанном ночью :D), ? : быстрее пишется, switch позволяет быстро пробежаться по заданным значениям. Выбирай сам, а пара микросекунд разницы тебе погоды не должны сделать, поверь.
    Ответ написан
    6 комментариев
  • Как сделать вывод таблицы с БД?

    eucalipt
    @eucalipt
    Самоделкин.
    Вам уже дали тут достаточное количество ответов, поэтому я не буду переписывать написанное, я просто посоветую Вам не начинать изучение (по вопросу и коду вижу, что Вы новичок в этом деле) с устаревшего. Пока не поздно, переходите на ООП и MySQLi.

    Это просто совет, прислушиваться к нему или нет - это уже Ваше дело.
    Ответ написан
  • Как в printf поставить "%"?

    eucalipt
    @eucalipt
    Самоделкин.
    А какой смысл им вообще пользоваться, этим printf? Если в php есть строковая интерполяция?
    Ответ написан
    Комментировать
  • Написал HTML+CSS, что дальше?

    eucalipt
    @eucalipt
    Самоделкин.
    Дочитал до "ряд cms", дальше не стал.

    Тут выбор только за тобой. Если тебе нужен тупо ограниченный функционал, позволяющий тупо "штамповать" статьи одна за одной и ты хочешь, чтобы все было "готовенькое"? Пожалуйста, твой выбор cms. А потом, когда тебе понадобится написать самому что-нибудь, там тебе уже cms не помогут. У них только ограниченный функционал.

    Вывод: забей на cms, нажать кнопку и "установить" сайт может даже обезьяна. А вот написать свой код, пусть с костылями, велосипедами и говнокодом, зато свой, это многого стоит.

    Если по делу - то практикуйся очень много в написании частей для своего сайта (ну, я про html и css, про js не забывай (как это сделал я)), а потом берись (или сейчас, просто все совмещай, так даже лучше, думаю) за серверную часть. Советую PHP. Отличные мануалы на оф сайте, много локализованной поддержки. Не гонись сразу за "алмазами", сразу придется начать с hello, world. Все приходит с практикой и опытом.
    Ответ написан
    Комментировать
  • Что изучать вместо JAVA?

    eucalipt
    @eucalipt
    Самоделкин.
    "В Web есть небольшой опыт. Работал с WordPress, Joomla, HTML, CSS."
    Я не думаю, что он вам поможет. Я конкретно про WordPress и Joomla.
    Имхо, нажать на кнопочку и установить (в буквальном же смысле, согласитесь) сайт может даже пенсионер. И тем более не вижу логики, вы собираетесь браться за webdev, но собираетесь "делать" сайты на WP и Joomla'х всякий? А смысл тогда вообще учить что-то? Можно ведь просто нажать на кнопку и установить сайт одним кликом!

    Если по делу, то переходите на web, только пишите все сами. В этом и есть весь смак - написать самому, вместо того, чтобы пользоваться готовым.
    Ответ написан
    1 комментарий