PHP.SU

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

Страниц (2): [1] 2 »

> Найдено сообщений: 25
NevO Отправлено: 17 Сентября, 2012 - 21:28:02 • Тема: очень интересный вывод xD • Форум: Если скрипт не работает

Ответов: 0
Просмотров: 731
собственно неожиданностью стала проблема вывода слова "Регистрация" вместо которого вылазит не понятное "Регия" Ха-ха
вот куски кода
PHP:
скопировать код в буфер обмена
  1. function lang(){
  2.         global $cms_dir, $lang;
  3.         $file=file($cms_dir.'lang/'.$_SESSION['lang'].'.lang');
  4.         $words=array(
  5.         'tplif_error1',
  6.         'email_err',
  7.         'login_err1',
  8.         'login_err2',
  9.         'mis_repass',
  10.         'reg_suc',
  11.         'reg_suc2',
  12.         );
  13.         for($i=0;$i<count($file);$i++){
  14.                 $lang[$words[$i]]=trim($file[$i]);
  15.         }
  16. }


и вот файл,который использует данная функция:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Ошибка в шаблоне! Не совпадает кол-во конструкций &lt!--IF--> и &lt!--ENDIF-->. Проверьте файл %s
  2. E-mail введен не корректно! Если вы считаете это сообщение ошибочным - сообщите администратору.
  3. Логин введен не корректно! Убедитеть что он содержит только буквы латинского алфавита и/или цифры.
  4. Пользователь с таким логином уже зарегистрирован!
  5. Введеные пароли не совпадают!
  6. Регистрация успешно завершена! <br /> Теперь Вы можете зайти на сайт используя свой логин и пароль.
  7. Регистрация успешно завершена! <br /> На указанный Вами e-mail отправлено подтверждение регитрации.
  8.  


данная проблема акуальна только для последних двух строк. что не так?
NevO Отправлено: 30 Августа, 2012 - 05:52:08 • Тема: сессия • Форум: Вопросы новичков

Ответов: 8
Просмотров: 237
Bartezz пишет:
вообще неясно, зачем все так усложнять, но если ты используешь символические ссылки с массивами то синтаксис, в твоем случае, будет такой:
PHP:
скопировать код в буфер обмена
  1. $_SESSION['test']='test';
  2. $const="_SESSION['test']"
  3. echo ${$const}['test'];

почитать http://www.php.su/learnphp/vars/?varsvars


не совсем точно, но я рад что мы наконец друг друга поняли Улыбка
PHP:
скопировать код в буфер обмена
  1. $_SESSION['test']='test';
  2. $const="_SESSION";
  3. echo 'const='.${$const}['test'];


Bartezz пишет:
И не проще ли для поиска (вместо вот этого ненужного цикла) пользоваться регулярными выражениями?

что ты имеешь ввиду?
NevO Отправлено: 30 Августа, 2012 - 00:59:38 • Тема: сессия • Форум: Вопросы новичков

Ответов: 8
Просмотров: 237
Bartezz пишет:
Как тебя еще ткнуть что необходимо писать не $const="_SESSION['user']", а $const="$_SESSION['user']" а грамотнее $const=$_SESSION['user'] а если хочешь увидеть на примеру что $const строка сделай так:
PHP:
скопировать код в буфер обмена
  1. $const=$_SESSION['user'];
  2. if (is_string($const)) {echo "я строка!";}

хотя... если в сессии не строка то и тут строки не будет, но это сказывается почти уже третий час ночиУлыбка тем не менее, если необходимо будет изменить из int в string то php сделает это автоматически

Окей, видимо ты не понял меня. вот другой пример:
PHP:
скопировать код в буфер обмена
  1. <?
  2. $_SESSION['test']='test';
  3. $name = "test.tpl";
  4. $fp = fopen($name,'r');
  5. $data = fread($fp,filesize($name));
  6. fclose($fp);
  7. $pos=0;
  8. while(($pos=strpos($data,'{',$pos))!==false){          
  9.         $pos2=strpos($data,'}',$pos);
  10.         $start=$pos+1;
  11.         $ln=$pos2-$start;
  12.         $const=substr($data,$start,$ln);
  13.         $data=str_replace($const, $$const, $data);
  14.         $pos++;
  15. }
  16. echo $data;
  17. ?>

test.tpl:
CODE (html):
скопировать код в буфер обмена
  1. Привет, {$_SESSION['test']}!


на выходе должно быть:
Привет, test!
NevO Отправлено: 30 Августа, 2012 - 00:43:13 • Тема: сессия • Форум: Вопросы новичков

Ответов: 8
Просмотров: 237
Bartezz пишет:
Есть жесткая необходимость задать переммой $const значение string, так она автоматически задаться при присваивании значения от $_SESSION? В Любом случае, значки $ упускать не надо

$const -обязательно строка, т.к. в будущем это будет часть кода страницы, т.е. например:
PHP:
скопировать код в буфер обмена
  1. $text="Привет, {}";
  2. ... //обработка
  3. //получаем:
  4. $const="_SESSION['user']"
  5.  
NevO Отправлено: 30 Августа, 2012 - 00:37:07 • Тема: сессия • Форум: Вопросы новичков

Ответов: 8
Просмотров: 237
Bartezz пишет:
Интересно зачем ковычки нужны специально?Улыбка А вот так уже прям совсем не работает?
PHP:
скопировать код в буфер обмена
  1. $_SESSION['test']='test';
  2. $const=$_SESSION['test'];
  3. echo $const;


кавычки нужны. так как хочу просто понять принцип работы. нужно для обработки шаблона.
NevO Отправлено: 30 Августа, 2012 - 00:31:16 • Тема: сессия • Форум: Вопросы новичков

Ответов: 8
Просмотров: 237
и так есть скрипт
PHP:
скопировать код в буфер обмена
  1.  
  2. $_SESSION['test']='test';
  3. $const="_SESSION['test']";//(!)кавычки нужны специально
  4.  

нужно вывести содержимое $_SESSION['test'] используя $const

$$const не работает(
NevO Отправлено: 29 Августа, 2012 - 15:24:15 • Тема: Одно из двух • Форум: Работа с СУБД

Ответов: 9
Просмотров: 1593
Всем спасибо, нашел решение с помощью LIKE
NevO Отправлено: 29 Августа, 2012 - 14:24:09 • Тема: Одно из двух • Форум: Работа с СУБД

Ответов: 9
Просмотров: 1593
Мелкий пишет:
Выкидывайте эту структуру и сделайте нормальную таблицу связи:
ID | CAT
1 | 1
2 | 1
2 | 2
3 | 2
Первичный ключ на оба поля.


такой вариант не подходит. в таблице более 10.000 записей. категорий планируется не менее 10. таблица очень сильно увеличит свои объемы, чего не хотелось бы. есть другие варианты?
NevO Отправлено: 29 Августа, 2012 - 13:59:11 • Тема: Одно из двух • Форум: Работа с СУБД

Ответов: 9
Просмотров: 1593
не знаю как правильно это называется, но есть таблица test
ID | CAT
1 | 1
2 | 1, 2
3 | 2

нужно при запросе записей с категорией (CAT) 1 выдавались ID 1 и 2, а при запросе категории 2 выдавались ID 2 и 3.
NevO Отправлено: 02 Октября, 2011 - 11:54:14 • Тема: переменная $_POST array или string? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 115
В общем надо сделать чтобы скрипт определял тип переменной $_POST (массив или строка) и в зависимости от результата выполнял разные действия
NevO Отправлено: 14 Июля, 2011 - 08:13:29 • Тема: Отправка писем • Форум: Вопросы новичков

Ответов: 5
Просмотров: 229
LIME пишет:
NevO пишет:
denver используется для тестов
в денвере используется заглушка для mail()
все складывается в папочку а не отправляется
если вы планируете использовать mail на хостинге то это не важно для отладки сгодится
а по поводу настроек не подскажу...самому не приходилось делать пока


про заглушку знаю и снял ее.
Сервер будет не на хостинге, по этому нужно все настроить
NevO Отправлено: 14 Июля, 2011 - 08:02:16 • Тема: Отправка писем • Форум: Вопросы новичков

Ответов: 5
Просмотров: 229
LIME пишет:
NevO ф-ция mail()
она пользуется установленым почтовиком
установите и настройте sendmail

Нашел в интернете пример, который использует сокеты.
После всех действий, мне выдало что письмо отправлено но письма не приходят.

а по поводу sendmail какую лучше поставить на windows (denver используется для тестов) и какой лучше на lunux ubuntu (сам сервер)? Если можно ссылочки с инструкциями по настройке?
NevO Отправлено: 14 Июля, 2011 - 07:50:42 • Тема: Отправка писем • Форум: Вопросы новичков

Ответов: 5
Просмотров: 229
Здравствуйте! Интересует такой вопрос. Как отправить письмо с php через удаленный SMTP сервер.
Имеется адрес сервера, логин, пароль и собственно сам e-mail.
Как сделать отправку писем через него?
NevO Отправлено: 17 Ноября, 2010 - 06:19:27 • Тема: Cannot break/continue 1 level • Форум: Программирование на PHP

Ответов: 2
Просмотров: 1710
OrmaJever пишет:
Не понял Ух ты ничево_сибе условие. В чём логика такого условия?
continue не может выполнится в первом проходе цылка do-while. Потому что первый проход в этой конструкции даже не является цыклом. continue/break работают только в цыклах. Есл поставить их посредине скрипта выдаст чтото подобное. я бы посоветовал использовать цыкл while.
ЗЫ. я бы на вашем месте пересмотрел условие Подмигивание


Скрипт брал здесь http://i-novice[dot]net/sokety-v-php/
установил пример и хотел посмотреть на его работу.
NevO Отправлено: 16 Ноября, 2010 - 21:31:14 • Тема: Cannot break/continue 1 level • Форум: Программирование на PHP

Ответов: 2
Просмотров: 1710
При выполнении скрипта получаю ошибку:
Cannot break/continue 1 level

PHP:
скопировать код в буфер обмена
  1. do {
  2.             echo 'Accept socket ... ';
  3.             if (($msgsock = socket_accept($sock)) < 0) {
  4.                 throw new Exception('socket_accept() failed: '.socket_strerror(socket_last_error())."\n");
  5.             } else {
  6.                 echo "OK\n";
  7.             }
  8.            
  9.             $msg = "Hello, Client!";
  10.             echo "Say to client ($msg) ... ";
  11.             socket_write($msgsock, $msg, strlen($msg));
  12.             echo "OK\n";
  13.  
  14.             do {
  15.            
  16.                 echo 'Client said: ';
  17.                 if (false === ($buf = socket_read($msgsock, 1024))) {
  18.                     throw new Exception('socket_read() failed: '.socket_strerror(socket_last_error())."\n");
  19.                 } else {
  20.                     echo $buf."\n";
  21.                 }
  22.                
  23.                 if (!$buf = trim($buf)) {
  24.                     continue;
  25.                 }
  26.                
  27.                 if ($buf == 'shutdown') {
  28.                     socket_close($msgsock);
  29.                     break 2;
  30.                 }
  31.                
  32.                 echo "Say to client ($buf) ... ";
  33.                 socket_write($msgsock, $buf, strlen($buf));
  34.                 echo "OK\n";
  35.                
  36.             } while (true);
  37.            
  38.         } while (true);

вот кусок кода на котором происходит ошибка. Ошибка происходит
PHP:
скопировать код в буфер обмена
  1.                 if (!$buf = trim($buf)) {
  2.                     continue;
  3.                 }

при выполнении команды


В чем может быть проблема?

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB