1 Востаннє редагувалося Logans (20.10.2014 18:48:08)

Тема: Дипломний проект

Добрий вечір.

Зараз пишу дипломний проект - сайт на php та 2 додатки на Android.

Останнім часом засів за сайт. Все доволі просто - шаблони Bootstrap та декілька PHP класів.
Взагалі мої знання PHP не перевищують знання створення класу, можливо ще деякі деталі знаю, але суть не в цьому.

Працюю Намагаюсь працювати з сервісом github.com. Тому ось саме проект.

Тепер стосовно створення теми.

В інструментарії маю:
  1. phpStorm 8.0.1;
  2. LAMP;
  3. phpMyAdmin.

Під час написання коду, який повинен виконувати певні функції виникли деякі проблеми, а саме:
  1. На ОС Windows, коли ставлю проект на Denwer - постійно вискакують помилки на ф-ію header("Location: url") (прописана в assets/Classes/Check.php, використовується в index.php - при натисканні на кнопку реєстрації/входу);

  2. Недавно (сьогодні 3 години тому) все працювало без "проблем", але після того, як я переміщую файл app_config.php в іншу папку (від класів, які знаходяться в Classes), через Дебагер показує, що клас Database (assets/Classes/Database.php), який саме використовує файл app_config.php, не бачить цей файл;

  3. Дані (кирилицю), які я записую в базу при реєстрації (firstName - Ім’я) постійно записується у вигляді якоїсь фігні: Олег. База є в моєму репозиторії. База, таблиці та поля в таблицях створені з кодуванням utf8_general_ci. Кодування файлів проекту через phpStorm показує utf8, але через notepad++ - utf8 без BOM, при зміні кодування, "краще" не стає.

Прошу, по можливості, допомогти з цими 3-ма питаннями.

P.S. З структуризацією файлів проекту все дуже погано, знаю... Зараз якраз починаю вивчати практичну сторону MVC, але під час атестації (в коледжі) трохи мало часу.
P.S.S. З задоволенням вислухаю вашу критику та побажання, якщо такі є.
P.S.S.S. Також є таке питання: Як правильно формулювати комміти для github? Можливо в когось є поради?  :)

2 Востаннє редагувалося VTrim (20.10.2014 23:33:06)

Re: Дипломний проект

1. Помилки з header("Location: url") через те,що це є заголовок і перед ним нічого не має бути.
Детальніше тут http://cannot-modify-header-information.ru/

2. Так перевірте чи правильно прописаний новий шлях до app_config.php в assets/Classes/Database.php

3. В файлі підключення до бд виконуйте наступні запити:

SET charset utf8
SET names utf8
SET character_set_client="utf8"
SET character_set_connection="utf8"
SET character_set_result="utf8"

І взагалі Denwer з глюками (проблеми з кодуванням в бд та хедерами) ,тому раджу щось з цього: OpenServer,EleanorServer,XAMPP

Подякували: Logans1

3

Re: Дипломний проект

постійно вискакують помилки на ф-ію header("Location: url")

які саме помилки. Щось типу "хедер уже був відправлений" ?

2. змінішть шлях до файлу

P.S.S.S. Також є таке питання: Як правильно формулювати комміти для github? Можливо в когось є поради?

називайте те що робили і робіть коміт. на перших етапах це не дуже має значення ;)

Подякували: Logans1

4 Востаннє редагувалося Logans (21.10.2014 16:49:51)

Re: Дипломний проект

VTrim написав:

1. Помилки з header("Location: url") через те,що це є заголовок і перед ним нічого не має бути.
Детальніше тут http://cannot-modify-header-information.ru/

2. Так перевірте чи правильно прописаний новий шлях до app_config.php в assets/Classes/Database.php

3. В файлі підключення до бд виконуйте наступні запити:

SET charset utf8
SET names utf8
SET character_set_client="utf8"
SET character_set_connection="utf8"
SET character_set_result="utf8"

І взагалі Denwer з глюками (проблеми з кодуванням в бд та хедерами) ,тому раджу щось з цього: OpenServer,EleanorServer,XAMPP

2. Шлях прописаний правильно, phpStorm навіть показує вміст папки, типу при Ctrl+Space;
3. Denwer на Windows стоїть, а весь проект пишеться на Linux.

funivan написав:

постійно вискакують помилки на ф-ію header("Location: url")

які саме помилки. Щось типу "хедер уже був відправлений" ?

2. змінішть шлях до файлу

P.S.S.S. Також є таке питання: Як правильно формулювати комміти для github? Можливо в когось є поради?

називайте те що робили і робіть коміт. на перших етапах це не дуже має значення ;)

Помилка

Прихований текст

http://joxi.ru/gV2VvWz5sZOa2v.jpg
Номер стрічки не правильний, тому що це скрін з файлу старої версії проекту. Але воно кидає на ф-ію header, що в старому, що в новому проекті.

2. Відповідь вище)

Просто виникли проблеми в формулюванні, я сам англійською володію на рівні читання тех. документації, чи перегляду фільмів в оригіналі, а сам думку і зроблене, по суті, висловити не можу :(



А чи є взагалі якійсь аналоги ф-ії header, або як можна перейти на іншу сторінку в php?

5

Re: Дипломний проект

Переадресація в HTML

$url = 'http://replace.org.ua';
echo '<meta http-equiv="refresh" content="0;URL='.$url.'" />';

Переадресація в JS

$url = 'http://replace.org.ua';
echo '<script language="JavaScript">window.location.href = "'.$url.'"</script>';
Подякували: Logans1

6

Re: Дипломний проект

Якщо володієте англійською на рівні читання тех доків, то це вам дуже допоможе. Вписуйте ключові слова (частини тесту) помилок в подвійних лапках в пошукові машини і буде вам щастя.

P.S. Ваша проблема дуже, дуже поширена серед новачків, інфи для вирішення цієї проблеми не менше...

Подякували: Logans1

7

Re: Дипломний проект

Давайте будемо по кроках. У вас дійсно поширена проблема з header. Постарайтесь перекласти а дальше якщо не вийде - погугліть. якщо ж там нічого не вийде  - напишіть сюди скажемо що і де дивитись ;)

Після цієї проблеми можна перейти до наступної ;)

Подякували: Logans1

8

Re: Дипломний проект

funivan написав:

Давайте будемо по кроках. У вас дійсно поширена проблема з header. Постарайтесь перекласти а дальше якщо не вийде - погугліть. якщо ж там нічого не вийде  - напишіть сюди скажемо що і де дивитись ;)

Після цієї проблеми можна перейти до наступної ;)

З header вже розібрався - просто не використовую його)
Взяв собі на "озброєння" методи переадресації в html і js, які описав вище VTrim.

З кодуванням також розібрався, виконую запити, які також описав VTrim.

Залишилась проблема з app_config, але скоріш за все я також з нею розібрався, розмістивши ту одну ф-ію в клас database і прямо в класі вже її і використовую, мені здається так нормальніше, тому що вона все-одно тільки 1 раз використовується.

Можливо з слів не так все зрозуміло, але ви можете це все переглянути в мене на github.

P.S. Безмежно вдячний вам за допомогу)

9

Re: Дипломний проект

Про header, в двох словах: заголовки мають надсилатися до будь-чого іншого. Повідомлення про помилку (чи попередження) - це також будь-що.

10

Re: Дипломний проект

З header вже розібрався - просто не використовую його)
Взяв собі на "озброєння" методи переадресації в html і js, які описав вище VTrim.

Я б не рекомендував вам іти цим шляхом, краще все таки через header ;)

Код поглянув) Дам пораду: використовуйте автолодер ;)

Подякували: Replace1

11

Re: Дипломний проект

koala написав:

Про header, в двох словах: заголовки мають надсилатися до будь-чого іншого. Повідомлення про помилку (чи попередження) - це також будь-що.

В купі я зрозумів, що ви саме написали, але що ви мали на увазі до мене не дійшло  :) 

funivan написав:

З header вже розібрався - просто не використовую його)
Взяв собі на "озброєння" методи переадресації в html і js, які описав вище VTrim.

Я б не рекомендував вам іти цим шляхом, краще все таки через header ;)

Код поглянув) Дам пораду: використовуйте автолодер ;)

Типу ось це?


Ще таке питання.

Якщо ж в мене на ноуті (з Linux'м та LAMP'м) все працює нормально, то отже віддалений сервер, який, в майбутньому я можливо буду використовувати, має схожі характеристики (ну типу Linux'ву базу) буде відображати сторінку для користувача нормально?

12

Re: Дипломний проект

Logans написав:

В купі я зрозумів, що ви саме написали, але що ви мали на увазі до мене не дійшло  :)

Якщо сервер відправляє повідомлення про помилку до хедерів, то хедери він вже не відправить - так ясно?

Logans написав:


Ще таке питання.

Якщо ж в мене на ноуті (з Linux'м та LAMP'м) все працює нормально, то отже віддалений сервер, який, в майбутньому я можливо буду використовувати, має схожі характеристики (ну типу Linux'ву базу) буде відображати сторінку для користувача нормально?

Сторінку відображає браузер, а не сервер; а от видавати сервер її буде нормально, якщо налаштування AMP там такі самі. Найбільше проблем зазвичай з правами на файли і теки, будьте обережні в цьому плані.

Подякували: Logans1

13 Востаннє редагувалося Logans (22.10.2014 21:42:40)

Re: Дипломний проект

Добрий вечір.

Оце почав продовжувати роботу над проектом і знову вилізла проблема №2.

Тепер в мене є файлик Redirect.php, в якому зберігаються 3 ф-ії з різними реалізаціями переходу по сторінкам (php, html і js - реалізації).
Також в мене є клас CheckClass (CheckClass.php) в якому є функція, яка в свою чергу викликає функції редіректу.

Я вирішив трохи розкидати файли (класи окремо, іншу єрунду окремо), перенісши та перепідключивши файлик Redirect.php, клас CheckClass перестав бачити ф-ії цього файлу.

Взагалі не розумію через що це, IDE, можливо я криво десь щось створив?  :(

14

Re: Дипломний проект

Взагалі не розумію через що це, IDE, можливо я криво десь щось створив?  :(

так
в першу чергу - увімкніть вивід помилок
У помилці буде така штука "неможливо знайти файл" - висновок - невірний шлях ;)
;)

15

Re: Дипломний проект

При підключенні файлів,користуєтесь $_SERVER['DOCUMENT_ROOT'] ?

16 Востаннє редагувалося Logans (23.10.2014 17:08:36)

Re: Дипломний проект

funivan написав:

Взагалі не розумію через що це, IDE, можливо я криво десь щось створив?  :(

так
в першу чергу - увімкніть вивід помилок
У помилці буде така штука "неможливо знайти файл" - висновок - невірний шлях ;)
;)

Ну шлях там точно можливо знайти, тому що IDE показує, що шлях повністю вірний.

Читав якусь статтю і вирішив через термінал запустити, помилок не знайшло)

VTrim написав:

При підключенні файлів,користуєтесь $_SERVER['DOCUMENT_ROOT'] ?

Нєа. Ну наскільки я зрозумів - це аналогічне __DIR__?


Вирішив проблему, але, як завжи, не самим кращим велосипедом, як на мене.
include_once(__DIR__ . "/../Redirect.php");

17

Re: Дипломний проект

Ні,не аналогічне.

18

Re: Дипломний проект

Ну шлях там точно можливо знайти, тому що IDE показує, що шлях повністю вірний.

Яка у вас помилка була? Якщо IDE показує що файл можна підключити це ще не означає що все у вас буде працювати ;)

Вирішив проблему, але, як завжи, не самим кращим велосипедом, як на мене.
include_once(__DIR__ . "/../Redirect.php");

фактично це вірний спосіб. Але краще все ж таки autoloader =)

19

Re: Дипломний проект

funivan написав:

Ну шлях там точно можливо знайти, тому що IDE показує, що шлях повністю вірний.

Яка у вас помилка була? Якщо IDE показує що файл можна підключити це ще не означає що все у вас буде працювати ;)

Вирішив проблему, але, як завжи, не самим кращим велосипедом, як на мене.
include_once(__DIR__ . "/../Redirect.php");

фактично це вірний спосіб. Але краще все ж таки autoloader =)


Помилки:

http://s27.postimg.org/y3l4xuakz/020.png

З autoloader'м буду трохи пізніше розбиратися, бо хочу створити загальну ф-ію, для будь-якого файлу шляху до файлу. Типу, щоб з будь-якої папки працювала, а знайти таку не можу.