Народ прочитал в чем различие print от echo, вот что не понятно... PHP: <?php $a=print('test');/* $a=1; */ ?> Это как понимать возвращает всегда 1?
да неее, он может выводить все угодно ну типа его в условиях можно использовать, если печатает что возвращает 1, как я понял
идём на пхп.нет и смотрим не задавая вопросов на которые там можно найти ответ .. http://dk.php.net/print
159932 там статья на англ. но я в инете нашел перевод но в переводе тоже ничего не понятно! (перевод читабительный)
Я знаю что вывод и возвращение это разные вещи (из делфи) но я не понимаю какой понт что он возвращает единицу мне нужен живой php пример(где присуствуют токо echo и print) и чтобы они хоть как то различались в исполнении (кроме единицы которая возвращает print)
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 - ссылка из тогоже пхп.нет перевод(если настолко не в состоянии найти онлайн переводчик): print() ведёт себя как ф-ия и с ней ты можешь сотворить сие чюдо: $ret = print "Hello World"; и $ret вернёт еденицу. это значит что print может быть использован как часть большее сложного выражения, а echo не может. для примера из всеми-любимого мануала по пхп: $b ? print "true" : print "false"; соу, echo без скобок может подминать под себя несколько параметров которые получает вместе: echo "and a ", 1, 2, 3; // запято-разделительные без скобок echo ("and a 123"); // ток один параметр со скобкаме print() может взять ток один параметр: .зы доступно?
Благодарю, понял все (если настолко не в состоянии найти онлайн переводчик) все я в состоянии, нефиг нагонять
Снова немогу запустить сесию! Раньше в ошыбке говорилось про невозможность открить папку для сохранения файлов сесии, а теперь после того как я отредактировал файл php.ini и вписал существующий путь для сохранения файлов сесии такого типа Z:\tmp\ssesions сесии там создаються с именами "sess_1ae98eab10e19fa8e59f8515106e75ee", "sess_7eb03d2d0ff5829d8a1427ba36e6dd22" но браузер снова выдает ошыбку Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\train.com\www\auth.php:9) in Z:\home\train.com\www\auth.php on line 31 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\train.com\www\auth.php:9) in Z:\home\train.com\www\auth.php on line 31 Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Я на другой странице сайта создаю сесию кодом <?php session_start(); if ($auth!=1) { echo'<p>Доступ закритий</p> <br><p><center><a href = "index.php" tarfet = "blank">На головну</a></center></p>'; exit; } ?> при регистациий переменной в сесию делаю: session_start(); session_register("auth"); $auth = 1; Но страница проверки переменной говорит echo'<p>Доступ закритий</p>. При том что файл сесии создался в папке хранения сесий и там если открить блокнотом записано "auth|i:1;". Что не так?
Два поста выше моего - ни о чем... Смысл? Неверно. Это выполнится, если значение $auth не равно 1. Если использовать оператор !==, то это сравнение с учетом типов данных. Ответ по теме вопроса: PHP: <?php session_start(); if (!isset($_SESSION['auth']) || $_SESSION['auth']!=1) { echo '<p>Доступ закрыт</p> <br><p><center><a href = "index.php">На главную</a></center></p>'; exit; } ?> А вот это: PHP: session_register("auth"); $auth = 1; замени на это: PHP: $_SESSION['auth']=1; И надо не забывать session_start()
2d_x спасибо попробую так. Мне браузер еще пишет сто не существует такой директории и проблема с session_start(). Warning session_start(). No such file or directory on /tmp/sses_123124132453452345? типа такого! Я в php.ini правлю путь сохранения даних сесии, а он снова кажет что нет такой директории