PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (81): В начало « ... 28 29 30 31 [32] 33 34 35 36 ... » В конец

> Найдено сообщений: 1209
evgenijj Отправлено: 30 Октября, 2007 - 14:36:41 • Тема: Не могу разобраться со скриптом, помогите если не трудно • Форум: Программирование на PHP

Ответов: 9
Просмотров: 2501
XopoIII пишет:

прости, но может есть какая нибуть программа для поиска синтаксических ошибок? а то что то 2500 строк смотреть чекнусь=(


1. Отступы
2. Редактор с подсветкой синтаксиса

evgenijj Отправлено: 30 Октября, 2007 - 13:44:23 • Тема: Не могу разобраться со скриптом, помогите если не трудно • Форум: Программирование на PHP

Ответов: 9
Просмотров: 2501
XopoIII пишет:
evgenijj
спасибо большое, посмотрел попробовал так как ты сказал, все прошло, но блин теперь выдает ошибку
Parse error: parse error, unexpected $end in T:homelocalhost3classesShop.php on line 2434

Тебе не говорили, что скобки надо закрывать? У тебя там около 10 скобок на закрыто.
evgenijj Отправлено: 30 Октября, 2007 - 12:53:53 • Тема: Не могу разобраться со скриптом, помогите если не трудно • Форум: Программирование на PHP

Ответов: 9
Просмотров: 2501
Возможно, тебе поможет отказ от 5-ой версии PHP и возврат к 4-ой

http://masterhost[dot]ru/support/faq[dot][dot].php5-mysql5/#php
evgenijj Отправлено: 30 Октября, 2007 - 09:53:36 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 683
Решать тебе. Просто админка слишком примитивная. Ты все равно скоро от нее уйдешь. Ведь для новостей тебе уже прошлось отойти от схемы "отдельная страница сайта->отдельная таблица БД". И опять повторюсь. Создавать для каждой страницы сайта отдельную таблицу -- не слишком удачная идея.

Я предлагаю отойти от этого, и для нескольких страниц (об авторе, Главная, Контакты) использовать одну таблицу. Ведь все эти таблицы (за исключением новостей) абсолютно одинаковые. Они предназначены, чтобы сохранять неструктурированную информацию (в отличие от новостей).

Давай назовем неструктурированную информацию "статья" (это условное название, обозвать ее можно как угодно). Для показа неструктурированной информации будем использовать модуль "articles". Таблица в БД, где мы будем хранить наши "статьи":
PHP:
скопировать код в буфер обмена
  1.  
  2. id_article | title               | body
  3. =============================================================================================
  4. 1          | Для кого этот сайт? | < p>Учебники, справочники и статьи для web-мастера:
  5.            |                     | HTML, CSS, JavaScript, PHP, SQL.</p> < p>На сайте
  6.            |                     | содержится много полезных материалов для web-мастеров...
  7. ----------------------------------------------------------------------------------------------
  8. 2          |Об авторе            | < p>Привет, меня зовут Вася Пупкин, а моего любимого
  9.            |                     | кота зовут Леопольд...
  10. ----------------------------------------------------------------------------------------------
  11. ...........|.....................|............................................................
  12.  

Помнишь нашу таблицу pages?
PHP:
скопировать код в буфер обмена
  1.  
  2.  id_page | name    | title                    | keywords | description | module   | settings
  3.  -------------------------------------------------------------------------------------------
  4.  1       |Главная  |Все для web-мастера       |..........|.............| articles | 1
  5.  2       |Новости  |Новости сайта             |..........|.............| news     | 10
  6.  3       |Каталог  |Каталог полезных программ |..........|.............| catalog  |.........
  7.  4       |Об авторе|Немного обо мне, любимом  |..........|.............| articles | 2
  8.  5       |Лента RSS|Новости computerra.ru     |..........|.............| rssreader|.........
  9.  ...........................................................................................
  10.  


Мы здесь говорим о том, что страница с id_page=1 будет показывать неструктурированную информацию (в нашей терминологии - статью) с id_article=1 (см. поле settings). На странице сайта с id_page=4 мы показываем статью id_article=2. Поле settings - универсальное, и может содержать разную информацию. Например, для страницы id_page=2 оно может содержать кол-во новостей, показываемых на одной странице (новостей может быть много, они все на помещаются на одной странице, и мы показываем по 10 новостей на страницу). Если таких параметров много, можно поместить в него и массив, использовав функцию serialize().
evgenijj Отправлено: 29 Октября, 2007 - 16:05:50 • Тема: Где путь к файлу возвращаемому из <input type=file>?? • Форум: HTML, Дизайн & CSS

Ответов: 21
Просмотров: 24922
ХОТТАБЫЧ пишет:
Улыбка ок! Вот только ты смотришь на это в свете аплоадинга, а он мне не нужен!


???

А, понял:
Цитата:

1. Скрипт №1 дает возможность пользователю выбрать файл, помещаем результат выбора в переменную, скажем, ФайлНэйм
2. Скрипт №1 загружает Скрипт №2 вручая ему переменную ФайлНэйм
3. Скрипт №2 чёта делает с переменной ФайлНэйм


Есть такая хорошая байка про слона в зоопарке. Висит перед вольерой слона табличка:
"Слон за один раз может съесть столько-то кг. того, столько-то кг. этого и т.п."
Удивленные посетители спрашивают у смотрителя: "Неужели действительно съест?"
А смотритель и отвечает: "Съесть-то он съесть, да кто-ж ему даст?"

Так и ты: кто-ж тебе даст?
evgenijj Отправлено: 29 Октября, 2007 - 15:57:25 • Тема: Где путь к файлу возвращаемому из <input type=file>?? • Форум: HTML, Дизайн & CSS

Ответов: 21
Просмотров: 24922
ХОТТАБЫЧ пишет:
evgenijj, я хочу загрузить этот файл в базу-данных



Тебе надо прочитать те ссылки, что тебе уже приводили.

Цитата:

Как же PHP обрабатывает multipart-формы? Получив файл, он сохраняет его во временном каталоге upload_tmp_dir, имя файла выбирается случайным образом. Затем он создает четыре переменных суперглобального массива $_FILES. Этот массив содержит информацию о загруженном файле.


Цитата:

После завершения работы скрипта, временный файл будет удален. Это означает, что мы должны его скопировать в другое место до завершения работы скрипта. То есть алгоритм работы сценария загрузки файла на сервер такой:

Если кнопка "Submit" нажата, то файл уже будет загружен на сервер и его имя будут в переменной $_FILES['uploadfile']['name']. В этом случае скрипт должен сразу скопировать файл с именем $_FILES['uploadfile']['tmp_name'] в какой-нибудь каталог (необходимы права на запись в этот каталог).
evgenijj Отправлено: 29 Октября, 2007 - 15:46:29 • Тема: Где путь к файлу возвращаемому из <input type=file>?? • Форум: HTML, Дизайн & CSS

Ответов: 21
Просмотров: 24922
Получить путь к файлу на компе пользователя можно. НО ЗАЧЕМ?!?!?!
PHP:
скопировать код в буфер обмена
  1.  
  2. <form action="script.php" method="post" enctype="multipart/form-data">
  3. <input type="file" name="upload" onChange="this.form.path.value=this.value">
  4. <input type="text" name="path">
  5. <input type="submit" name="btn" value="Go!">
  6. </form>
  7.  
evgenijj Отправлено: 29 Октября, 2007 - 15:19:26 • Тема: Не могу разобраться со скриптом, помогите если не трудно • Форум: Программирование на PHP

Ответов: 9
Просмотров: 2501
Я так понимаю, что вот это
PHP:
скопировать код в буфер обмена
  1.  
  2.  function get($objectId=null)
  3.  

метод класса. Перед вызовом метода класса надо создать объект. Ключевое слово $this используется для доступа к членам класса внутри класса. У тебя же внутри метода
PHP:
скопировать код в буфер обмена
  1.  
  2.  function get($objectId=null)
  3.  

создаются новые объекты:
PHP:
скопировать код в буфер обмена
  1.  
  2. $newShop = new RepairShop();
  3.  

и идет попытка переопределить $this (т.е. он будет ссылаться на другой объект).

Думаю, так делать нельзя:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. class someClass {
  4.   public $someVar = 123;
  5.  
  6.   public function someMethod() {
  7.     return $this->someVar;
  8.   }
  9. }
  10.  
  11. class anotherClass {
  12.   public $anotherVar = 456;
  13.  
  14.   public function anotherMethod() {
  15.     return $this->anotherVar;
  16.   }
  17. }
  18.  
  19. $first = new someClass();
  20. echo "someVar=".$first->someVar.'<br/>';
  21. echo "someMethod=".$first->someMethod().'<br/>';
  22.  
  23. $second = new anotherClass();
  24. echo "anotherVar=".$second->anotherVar.'<br/>';
  25. echo "anotherMethod=".$second->anotherMethod().'<br/>';
  26. ?>
  27.  

Результат:
someVar=123
someMethod=123
anotherVar=456
anotherMethod=456

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. class someClass {
  4.   public $someVar = 123;
  5.  
  6.   public function someMethod() {
  7.     return $this->someVar;
  8.   }
  9. }
  10.  
  11. class anotherClass {
  12.   public $anotherVar = 456;
  13.  
  14.   public function anotherMethod() {
  15.     $tmp = new someClass();
  16.     $this = $tmp;
  17.     return $this->anotherVar;
  18.   }
  19. }
  20.  
  21. $first = new someClass();
  22. echo "someVar=".$first->someVar.'<br/>';
  23. echo "someMethod=".$first->someMethod().'<br/>';
  24.  
  25. $second = new anotherClass();
  26. echo "someVar=".$second->anotherVar.'<br/>';
  27. echo "someMethod=".$second->anotherMethod().'<br/>';
  28. ?>
  29.  

Результат:
Fatal error: Cannot re-assign $this in C:/work/localhost/www/myClass.php on line 15
evgenijj Отправлено: 29 Октября, 2007 - 12:56:26 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 683
Ладно, идея понятна. Теперь о реализации.

Создаем таблицу pages

PHP:
скопировать код в буфер обмена
  1.  
  2. id_page | name    | title                    | keywords | description | module  | settings
  3. ------------------------------------------------------------------------------------------
  4. 1       |Главная  |Сайт ООО "Рога и копыта"  |..........|.............| articles|.........
  5. 2       |Новости  |Новости компании "Рога..."|..........|.............| news    |.........
  6. 3       |Каталог  |Каталог компании "Рога..."|..........|.............| catalog |.........
  7. ..........................................................................................
  8.  


Как показать конкретную страницу сайта? Для начала запрашиваем из БД информацию о конкретной странице:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if ( !isset( $_GET['page'] ) )
  4.   $page = 1;
  5. else
  6.   $page = (int)$_GET['page'];
  7. $query = "SELECT * FROM pages WHERE id_page=".$page;
  8. $res = mysql_query( $query );
  9. // Если запрашиваемая страница не существует - показываем главную
  10. if ( mysql_num_rows( $res ) == 0 )
  11. {
  12.   $page = 1;
  13.   $query = "SELECT * FROM pages WHERE id_page=".$page;
  14.   $res = mysql_query( $query );
  15. }
  16. // Информация о текущей странице
  17. $current = mysql_fetch_array( $res );
  18. // Подключаем модуль, отвечающий за показ этой страницы
  19. require './modules/'.$current['module'].'.php';
  20. // Вызываем функцию, которая вернет нам html основного содержимого страницы
  21. $content = get_content( $page );
  22. // Вызываем функцию, которая нам вернет главное меню сайта
  23. $menu = get_menu();
  24. // Считываем в переменную содержимое шаблона
  25. $html = file_get_contents( './templates/'.$current['module'].'.html' );
  26. // Заменяем в шаблоне вставки вида {menu}, {content}, ...
  27. $html = str_replace( '{menu}', $menu, $html );
  28. $html = str_replace( '{content}', $content, $html );
  29. $html = str_replace( '{title}', $current['title'], $html );
  30. $html = str_replace( '{keywords}', $current['keywords'], $html );
  31. $html = str_replace( '{description}', $current['description'], $html );
  32. // Выводим содержимое в браузер
  33. echo $html;
  34. ?>
  35.  


Как у нас выглядят файлы модулей? Главное условие - он должен содержать функцию get_content(). Для примера - файл news.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. function get_content( $page )
  4. {
  5.   $html = '';
  6.   // Если передан ID конкретной новости - выводим затребованную новость
  7.   if ( isset( $_GET['id_news'] ) )
  8.   {
  9.     $id_news = (int)$_GET['id_news'];
  10.         $query = "SELECT title, body FROM news WHERE id_news=".$id_news;
  11.         $res = mysql_query( $query );
  12.         if ( mysql_num_rows( $res ) == 0 )
  13.         {
  14.           header( 'Location: index.php' );
  15.           die();
  16.         }
  17.         $news = mysql_fetch_array( $res );
  18.         $html = $html.'<h1>'.$news['title'].'</h1>';
  19.         $html = $html.'<div>'.$news['body'].'</div>';
  20.   }
  21.   else // иначе выводим список новостей
  22.   {
  23.     $query = "SELECT id_news, title FROM news WHERE 1";
  24.         $res = mysql_query( $query );
  25.         $html = $html.'<ul>';
  26.         while( $news = mysql_fetch_array( $res ) )
  27.         {
  28.           $html = $html.'<li><a href="index.php?page='.$page.'&id_news='.$news['id_news'].'">'.$news['title'].'</a></li>';
  29.         }
  30.         $html = $html.'</ul>';
  31.   }
  32.   return $html;
  33. }
  34. ?>
  35.  


Теперь о том, как выглядит шаблон:

PHP:
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>{title}</title>
  5. <meta name="description" content='{description}'>
  6. <meta name="keywords" content='{keywords}'>
  7. </head>
  8. <body>
  9. <div>{menu}</div>
  10. {content}
  11. </body>
  12. </html>
  13.  


Ну а написать функцию get_menu() и остальные модули сайта - это тебе в качестве домашнего задания.
evgenijj Отправлено: 28 Октября, 2007 - 17:54:27 • Тема: Загрузка изображений на сайт • Форум: Программирование на PHP

Ответов: 27
Просмотров: 1444
http://www[dot]webmasterschool[dot]ru/ar[dot][dot][dot]es/article36.php

Andrey5555 пишет:

Название не должно превышать 25 символов

http://php.su/functions/?strlen
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( strlen( $_FILES['uploadfile']['name'] ) > 25 ) die( 'Слишком длинное имя' );
  3.  

Andrey5555 пишет:

Можно вводить русский и анлийские буквы, пробел и тире.

Регулярные выражения
Andrey5555 пишет:

при этом размер файла не должен превышать 5 кб и быть форматов .gif, .jpg.

$_FILES['uploadfile']['size'] -- размер файла
Расширение файла можно получить с использованием функции strrchr
PHP:
скопировать код в буфер обмена
  1.  
  2. $ext = strrchr( $_FILES['uploadfile']['name'], "." );
  3. $extensions = array( ".jpg", ".gif", ".bmp", ".png" );
  4. if ( !in_array( $ext, $extensions ) ) die( 'Недопустимое расширение файла' );
  5.  
evgenijj Отправлено: 28 Октября, 2007 - 17:41:23 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 683
И еще раз:
Цитата:
Подводя итог -- ты расскажи, что надо сделать, а мы тебе расскажем, как это лучше реализовать. Глядишь, и не понадобится "защита для зубов".


Цитата:
ВОТ СЮДА НАДО ВТЫКНУТЬ ПАРАМЕТРЫ ИЗ ПОЛЯ NAME

Уверен, что это тебе не нужно. Очень неудобно правой рукой чесать левое ухо.

Тяжело до тебя доходит. Попробую объяснить. Ты используешь микроскоп в качестве молотка. В БД у тебя шесть таблиц. Каждая таблица содержит ОДНУ строку. Совершенно ясно, что бьла допущена ошибка в проектировании. Но ты не хочешь рассказать, КАКАЯ задача стоит, чтобы мы подсказали тебе решение.

Можно сделать предположение, что каждая таблица хранит информацию об отдельной странице сайта. Но в этом случае можно обойтись одной таблицей. И редактировать отдельные записи (страницы) вот так

http://forum.php.su/topic.php?fo...=28&topic=34

Работа с MySQL средствами PHP
http://php.su/articles/?cat=phpdb&page=025
http://www.php.su/mysql/?functions
http://www.php.su/functions/?cat=mysql
evgenijj Отправлено: 27 Октября, 2007 - 06:21:03 • Тема: Передача из форм в MySQL • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 128
А давай ты зайдешь на Yandex или Google и наберешь в адресной строке
"PHP конкатенация строк"
Потом внимательно изучишь материал, и сам ответишь на свой вопрос.

Я ответить затрудняюсь, потому что вот это
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = ("DELETE FROM `Info` WHERE `MAN_NO` IN" (.$_POST['text4'].));
  3.  

полная фигня.

Пример:
PHP:
скопировать код в буфер обмена
  1.  
  2. // я объявляю целочисленную переменную myInt
  3. $myInt = 1000;
  4. // я объявляю строковую переменную "Терминатор T-"
  5. $myString =  "Терминатор T-";
  6. // путем неявного приведения типов я привожу целочисленную переменную 1000
  7. // к строковому типу и "склеиваю" строки "Терминатор T-" и "1000"
  8. $str = $myString.$myInt;
  9. // получаю на выходе строку "Терминатор T-1000"
  10. echo $str;
  11.  
evgenijj Отправлено: 27 Октября, 2007 - 06:11:51 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 683
Еще раз:
Цитата:
Подводя итог -- ты расскажи, что надо сделать, а мы тебе расскажем, как это лучше реализовать. Глядишь, и не понадобится "защита для зубов".


Цитата:
ВОТ СЮДА НАДО ВТЫКНУТЬ ПАРАМЕТРЫ ИЗ ПОЛЯ NAME

Уверен, что это тебе не нужно. Очень неудобно правой рукой чесать левое ухо.
evgenijj Отправлено: 26 Октября, 2007 - 16:58:08 • Тема: Генерация • Форум: Программирование на PHP

Ответов: 4
Просмотров: 303
Andrey5555 пишет:
Прочел, спасибо. Как можно удалить и редактировать пользователя? Пользователи выводяться в таблице, а возле каждого пользователя крестик (удаление) или карандашик (редактирование). Как применить именно к этому пользователю?


http://forum.php.su/topic.php?fo...=28&topic=34
evgenijj Отправлено: 26 Октября, 2007 - 16:46:02 • Тема: Передача из форм в MySQL • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 128
Customer - строка, ее надо заключать в кавычки.
PHP:
скопировать код в буфер обмена
  1.  
  2.  $query = "INSERT INTO `Info` ( `NPP` , `CURDATE` , `DATE` ,  
  3.  `CUSTOMER` , `MAN_NO` , `ORD_NO` , `CUST_NO` , `DATE_EX` )  
  4. VALUES ('6', CURDATE( ) , '2007-10-16', '".$_POST['text1']."', ".$_POST['text2'].",  
  5.  '24555', '214456',".$_POST['text3'].")";
  6.  

Страниц (81): В начало « ... 28 29 30 31 [32] 33 34 35 36 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB