X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Вопросы от новичка, что изучает PHP
Banderas
Banderas
Topic Starter сообщение 21.2.2009, 21:05; Ответить: Banderas
Сообщение #1


Начал изучать PHP, но вот иногда возникают вопросы, так что я буду вам сюда писать, а вы, если не тяжело, будете говорить в чем проблема. ;)

Первый впорос. Тема в книге: "РНР-сценатрии в теле HTML-документов"

Вот код который я напечатал
<html><body>
<? if ($REMOTE_ADDR=="172.0.0.1") { ?>
<h1>Добро пожаловать домой!</h1>
<? else { ?>
<h1>Привет, гость!</h1>
<? } ?>
</html></body>


Думаю понятно что здесь должно выводить. Но у меня пишет что еррор синтаксеса, в чем ошибка?
Parse error: syntax error, unexpected T_ELSE in Z:\home\localhost\www\admin\1.php on line 4
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 21.2.2009, 22:09; Ответить: ZiTosS
Сообщение #2


1) Ошибка в использовании глобальных переменных, это тебе на будущее. Почитай про register_globals = On, на форуме по-моему даже кому-то объяснял в чём разница и какие отсюда проблемы. Хотя я объясню вкратце.
Директива register_globals определяет видимость глобальных переменных в программе. На самом деле в PHP есть суперглобальные массивы.
$_SERVER - информация сервера и обращений
$_POST - передаваемые POST данные
$_GET - передаваемые GET данные
$_COOKIE - массив с куками(печеньем, пока не замораачивайся)
$_SESSION - массив сессий
$_FILES - HTTP загружаемые файлы
$_REQUEST - Данные HTTP-запроса
И таких много

Подробнее тут http://www.php.net/manual/ru/reserved.variables.php

Так вот... При register_globals = On к элементам суперглобальных переменных обращаться не через массив с ключём, а к примеру так
// было
$_SERVER['REMOTE_ADDR'];
// стало с register_globals = On
$REMOTE_ADDR;

То есть имя переменной принимает название ключа.

К чему же это приводит:
Вот представим что ты на странице создал переменную $name, а также на эту страницу поступают GET-переменные, название одной из которых name. В случае register_globals = On твоя переменная $name заменится пременной GET массива, так как доступ при таком подходе к нашей GET-переменной также $name
А вот при register_globals = Off у тебя есть 2 различные переменные, $name и $_GET['name'], которые имеют именно такое обращение и никак иначе.

2) Теперь по поводу твоей синтаксической ошибки, советую внимательнее читать выдаваемые предупреждения, там даже указывается какого типа ошибка и в какой строке.
Посмотри внимательнее что ты не сделал в этой строке
<? else { ?>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 21.2.2009, 22:13; Ответить: ZiTosS
Сообщение #3


И ещё одно отчуждение... В следующий раз создавай отдельную тему под каждый свой вопрос, так будет корректнее. Не надо всё спихивать в одну тему, мы не сделаем на этом FAQ.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 22.2.2009, 13:33; Ответить: Banderas
Сообщение #4


Ок :D
Я про масив $REMOTE_ADDR пока ещё ничего не спрашивал, просто пример был в книге :D
А вот то что я допустил ошибку, я уже понял, так надо:
<? } else { ?>
:D:

Мне легче написать все в пехепе, через echo ;)
Но уже это тоже понял :D

Есть небольшой вопрос, ради него не хочу создавать тему.
Какие это символы на клаве, ато я не могу определится :(
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Robot-sgibatel
Robot-sgibatel
сообщение 22.2.2009, 13:37; Ответить: Robot-sgibatel
Сообщение #5


вроде одинарные кавычки ' (в английском раскладе буква э)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 22.2.2009, 14:17; Ответить: Banderas
Сообщение #6


Не, видишь, они разные...
Напишите плс типа так:
зеленное - (такието кавычки), ctrl + є
голубое - (такието кавычки), ё
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 23.2.2009, 15:42; Ответить: ZiTosS
Сообщение #7


Апостроф
Синие - апострофы, Зелёные возможно либо теже апострофы, либо обратные кавычки(Кнопка Ё)

Я так понял тут имеется ввиду про синие апострофы, походу объяснение идёт про разницу между
<?php
$name = "Вася";
echo "Ты $name"; // Ты Вася
echo 'Ты $name'; // Ты $name
?>

Разницу я думаю понял? Апострофы в отличие от двойных ковычек не принимает во внимание переменные.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Во что сегодня инвестировать?
Делимся своими приносящими прибыль вариантами
69 traveliver 4661 25.3.2024, 6:48
автор: Skyworker
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВо что Вы играете?
399 Vmir 67802 23.3.2024, 12:51
автор: Alexand3r
Открытая тема (нет новых ответов) Предложение по форуму от новичка
22 Yogsvet 5444 7.3.2024, 20:09
автор: Lumex
Открытая тема (нет новых ответов) "Извините, что ожидание затянулось, но не думайте, пожалуйста, что мы про вас забыли. Мы заводим задачи по всем обращениям и контролируем работу над ними самым тщательным образом."
Вопрос
0 kuz999 1241 5.2.2024, 14:06
автор: kuz999
Открытая тема (нет новых ответов) Посоветуйте оффер казино для новичка
5 Megaspryt 1641 23.1.2024, 15:31
автор: markp_1xBet


 



RSS Текстовая версия Сейчас: 16.4.2024, 8:21
Дизайн