0
Опять об эквивалентности - 3

Решен 3 Ответов 46 Просмотров В помощь вебмастеру

Support: «Я не знаю какой у вас тарифный план хостинга или какой заказанный сервер»

Социальный тариф, строка МОИ СЕРВЕРЫ пустая.

Support: «в любом случае вам по вашему аккаунту лучше проконсультироваться через тикеты в вашей панели пользователя.»

Могу ли я спросить у техподдержки с темой «Не работает хостинг»: написать, что конкретно: сессии не работают. Дать краткое описание и послать ссылки на два примера.

Короче: как сделать, что бы сессии работали на этом хостинге?

1Комментариев
оставил комментарий 03 Авг, 16 от Pingvin (565 баллов)

Раз мой пример не работает, а пример Support работает, проанализировав и проверив скрипты, я пришёл к выводу, что на ms100.ru сессионные переменные (в отличии от других серверов) записываются только в вместе с записью формы.

Запись сессионной переменной, объединённый пример Support рабочий и мой нерабочий, состоит из двух скриптов

Ввод результата в форму:

http://www.pingvin123.100ms.ru/exec/login.php

<?php

//login.php

  session_start();

  if (!isset($_SESSION['test'])) $_SESSION['test']='Noname';

  if (!isset($_SESSION['proverka'])) $_SESSION['proverka']="Sokhranilas` peremennaia cherez sessiu iz login.php";//не работающаая запись сесионной переменной

?>

<!DOCTYPE html>

<html>

 <head>

  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

 </head>

  <body>

Пожалуйста, назовите себя<br>

<form action="action.php" method="post">

 <p>Ваше имя: <input type="text" name="name" /></p>

 <p><input type="submit" /></p>

</form>

<?php

if (isset($_SESSION['test'])) echo "В \$_SESSION['test'] находится=".$_SESSION['test'].'<br>';

else echo "\$_SESSION['test'] - неопределенно".'<br>';

if (isset($_SESSION['proverka'])) echo "В \$_SESSION['proverka'] находится=".$_SESSION['proverka'];

else echo "\$_SESSION['proverka'] - неопределенно";

?>

  </body>

</html>

Запись сессионной переменной напрямую и из формы:

http://www.pingvin123.100ms.ru/exec/action.php

<?php

//action.php

  session_start();

  if (!isset($_SESSION['test'])) $_SESSION['test']='Noname';

  else  $_SESSION['test'] = $_POST['name'];//htmlspecialchars($_POST['name'])

?>

<!DOCTYPE html>

<html>

 <head>

  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

 </head>

  <body>

Вы себя назвали как: <? echo $_SESSION['test']; ?><br>

Проследуйте на первую страницу: <a href="index.php">Сюда плиз</a><br><!-- заменил / -->

<?php

if (isset($_SESSION['test'])) echo "В \$_SESSION['test'] находится=".$_SESSION['test'].'<br>';

else echo "\$_SESSION['test'] - неопределенно".'<br>';

if (isset($_SESSION['proverka'])) echo "В \$_SESSION['proverka'] находится=".$_SESSION['proverka'];

else echo "\$_SESSION['proverka'] - неопределенно";

?>

  </body>

</html>

Чтение сессионных переменных, на основе примера  Support, универсальный:

http://www.pingvin123.100ms.ru/exec/index.php  

<?php

//index.php

  session_start();

  if (!isset($_SESSION['test'])) $_SESSION['test']='Noname';

  if (!isset($_SESSION['proverka'])) $_SESSION['proverka']='Noname';

?>

<!DOCTYPE html>

<html>

 <head>

  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

 </head>

  <body>

Мы только открылись Ваше имя: <? echo $_SESSION['test']; ?><br>

Хотите себя назвать? Следуйте сюда: <a href="login.php">Ввести логин</a><br>

<?php

if (isset($_SESSION['test'])) echo "В \$_SESSION['test'] находится=".$_SESSION['test'].'<br>';

else echo "\$_SESSION['test'] - неопределенно".'<br>';

if (isset($_SESSION['proverka'])) echo "В \$_SESSION['proverka'] находится=".$_SESSION['proverka'];

else echo "\$_SESSION['proverka'] - неопределенно";

?>

  </body>

</html>

Почему именно у меня не работают сессии?

P.S. В техподдержку я пока не писал.

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

3 Ответы

0
Лучший ответ

Решил попробовать то, что у вас явно не получается:

3 файла:

index.php

<?php
  session_start();
  if (!isset($_SESSION['test'])) $_SESSION['test']='Noname';
?>
<!DOCTYPE html>
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 </head>
  <body>
Мы только открылись Ваше имя: <? echo $_SESSION['test']; ?><br>
Хотите себя назвать? Следуйте сюда: <a href="login.php">Ввести логин</a>
  </body>
</html>

login.php

<?php
  session_start();
  if (!isset($_SESSION['test'])) $_SESSION['test']='Noname';
?>
<!DOCTYPE html>
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 </head>
  <body>
Пожалуйста, назовите себя<br>
<form action="action.php" method="post">
 <p>Ваше имя: <input type="text" name="name" /></p>
 <p><input type="submit" /></p>
</form>
  </body>
</html>

и action.php

<?php
  session_start();
  if (!isset($_SESSION['test'])) $_SESSION['test']='Noname';
    $_SESSION['test'] = htmlspecialchars($_POST['name']);
?>
<!DOCTYPE html>
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 </head>
  <body>
Вы себя назвали как: <? echo $_SESSION['test']; ?><br>
Проследуйте на первую страницу: <a href="/">Сюда плиз</a>
  </body>
</html>

Все работает замечательно. Не понимаю в чем у вас проблемы.

ответил 24 Июль, 16 от Support (2,095 баллов)
0
Тема: "настройка хостинга"

в техподдержке укажите адреса ваших вопросов на этой Справочной.
ответил 24 Июль, 16 от Support (2,095 баллов)
3Комментариев
оставил комментарий 25 Июль, 16 от Pingvin (565 баллов)
Прежде чем писать в техподдержку, я проверю Ваши 3 программы.
оставил комментарий 25 Июль, 16 от Pingvin (565 баллов)

На локальном сервере всё работает, а на 100ms.ru всегда: Ваше имя: Noname

Раз у Вас работает, а у меня нет, значит дело в настройках.

Что же я сделал неправильно?

Писать в техподдержку нет смысла,

А интересно у Вас мои скрипты работают?

Я их расположил в каталоге exec:

http://www.pingvin123.100ms.ru/exec/index.php  - только этот запускать

http://www.pingvin123.100ms.ru/exec/login.php

http://www.pingvin123.100ms.ru/exec/action.php.

оставил комментарий 03 Авг, 16 от Support (2,095 баллов)
Извините, убрал "комменты" на главной странице и пропустил ваш комментарий.

На Справочной есть внутренние сообщения. Напишите в них FTP доступ (логин, адрес сервера, пароль). Можете создать специально для меня отдельный FTP аккаунт. Я разберусь в вашем скрипте уже конкретно на сервере.

Адрес для сообщений или в моем профиле смотрите или по ссылке: http://help.lioo.ru/message/Support
0
Можно мои темы об эквивалентности (я их насчитал только 3) пометить как решённые и если захотите собрать в одну тему.
ответил 06 Сен, 16 от Pingvin (565 баллов)
1Комментариев
оставил комментарий 06 Сен, 16 от Support (2,095 баллов)

из принципа не хочу собирать или что-то с ними делать. Во первых это показан режим работы с ответами. Во вторых я убираю только откровенный спам или рекламу "непойми чего".

...