1 Востаннє редагувалося Logans (20.10.2014 19: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? Можливо в когось є поради?  :)

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds

2 Востаннє редагувалося VTrim (21.10.2014 00: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 17: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?

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds

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. Безмежно вдячний вам за допомогу)

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds

9

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

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

10

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

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

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

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

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

11

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

koala написав:

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

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

funivan написав:

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

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

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

Типу ось це?


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

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

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds

12

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

Logans написав:

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

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

Logans написав:


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

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

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

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

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

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

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

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

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

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

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

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds

14

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

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

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

15

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

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

=)

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

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

funivan написав:

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

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

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

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

VTrim написав:

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

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


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

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds

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

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds