PHP.SU

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

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

> Найдено сообщений: 1209
evgenijj Отправлено: 24 Октября, 2007 - 16:11:09 • Тема: Удалени параметров из ссылки • Форум: Программирование на PHP

Ответов: 4
Просмотров: 299
Ну как-то так
PHP:
скопировать код в буфер обмена
  1.  
  2. ...........................................................
  3. if ( !isset( $_GET['action'] ) $_GET['action'] = 'default';
  4. $actions = array( 'default', 'registration', 'regForm', 'login', 'loginForm', 'remind', 'remindForm' );
  5.  
  6. if ( !in_array( $_GET['action'], $actions ) ) $_GET['action'] = 'default';
  7.  
  8. switch( $_GET['action'] )
  9. {
  10.   case 'loginForm':
  11.     // подключаем файл содержащий форму для входа
  12.     break;
  13.   case 'login':
  14.     // подключаем файл для проверки логина и пароля
  15.     break;
  16.   case 'regForm':
  17.     // подключаем файл содержащий форму для регистрации
  18.     break;
  19.   case 'registration':
  20.     // подключаем файл для регистрации нового пользователя
  21.     break;
  22.   .........................
  23.   default:
  24.     // Что-то по умолчанию
  25. }
  26. .........................................................
  27.  


В твоем случае в URL будет то, что ты там сам задашь. Если ты отправляешь данные методом POST, то в URL вот этого index.php?registr= не будет. Это там может появиться, только если ты сам пропишешь в атрибуте action тега form
action="index.php?registr="
Так не пиши! Если данные отправляются GET, не надо создавать элемент формы с именем registr
evgenijj Отправлено: 24 Октября, 2007 - 14:13:35 • Тема: Удалени параметров из ссылки • Форум: Программирование на PHP

Ответов: 4
Просмотров: 299
Ничего не понял. Попробуй еще раз.
evgenijj Отправлено: 24 Октября, 2007 - 10:02:36 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 685
Я тебе одну умную вещь скажу... Только ты не обижайся. Знаешь сколько сюда приходит таких как ты? И каждый -- изобретатель велосипеда. Вместо того, чтобы прийти и сказать -- мол, нужен велосипед, они приходят с такими просьбами, что не знаешь -- то ли плакать, то ли смеяться.

Вот ты очередной изобретатель. Изобрел велосипед. Педали надо крутить руками, а руль держать зубами. А теперь приходишь на форум и задаешь вопрос:

"А как мне реализовать защиту для зубов -- на каждой кочке то два, а то и три зуба выбивает. Устал к стоматологу бегать."

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

Список всех таблиц в БД
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query('SHOW TABLES');
  3. while ( $row = mysql_fetch_row($result) )
  4. {
  5.     echo $row[0] . '<br/>';
  6. }
  7.  

Если одну таблицу нужно пропустить
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query('SHOW TABLES');
  3. while ( $row = mysql_fetch_row($result) )
  4. {
  5.     if ( $row[0] == 'test3' ) continue;
  6.     echo $row[0] . '<br/>';
  7. }
  8.  

Если нужно пропустить несколько таблиц - используй функцию
http://php.su/functions/?in-array
evgenijj Отправлено: 23 Октября, 2007 - 21:25:37 • Тема: Сортировка таблицы по столбцам • Форум: JavaScript & VBScript

Ответов: 5
Просмотров: 6528
Есть у меня заветная ссылочка - сортировка столбцов в таблице средствами JavaScript. От сердца отрываю Улыбка
http://htmlcoder[dot]visions[dot]ru/JavaScript/?22

P.S.
Цитата:

...я же не профессионал, я только учусь, при том. что я не просто изучаю php, а пытаюсь вникнуть в азы программирования вообще - нельзя сказать, что это легко...

Никто и не говорил, что будет легко...
http://phpfaq[dot]ru/
evgenijj Отправлено: 23 Октября, 2007 - 09:52:51 • Тема: Оформление вывода информации из БД • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 81
Как-то странно ты решаешь задачу. Здесь в общем-то три таблицы:
onduty
PHP:
скопировать код в буфер обмена
  1.  
  2. date     | name           | category_id | subcategory_id
  3. --------------------------------------------------------
  4. 01.10.07 | Иванов И.      | 1           | 1
  5. 01.10.07 | Сидоров С.     | 1           | 2
  6. 01.10.07 | Петров П.      | 1           | 3
  7. 01.10.07 | Максимов М.    | 1           | 4
  8. 02.10.07 | Иванов И.      | 2           | 1
  9. 02.10.07 | Сидоров С.     | 2           | 2
  10. 02.10.07 | Петров П.      | 2           | 3
  11. 02.10.07 | Максимов М.    | 2           | 4
  12.  

categories
PHP:
скопировать код в буфер обмена
  1.  
  2. category_id | name
  3. ------------------------------------
  4. 1           | Дежурство на проходной
  5. 2           | Дежурство на кухне
  6. 3           | Дежурство еще где-то
  7.  

subcategories
PHP:
скопировать код в буфер обмена
  1.  
  2. subcategory_id | name
  3. -------------------------------------
  4. 1              | Ответственный (Утро)
  5. 2              | Помощник (Утро)
  6. 3              | Ответственный (Вечер)
  7. 4              | Помощник (Вечер)
  8.  


Кто дежурит на кухне 02.10.07?
SELECT name FROM onduty WHERE date='02.10.07' AND category_id=2
Кто дежурит на проходной вечером 01.10.07?
SELECT name FROM onduty WHERE date='01.10.07' AND category_id=1 AND subcategory_id IN (3, 4);
Кто помошник дежурного по кухне 01.10.07?
SELECT name FROM onduty WHERE date='01.10.07' AND category_id=2 AND subcategory_id=4
evgenijj Отправлено: 19 Октября, 2007 - 14:40:08 • Тема: Постраничная новигация • Форум: Обсуждение статей

Ответов: 38
Просмотров: 38114
EuGen пишет:
и вот поэтому то мне и хочется, чтобы портал был еще лучше.


Мне тоже, потому как я считаю его лучшим русскоязычным сайтом, посвященном PHP.

valenok пишет:
А мне интересно, когда иссякнет срок годности домена, нас проплатят?


Хороший вопрос... Самому интересно.

Цитата:

Не подскажите где и что нужно изменить.

У меня есть вариант этого скрипта -- с изменениями и дополнениями. Надеюсь, тебя устроит.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. include_once( 'header.php' );
  5.  
  6. define( 'USERS_ON_PAGE', 20 );
  7.  
  8. // Выбираем из БД количество пользователей - это нужно для
  9. // построения постраничной навигации
  10. $query = "SELECT COUNT(*) FROM ".TABLE_USERS." WHERE 1";
  11. $res = mysql_query( $query );
  12. $total = mysql_result( $res, 0, 0 );
  13.    
  14. // Проверяем передан ли номер текущей страницы (постраничная навигация)
  15. if ( isset($_GET['page']) )
  16. {
  17.     $page = (int)$_GET['page'];
  18.     if ( $page < 1 ) $page = 1;
  19. }
  20. else
  21. {
  22.     $page = 1;
  23. }
  24.  
  25. // Число страниц списка пользователей (постраничная навигация)
  26. $cnt_pages = ceil( $total / USERS_ON_PAGE );
  27. if ( $page > $cnt_pages ) $page = $cnt_pages;
  28. // Начальная позиция (постраничная навигация)
  29. $start = ( $page - 1 ) * USERS_ON_PAGE;
  30.  
  31. $query = "SELECT id, login, www, icq
  32.          FROM ".TABLE_USERS."
  33.          WHERE 1 ORDER BY id ASC LIMIT ".$start.", ".USERS_ON_PAGE;
  34. $res = mysql_query( $query );
  35.  
  36. // Выводим "шапку" таблицы
  37. echo '<table border="1">'."\n";
  38. echo '<tr>'."\\n";
  39. echo '<th>Имя</th>'."\\n";
  40. echo '<th>E-mail</th>'."\\n";
  41. echo '<th>WWW</th>'."\\n";
  42. echo '<th>ICQ</th>'."\\n";
  43. echo '</tr>'."\\n";
  44.  
  45. while( $user = mysql_fetch_array( $res ) )
  46. {
  47.  
  48.     echo '<tr>'."\n";
  49.     echo '<td><a href="userInfo.php?id='.$user['id'].'">'.$user['login'].'</a></td>'."\\n";
  50.     echo '<td><a href="sendMessage.php?id='.$user['id'].'">Написать</a></td>'."\\n";
  51.     if ( !empty( $user['www'] ) )
  52.         echo '<td><a href="'.$user['www'].'" target="_blank">'.$user['www'].'</td>'."\\n";
  53.     else
  54.         echo '<td>&nbsp;</td>'."\\n";
  55.     if ( !empty( $user['icq'] ) )
  56.         echo '<td>'.$user['icq'].'</td>'."\\n";
  57.     else
  58.         echo '<td>&nbsp;</td>'."\\n";  
  59.     echo '</tr>'."\\n";
  60. }
  61.  
  62. echo '</table>'."\\n";
  63.  
  64. // Строим постраничную навигацию
  65. if ( $cnt_pages > 1 )
  66. {
  67.     echo '<div>&nbsp;Страницы: ';
  68.     // Проверяем нужна ли стрелка "В начало"
  69.     if ( $page > 3 )
  70.         $startpage = '<a href="usersList?page=1"><<</a> ... ';
  71.     else
  72.         $startpage = '';
  73.     // Проверяем нужна ли стрелка "В конец"
  74.     if ( $page < ($cnt_pages - 2) )
  75.         $endpage = ' ... <a href="usersList.php?page='.$cnt_pages.'">>></a>';
  76.     else
  77.         $endpage = '';
  78.  
  79.     // Находим две ближайшие станицы с обоих краев, если они есть
  80.     if ( $page - 2 > 0 )
  81.         $page2left = ' <a href="usersList.php?page='.($page - 2).'">'.($page - 2).'</a> | ';
  82.     else
  83.         $page2left = '';
  84.     if ( $page - 1 > 0 )
  85.         $page1left = ' <a href="usersList.php?page='.($page - 1).'">'.($page - 1).'</a> | ';
  86.     else
  87.         $page1left = '';
  88.     if ( $page + 2 <= $cnt_pages )
  89.         $page2right = ' | <a href="usersList.php?page='.($page + 2).'">'.($page + 2).'</a>';
  90.     else
  91.         $page2right = '';
  92.     if ( $page + 1 <= $cnt_pages )
  93.         $page1right = ' | <a href="usersList.php?page='.($page + 1).'">'.($page + 1).'</a>';
  94.     else
  95.         $page1right = '';
  96.  
  97.     // Выводим меню
  98.     echo $startpage.$page2left.$page1left.'<strong>'.$page.'</strong>'.$page1right.$page2right.$endpage."\n";
  99.  
  100.     echo '</div>'."\\n";
  101. }
  102.  
  103. include_once( 'footer.php' );
  104.  
  105. ?>
  106.  



evgenijj Отправлено: 18 Октября, 2007 - 14:33:19 • Тема: Открывающие теги • Форум: Программирование на PHP

Ответов: 3
Просмотров: 276
В последних версиях PHP короткие теги

по умолчанию отключены в php.ini и не рекомендуются. В 6-ой версии PHP от поддержки ASP-тегов <% ... %> отказались, но теги

пока сохранены.
evgenijj Отправлено: 18 Октября, 2007 - 09:02:56 • Тема: Хранимые процедуры • Форум: SQL и Архитектура БД

Ответов: 10
Просмотров: 116
Похоже, тебе будет нужен PHP5.

http://php[dot]ru/forum/viewtopic.php?t=3950
http://www[dot]sql[dot]ru/forum/actualth[dot][dot][dot][dot]aspx?tid=281319
evgenijj Отправлено: 17 Октября, 2007 - 21:35:50 • Тема: Функция проверки и инклюдинга файла. Нужна помощь • Форум: Программирование на PHP

Ответов: 14
Просмотров: 1054


Поскольку include вызывается из тела функции, то код из файла $file будет вставлен и выполнен внутри функции. Т.е. переменная $temp, оределенная в файле 1.php будет видна только внутри функции

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  //Функция инклюдинга
  4.  function inc($file){
  5.         if(file_exists($file)){
  6.           include($file);
  7.          echo $temp;
  8.         } else {
  9.           die("<b>Include Error:</b> file ".$file." not found");
  10.         }
  11.  }
  12.  inc('1.php');
  13.  echo $temp;
  14. ?>
  15.  


Результат
PHP:
скопировать код в буфер обмена
  1.  
  2. Вывести!
  3. Notice: Undefined variable: temp in D:/work/localhost/www/include.php on line 12
  4.  
evgenijj Отправлено: 17 Октября, 2007 - 14:02:20 • Тема: Отправка письма функ. mail() - немогу импортировать переменные • Форум: Программирование на PHP

Ответов: 38
Просмотров: 2353
wmz38 пишет:
попробовал и мне пишет невозможно передать массив.. чето на подобии

Типа, чето намудрил.

P.S. Какой вопрос, такой и ответ. Нужен ответ - полное сообщение об ошибке.
evgenijj Отправлено: 17 Октября, 2007 - 12:46:31 • Тема: Fatal error: require_once • Форум: Apache и другие веб-серверы

Ответов: 5
Просмотров: 1548
Ты меня спрашиваешь? Я даже понятия не имею, что за конверторы, что они там конвертят...
evgenijj Отправлено: 17 Октября, 2007 - 12:27:54 • Тема: Fatal error: require_once • Форум: Apache и другие веб-серверы

Ответов: 5
Просмотров: 1548
Скрипт index.php пытается подключить файл init.php, который находится уровнем выше (в родительской директории) и не находит его там.
evgenijj Отправлено: 17 Октября, 2007 - 12:15:37 • Тема: как сделать поиск по регулярным выражениям чтобы строка не включала не один символ из группы • Форум: Регулярные выражения

Ответов: 1
Просмотров: 183
PHP:
скопировать код в буфер обмена
  1.  
  2. $names = array('sn_th_7_th.jpg', 'rk_8_th.jpg', '_th_53.jpg', '53_th.jpg', 'tiffani3.jpg', 'tiffani3_th.jpg');
  3. foreach( $names as $name )
  4. {
  5.   if ( preg_match( "#^[^.]+(?<!_th)\\.jpg$#", $name ) )
  6.     echo $name.' подходит<br/>';
  7.   else
  8.     echo $name.' не подходит<br/>';
  9. }
  10.  


Но мне думается, проще было обойтись поиском подстроки "_th.jpg"
evgenijj Отправлено: 16 Октября, 2007 - 19:28:51 • Тема: Постраничная новигация • Форум: Обсуждение статей

Ответов: 38
Просмотров: 38114
EuGen пишет:

К администраторам портала: это же "лицо" сайта, именно из этого складывается мнение пользователей о полезности данного ресурса. Это хорошо, что тут есть такие, как valenok - они объяснят юзерам что и где "не так", но это же до поры до времени так может быть.. рано или поздно все равно будет задан вопрос, а на него вовремя не ответят или ответят не так, как хочется юзеру. Я бы относился к таким вещам построже...


Для начала надо найти этого самого администратора -- он уже около года на сайте не показывается.

ARTY (автор портала http://php.su) собрал множество статей в Интернете, посвященных PHP, и просто их опубликовал. Все опубликованные статьи, думаю, он не читал. И работоспособность скриптов не проверял.

Ошибка в скрипте есть -- я сам в свое время вносил в этот скрипт исправления, когда мне понадобилась постраничная навигация.

Постоянно сталкиваюсь с этой ситуацией -- скрипты, скачанные в Интернет, содержат ошибки. Как с этим бороться -- дело темное. Даже если написать автору скрипта (в нанном случае -- Кузнецову, Симдянову и пр.) и они исправят в нем ошибку -- как ее исправить во всех копиях?
evgenijj Отправлено: 15 Октября, 2007 - 21:14:54 • Тема: !!!Присвоение!!! • Форум: Программирование на PHP

Ответов: 19
Просмотров: 995
Витяй пишет:
Если речь идет о ломании скрипта "левыми" даными, тогда придется каждый входящий бит проверять, сам понимаешь что это значит. Хотя можно ещё через ОП (объектное программирование) сделать, но это сложно.


Входящие данные надо проверять в любом случае. И какой стиль программирования ты используешь -- не важно: с одинаковой легкостью ломаются как классы, так и функции.

Подумал о том, что здесь тебя могуть сломать - значит защитился. Не подумал -- сломают. Лучше лишний раз перестраховаться.

Это уже везде написано
if ( !isset( $_GET["action"] ) ...
if ( !in_array( $_GET["action"[, $actions ) ) ...
Про попытку передачи через GET порядок сортировки записей в БД -- вообще молчу: попадаются еще такие
echo "< a hreh='index.php?action=getctg&sort=ASC'>Сортировать< /a>";

Всегда проверяй -- передан ли параметр ( GET или POST )? который ты ожидаешь
if( isset ( ... ) ) ...
и имеет ли это параметр то значение, которое ты ожидаешь?
if ( !in_array( $_GET("action"), $actions ) ) ...

И жизнь станет проще...

Никаких данных не должно идти на вход скрипта, если ты не уверен в их достоверности. Пользователь передал тебе e-mail? О.К.:
PHP:
скопировать код в буфер обмена
  1.  
  2. $error = '';
  3. // урезаем входные данные, даже на задумываясь -- до длины, указанной в параметре maxlength тега input
  4. $email  = substr( $_POST["email"], 0, 30 );
  5. $email  = trim( $email );
  6. if ( !preg_match( "#^[0-9a-z_-.]+@[0-9a-z-.]+.[a-z]{2,6}$#i" , $email ) )
  7.   error = $error.'<li>Некорректный e-mail</li>';
  8.  

И так -- для каждой позиции.
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( !empty ($error) ) die ( 'Запрещаю, ибо не ...' );
  3.  


И вот когда ты будешь точно уверен, что входные данные -- это именно те данные, котрые ты ждешь, можно спокойно работать...

Самое смешное, что в 99 случаев из 100 -- тебе даже не надо задумываться над такими вопросами. Если у тебя register_globals=Off интерпретатор PHP сам выдаст сообщение об ошибке -- типа, попытка использовать неопределенную переменную, или неопределенный индекс массива $_GET

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB