#php #variables #session #post
#php #переменные #сессия #Публикация
Вопрос:
В настоящее время я заполняю метку переменной сеанса, однако мне нужно использовать данные метки позже (отправить их на другую метку) или создать новый сеанс для этого. Однако, когда я пытаюсь получить доступ к первой метке или сеансу, который я установил, он сообщает мне, что он не установлен. Итак, я предполагаю, что данные в первой метке отображаются, но на самом деле их там нет?
// вот как я создаю первую метку
<?php
include_once "dbcon.php";
//PERFORMING CHECK IF ALL REQUIRED SESSION VARIABLES ARE SET
if (isset($_SESSION['s_score1'], $_SESSION['s_score2'], $_SESSION['t_team1'], $_SESSION['t_team2'])) {
$team1 = $_SESSION['t_team1'];
$team2 = $_SESSION['t_team2'];
$score1 = $_SESSION['s_score1'];
$score2 = $_SESSION['s_score2'];
if ($score1 == $score2) {
header("Location: tables.php?table=draw"); //CHECKS IF MATCH IS A DRAW, CANNOT BE A DRAW
exit();
}else {
if ($score1 > $score2){
echo $_SESSION['t_team1'];
}else {
echo $_SESSION['t_team2'];
}
}
}else {
echo "-";
}
?>
// вот как я ее печатаю
<label name="round2-team1" class="round2-teams">
<?php include_once "action/winner-script.php";?>
</label>
проблема возникает, когда я пытаюсь использовать эту метку выше, создать с ней переменную сеанса или переместить ее на новую метку невозможно, как будто она не существует, хотя я вижу ее на странице???
<?php
include_once "dbcon.php";
//PERFORMING CHECK IF ALL REQUIRED SESSION VARIABLES ARE SET
if (isset($_SESSION['s_score9'], $_SESSION['s_score10'], $_SESSION['t_team9'], $_SESSION['t_team10'])) {
$team1 = $_SESSION['t_team9'];
$team2 = $_SESSION['t_team10'];
$score1 = $_SESSION['s_score9'];
$score2 = $_SESSION['s_score10'];
if ($score1 == $score2) {
header("Location: tables.php?table=draw"); //CHECKS IF MATCH IS A DRAW, CANNOT BE A DRAW
exit();
}else {
if ($score1 > $score2){
echo $_SESSION['t_team9'];
}else {
echo $_SESSION['t_team10'];
}
}
}else {
echo "-";
}
?>
Это скрипт, здесь я беру свои две метки, которые отображаются на странице, я определяю победителя, а затем я отображаю переменную сеанса, которая выиграла игру, в другой метке на той же странице. однако, когда я пытаюсь использовать
<?php
if (isset($_SESSION['t_team9'])) {
echo $_SESSION['t_team9'];
}else {
echo "somethings wrong";
}
?>
в любом месте страницы, где лежат мои метки, я просто получаю сообщение об ошибке «что-то пошло не так»
ПОПЫТКА ИСПРАВЛЕНИЯ:
<?php
include_once "dbcon.php";
//PERFORMING CHECK IF ALL REQUIRED SESSION VARIABLES ARE SET
if (isset($_SESSION['s_score13'], $_SESSION['s_score14'], $_SESSION['result'], $_SESSION['result2'])) {
$team1 = $_SESSION['result'];
$team2 = $_SESSION['result2'];
$score1 = $_SESSION['s_score13'];
$score2 = $_SESSION['s_score14'];
if ($score1 == $score2) {
header("Location: tables.php?table=draw"); //CHECKS IF MATCH IS A DRAW, CANNOT BE A DRAW
exit();
}else {
if ($score1 > $score2){
$team1 = $_SESSION['result'];
$_SESSION['result5'] = $team1;
}else {
$team2 = $_SESSION['result2'];
$_SESSION['result5'] = $team2;
}
}
}else {
echo "-";
}
?>
Комментарии:
1. Вы объявляете session_start() в начале каждой страницы? Если вы этого не сделаете, сеанс будет просто забыт.
2. Да, я почти уверен. Как я уже сказал, я могу видеть сеанс на странице, но когда я пытаюсь использовать его где-то еще, он просто не установлен или что-то в этом роде?
3. если я помещаю ее в начало включенного мной php-скрипта, я получаю сообщение об ошибке, что сеанс уже установлен
4. На
round2-team1
метка правильно получает значение сеанса? Ваша проблема в том, что если вы попробуетеecho $_SESSION['t_team1']
на другой странице, она не отображается?5. Да, однако, я пытаюсь отобразить ее на той же странице в другой метке, я просто сначала запускаю ее через скрипт, чтобы определить, следует ли ее отображать. Я могу включить этот скрипт, если это поможет, но он очень похож на тот, который уже включен?