2014-10-23 1 views
0

У меня есть страница, в которой хранятся данные в сеансе массива и перенаправляются на другую страницу на другом сервере, а затем перенаправляются на страницу на первом сервере, но после перенаправления переменная сессии не является больше не действительна это моя первая страница, которая перенаправляет на другую страницу уведомления о том, что функция отправки и получения используют завиток, чтобы отправить некоторые аргументысеанс не проходит после перенаправления страницы на другой сервер и возврата обратно на php

<?php ob_start(); 
include_once("includes/student_session.php"); 
confirm_logged_in(); 
?> 
<?php include("includes/connection.php");?> 
<?php 
$message=""; 
if (isset($_POST['submit'])) 
    { $total_price=0; 
    session_start(); 
     $_SESSION['ex_ids']=array(); 
     foreach($_POST['azmoon'] as $exam) { 
     $exam_id=$exam; 
     $query1="select price from exam where exam_id={$exam_id}"; 
     $result1=mysqli_query($cnn,$query1); 
     $row=mysqli_fetch_array($result1); 
     $total_price+=$row['price']; 
     array_push($_SESSION['ex_ids'],$exam_id); 

    } 
     $_SESSION['total_price']=$total_price; 

    ?> 
<?php ?> 
<?php include_once("includes/sender.php"); 

$api=''; 
$redirect = ''; 
$url = ''; 
$result=send($url,$api,$total_price,$redirect); 
if($result > 0 && is_numeric($result)){ 
    $go = ""; 
    if (headers_sent()) { 
     die("Redirect failed. Please click on this link: <a href={$go}>"); 
    } 
    else{ 
     exit(header("Location: ".$go)); 
    } 
} 
<?php ob_end_flush(); ?> 

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

$result = get($url,$api,$trans_id,$id_get); 
$message = ""; 
if($result == 1){ 
    $student_id=$_SESSION[$student_id]; 
    foreach($_SESSION['ex_ids'] as $exam_id){ 
     echo $exam_id; 

    } 
$message = ''; 
    // header('Location: '); 
} 

Я проверил журнал ошибок на сервере, и он говорит: Invalid argument supplied for foreach() сначала я думал, что это потому, что я не положил ob_end_flush(); в конце первой страницы, я добавил, что до конца страницы, но он все еще не работает, так что другие причины могут быть для такой ошибки

+0

Возможно, это может вам помочь ??? http: //stackoverflow.com/questions/8598260/php-ob-end-flush-end-session – baao

+0

Есть ли что-нибудь, что пользователь должен делать с файлом на другом сервере? Если нет, то почему бы вам просто не положить материал в db, выполнить его на другом сервере с данными из db и перейти на следующую страницу без переключения серверов. – baao

+0

@michael. Я не могу получить доступ к другому серверу, потому что это платеж service – user3786134

ответ

0

Вы должны инициализировать сеансы в каждом файле .php, где хотите получить доступ к переменной $ _SESSION. Похоже, вы не сделали этого во втором файле.

+0

Я инициализирую сеансы, а не только этот сеанс, но никаких других сеансов в настоящее время не имеет действительной суммы ... – user3786134

+0

Вставьте полную вторую страницу или, по крайней мере, с фактической вершины. – vcanales

+0

Я на самом деле не понял, в чем проблема, но так как я почти все пытался решить, я изменил путь для хранения сессий, и теперь он работает правильно благодаря ответу – user3786134

Смежные вопросы