PHP.SU

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

Страниц (6): [1] 2 3 4 5 6 »

> Найдено сообщений: 77
MrSource Отправлено: 12 Февраля, 2012 - 19:38:07 • Тема: Не проходит условие • Форум: Вопросы новичков

Ответов: 2
Просмотров: 156
OrmaJever пишет:
MrSource пишет:
даже если $authorMark->disabled имеет значение false при выводе через echo...

echo не может вывести булевое значение как false или true (выводит вроде 0 или 1), а для проверки типа используйте var_dump()


Мда... я видимо уже пересидел сегодня... действительно string Голливудская улыбка

Однако эту функцию использовал чуть выше, чтобы отловить другой тип в классе, а тут так затупил...

Огромное, Вам, спасибо! Улыбка
MrSource Отправлено: 12 Февраля, 2012 - 19:13:03 • Тема: Не проходит условие • Форум: Вопросы новичков

Ответов: 2
Просмотров: 156
Здравствуйте, есть код:

PHP:
скопировать код в буфер обмена
  1. $authorsCommented = db_select(...);
  2. $markedBy = new stdClass();
  3. $markedBy->disabled = $authorsCommented[$markedBy->author_id]->disabled;


$markedBy->disabled типа bool, достаётся из базы.

Далее


При проверке значения


интерпретатор правильно показывает значение(true\false), но условие
PHP:
скопировать код в буфер обмена
  1. if($authorMark->disabled) echo 'class="color-b"';


выполняется в любом случае, вне зависимости от значения $authorMark->disabled, даже если $authorMark->disabled имеет значение false при выводе через echo...

как такое может вообще быть?
MrSource Отправлено: 25 Сентября, 2011 - 15:41:00 • Тема: Не передаются данные через post для input text • Форум: Вопросы новичков

Ответов: 5
Просмотров: 455
Кто Вас вообще научил строчные значения не вводить в кавычки?
MrSource Отправлено: 24 Сентября, 2011 - 20:30:44 • Тема: Пояснение функции) • Форум: Вопросы новичков

Ответов: 6
Просмотров: 237
grizzlynet пишет:
а в каком виде возвращяется результат запроса в mysqli_num_rows? У меня не выводит.


int
MrSource Отправлено: 24 Сентября, 2011 - 20:14:16 • Тема: Пояснение функции) • Форум: Вопросы новичков

Ответов: 6
Просмотров: 237
grizzlynet пишет:
Приве всем!
Хотел бы узнать пояснение функции mysqli_num_rows в данном коде, т.е она возвращяет значение 1 если ряд существует? Не могу понять ?
PHP:
скопировать код в буфер обмена
  1.  
  2. // Connect to the database
  3.   $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  4.  
  5.   // Grab the user-entered log-in data
  6.   $user_username = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_USER']));
  7.   $user_password = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_PW']));
  8.  
  9.   // Look up the username and password in the database
  10.   $query = "SELECT user_id, username FROM mismatch_user WHERE username = '$user_username' AND password = SHA('$user_password')";
  11.   $data = mysqli_query($dbc, $query);
  12.  
  13.   if (mysqli_num_rows($data) == 1) {
  14.     // The log-in is OK so set the user ID and username variables
  15.     $row = mysqli_fetch_array($data);
  16.     $user_id = $row['user_id'];
  17.     $username = $row['username'];
  18.   }
  19.  


Функция возвращает количество строк полученных после запроса.

Запрос:

PHP:
скопировать код в буфер обмена
  1. $query = "SELECT user_id, username FROM mismatch_user WHERE username = '$user_username' AND password = SHA('$user_password')";


Подразумевает только одну запись в базе, поэтому возвратит значение максимум 1.



Для примера сделаем запрос:

PHP:
скопировать код в буфер обмена
  1. $data = mysql_query('SELECT user_id FROM mismatch_user');
  2. $data = mysql_fetch_array($data);
  3.  
  4. echo mysql_num_rows($data);


Он нам вернёт количество пользователей в базе, т.е. количество записей в таблице, которые мы вытащили из базы.
MrSource Отправлено: 24 Сентября, 2011 - 19:54:48 • Тема: Не подставляется значение переменной. • Форум: Вопросы новичков

Ответов: 3
Просмотров: 179
White пишет:
MrSource и ошибок не выдает?


нет, не выдаёт. Код работает корректно и завершается аналогично, в итоге я получаю все заголовки и файл, но вот с именем проблемы.

DlTA пишет:
а там переход строки есть?
может он все гробит


сейчас потыкаю во все места может поможет)
(Добавление)
PHP:
скопировать код в буфер обмена
  1. header('Content-Disposition: attachment \n filename="file'.$query['publicfilename'].'.rar"\n');


тоже выдаёт только file.rar, т.е. статика передаётся корректно, а переменная нет.

полный бред, господа....
(Добавление)
Проблема решена... Бездумный копипаст и невнимательность не дала увидеть, что это всё в функции и переменная находиться "вне зоны действия"



исправил дело.


Всем спасибо Улыбка
MrSource Отправлено: 24 Сентября, 2011 - 17:44:27 • Тема: Не подставляется значение переменной. • Форум: Вопросы новичков

Ответов: 3
Просмотров: 179
Здравствуйте есть вот такой код:

PHP:
скопировать код в буфер обмена
  1. ...headers...
  2. header('Content-Disposition: attachment; filename="'.$query['publicfilename'].'";');
  3. ...отдача файла...


В хеадер значение не подставляется, хотя переменная $query['publicfilename'] не пустая.

Подскажите, пожалуйста, почему возникает такая проблема?

P.S. хеадер прописан правильно, именно не подставляется значение переменной, если вписать статичный текст, то всё работает.
MrSource Отправлено: 22 Апреля, 2011 - 20:00:45 • Тема: Упрощенный фри-ланс • Форум: Наработки по собственным проектам

Ответов: 15
Просмотров: 6469
mysql_escape_string()
Подмигивание
MrSource Отправлено: 22 Апреля, 2011 - 19:50:17 • Тема: Что не так? • Форум: Программирование на PHP

Ответов: 3
Просмотров: 243
BoJlod9I пишет:
чет я непонял
(Добавление)
сделай как нужно а то я сонный чет не могу понять что к чему


Давай ты сейчас пойдёшь спать, а завтра уже с "чистой" головой во всём разберёшься?
MrSource Отправлено: 22 Апреля, 2011 - 18:01:25 • Тема: подсчёт количества файлов в каталоге • Форум: Программирование на PHP

Ответов: 6
Просмотров: 606
krivarik пишет:
нет не на джумле


Не понял
MrSource Отправлено: 22 Апреля, 2011 - 17:16:28 • Тема: Выделить поддомен • Форум: Программирование на PHP

Ответов: 6
Просмотров: 483
Если нет веб панели управления сервером, то вот так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <VirtualHost IP:80>
  2.     ServerName "test.host.ru:80"
  3.         UseCanonicalName Off
  4.  
  5. #<IfModule mod_suexec.c>
  6. #   SuexecUserGroup "host" "psacln"
  7. #</IfModule>
  8.  
  9.     ServerAdmin  "ADMIN EMAIL"
  10.  
  11.         DocumentRoot "/var/www/host.ru/test"
  12.     CustomLog /var/www/host.ru/statistics/logs/access_log plesklog
  13.     ErrorLog "/var/www/host.ru/statistics/logs/error_log"
  14.  
  15.  
  16.  
  17.  
  18.  
  19.     <IfModule mod_ssl.c>
  20.         SSLEngine off
  21.     </IfModule>
  22.  
  23.     <Directory /var/www/host.ru/test>
  24.  
  25. <IfModule sapi_apache2.c>
  26. php_admin_flag engine on
  27. php_admin_flag safe_mode off
  28. php_admin_value open_basedir /var/www/host.ru/test/:/tmp/
  29. </IfModule>
  30.  
  31. <IfModule mod_php5.c>
  32. php_admin_flag engine on
  33. php_admin_flag safe_mode off
  34. php_admin_value open_basedir /var/www/host.ru/test/:/tmp/
  35. </IfModule>
  36.  
  37.  
  38.         Options -Includes -ExecCGI
  39.  
  40.     </Directory>
  41.  
  42.  
  43.  
  44.     #Include "/var/www/host.ru/subdomains/test/conf/vhost.conf"
  45.  
  46. </VirtualHost>


Вот выдрал со своего хоста шаблон плеска, изменяешь под свой домен и пихаешь в конфиг http сервера

Цитата:
php_admin_value open_basedir /var/www/host.ru/test/:/tmp/

можно и убрать, это для безопасности

Цитата:
Options -Includes -ExecCGI

тоже необязательно, оно для выполнения CGI скриптов
MrSource Отправлено: 14 Апреля, 2011 - 22:24:25 • Тема: Помогите пожалуйста новичку, вопрос очень легкий • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1529
fspro пишет:
Тоже не работает...
Warning: include(.\modules\fs-slider\fs-slider.php) [function.include]: failed to open stream: No such file or directory in Z:\home\fsproduction.com\www\web\development\index.php on line 101

Warning: include() [function.include]: Failed opening '.\modules\fs-slider\fs-slider.php' for inclusion (include_path='.;/usr/local/php5/PEAR') in Z:\home\fsproduction.com\www\web\development\index.php on line 101


Зачем вы слеши / попереворачивали? я же написал как надо:

include('./modules/fs-slider/fs-slider.php');
MrSource Отправлено: 14 Апреля, 2011 - 21:31:37 • Тема: Помогите пожалуйста новичку, вопрос очень легкий • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1529
fspro пишет:
Хм) Спасибо за быстрый ответ)
Но я пробывал писать так
<?php
include '\modules\fs-slider\fs-slider.php';
?>
и выводит ошибку (в картинке)


Тут можно(нужно) так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include('./modules/fs-slider/fs-slider.php');
  3. ?>


./ означает "текущая директория"
DeepVarvar пишет:
В операционной системе "макрософаг виндас" работая с PHP пишите не обратные, а прямые слеши в коде.


Не играет роли в php Улыбка Хотя шелл в винде принимает только обратные слэши "\"
В крайнем случае есть волшебная константа DIRECTORY_SEPARATOR
MrSource Отправлено: 13 Апреля, 2011 - 20:42:06 • Тема: Замена "собственных" тегов по регулярному выражению в html. • Форум: Программирование на PHP

Ответов: 10
Просмотров: 1097
имеется функция:

PHP:
скопировать код в буфер обмена
  1. function word_replace() {
  2.         global $core;
  3.         $lang = registry::get('lang');
  4.         $this -> content = preg_replace('#\[LANG\:([a-zA-Z0-9_]*)\]#', $core -> get_lang('\\1'), $this->content);
  5. }


Как видно строка в шаблоне заменяется на результат функции $core -> get_lang() :

PHP:
скопировать код в буфер обмена
  1. function get_lang($word_id) {
  2.         if($this->set_lang == '1') {
  3.                 if(isset($lang['lang'][$word_id])) {
  4.                         return $lang['lang'][$word_id];
  5.                 }
  6.                 else return "[!LANG:".$word_id."]";
  7.         }
  8.         else {
  9.                 return false;
  10.         }
  11. }


Допустим, у нас имеется некий html.tpl(шаблон) с содержимым:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>
  2. ...
  3. [LANG:hello]
  4. ...
  5. </html>


Исходя из выше указанного кода [LANG:hello] должен замениться на $lang['lang']['hello'], если таков элемент присутствует в массиве, если же нет, то на [!LANG:hello]


Что самое интересное, так это то, что $lang['lang'][$word_id] (функция get_lang 3 строка) не ссылается на массив, хотя имеет в себе слово hello, и echo $word_id выводит "hello", но как $lang['lang']['hello'] он не ссылается...

что за магия?
MrSource Отправлено: 12 Апреля, 2011 - 14:23:31 • Тема: Замена "собственных" тегов по регулярному выражению в html. • Форум: Программирование на PHP

Ответов: 10
Просмотров: 1097
PHP Version 5.3.1

Если код разложить так:
PHP:
скопировать код в буфер обмена
  1. $this -> content = preg_replace('#\[LANG\:([a-zA-Z0-9_]*)\]#',
  2. function ($x) {
  3.    return $lang['errors'][$x['1']];
  4. }
  5. ,$this->content);


то ошибка в последней строке, то есть $this->content

Страниц (6): [1] 2 3 4 5 6 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB