2011-07-26 3 views
1

リダイレクトで値$エラーを表示するにはどうすればよいですか?
私に例を挙げてください。あなたの現在の仕様に基づいて
リダイレクトの値の変数を表示しますか?

if (! $files) 
     { 
      $error = array('error' => $this->upload->display_errors()); 
      redirect('hello/hi/insert_foreign'); 
     } 
+1

は、文字列を照会し、スーパーグローバルでのGETを使用して、それを追加し、あなたのコントローラで

それを取得します。 –

+0

セッションで一時変数を作成します。場合によっては、ストアする変数をクエリ文字列に入れることはできません。 –

+0

私に例を挙げてください。 –

答えて

1

は少し感覚が不足しています。

ヘッダーリダイレクトは、サーバーへのhttp要求です。この場合、別のURLにリダイレクトされます。通常は、ページが見つからない場合は404などの特定の意味を持つステータスコードを持ちます(See a list of error codes))。アクションの後の応答のように、ユーザーをターゲットとし、UIに属する仲裁情報やカスタム情報を渡すために、 。あなたがこれをしたい場合は、たとえば

、あなたはより良いPHPを使用して遅れ、タイムアウトのいずれかを使用したい:

if (! $files) 
     { 
      $data['error'] = $this->upload->display_errors(); 
      $this->load->view('show_error',$data); 
      sleep(5); 
      redirect('hello/hi/insert_foreign', 'refresh'); 
     } 

またはCIのflashdataを使用して、ユーザーに一時的なメッセージを表示するのに便利である(マニュアルを参照してくださいより良い説明のためにhere):

$this->session->flashdata('error'); 

またはJavaScriptを使用することができます

$data['error'] = $this->upload->display_errors(); 
$this->load->view('show_error', $data); 

そして、あなたのビューshow_error.php中:

<?php echo $error; ?> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
     var href = "<?php echo site_url('hello/hi/insert_foreing');?>"; 
     setTimeout(function() { window.location.href = href; }, 3000); 
    }); 
    </script> 
0

、私はこの思い付いた:

<?php 
    echo implode('<br>', $error); 
?> 

EDIT

は、次のページにエラーを表示します。私は$ _SESSIONでそれを行います。 GETメソッドを使って何かを追加する必要はありません。実際には、セッションが

<?php 
    if (!$files) { 
     $_SESSION['upload_errors'] = $this->upload->display_errors()); 
     redirect('hello/hi/insert_foreign'); 
    } 
?> 

ページどこを...もちろん良く見て、あなたは、単に配列からソースエラーを取得するGETのmethod..insteadから何かを変換する必要はありませんが、はるかに安全でなければなりませんリダイレクトされます:あなたは、あなたがやっている行動で考えるならば、あなたが求めている何

<?php 
    echo implode('<br>', $_SESSION['upload_errors']); 
?> 
+0

$エラーはどのようにリダイレクト( 'hello/hi/insert_foreign')に送信されますか? –

+0

あなたはあなたの質問にそれを指定していません。とにかく、これは基本的なアイデアです。そして、現在の問題では、これが最も良い解決策です。 –

0
if (! $files) 
{ 
    $error = array('error' => $this->upload->display_errors()); 
    $_SESSION['error'] = $error; 
    redirect('hello/hi/insert_foreign'); 
} 

//on other page 
if(isset($_SESSION['error'])) { 
    $error = $_SESSION['error']; 
    //output error 
    unset($_SESSION['error']); 
} 
関連する問題