2016-05-17 8 views
-2

これは私のコードですが、どこでエラーが発生するのか分かりません。私はISSETを入れて試してみたい

Undefined index: ic in C:\xampp\htdocs\fyp\profile.php on line 57. 

<?php 
include_once("config.php"); 
$ic = $_SESSION['ic'];//-----------------------------------this is line 57 
$sql = "SELECT * FROM studentprofile WHERE ic = '$ic'"; 
$result = mysql_query($sql,$conn); 

while($row = mysql_fetch_array($result)) 
{ 
    $id  = $row['id']; 
    $ic  = $row['ic']; 
    $name = $row['name']; 
    $course = $row['course']; 
    $faculty = $row['faculty']; 
    $address = $row['address']; 
    $hpno = $row['hpno']; 
    $gender = $row['gender']; 
    $email = $row['email']; 
    ?> 

<table width="70%" height="80%" border="1" align="center"> 
<tr> 
<th>ID</th> 
<td><?php echo $id;?></td> 
</tr> 
<tr> 
<th>IC No</th> 
<td><?php echo $ic;?></td> 
</tr> 
<tr> 
<th>Name</th> 
<td><?php echo $name;?></td> 
</tr> 
<tr> 
<th>Course</th> 
<td><?php echo $course;?></td> 
</tr> 
<tr> 
<th>Faculty</th> 
<td><?php echo $faculty;?></td> 
</tr> 
<tr> 
<th>Address</th> 
<td><?php echo $address;?></td> 
</tr> 
<tr> 
<th>Handphone No</th> 
<td><?php echo $hpno;?></td> 
</tr> 
<tr> 
<th>Gender</th> 
<td><?php echo $gender;?></td> 
</tr> 
<tr> 
<th>Email</th> 
<td><?php echo $email;?></td> 
</tr> 
</table> 
<?php 
} 

?> 


それは私が通告され、エラーを得たことを言います。しかし、私はどのように知りません。私はすでにinclude_once( "config.php")をインクルード( "config.php")して削除しようとしましたが、何も起こりませんでした。

私はすでにPHPでセッションを開始しています。私のコーディングで何が間違っているかを誰かに教えてもらえますか?

このコーディングは、すでにシステムにログインしているユーザーのプロファイルを表示するためのコーディングです。たとえば、私はシステムにログインし、プロフィールを見ると私のプロフィールだけが表示されます。したがって、前に投稿したコードを使用しようとしています。

しかし、それは誤りです。私はすでにデータベース内の自分の属性を主キーとして設定しています。あなたはそれを初期化できるよう

+0

$ _SESSION ['ic']の値を設定すると、 –

+0

セッションを開始しますか?それ以外の場合は '$ ic = isset($ _SESSION ['ic'])をチェックしますか? $ _SESSION ['ic']: ''; ' –

+0

はいsir.iはすでにセッションを開始しています。 – april

答えて

1

セッション変数は、最初の要求に空の配列である:

session_start(); 
if(!isset($_SESSION['ic'])) 
{ 
    $_SESSION['ic'] = 'my default value'; 
} 
$ic = $_SESSION['ic']; 
+0

@Darly Gillなぜあなたは間違っていたが投票された投稿を編集しますか? PeterMはsession_start()を追加しませんでした。さて、それは不公平です – Poiz

+0

@Poiz誰かの答えを改善するのはかなり大丈夫です。とにかく、4月に彼はすでにセッションを開始していると述べています... – PeterM

1

あなたは(

のsession_startを使用しました)。

より前に、そのPHPファイルに$ _sessionを使用しましたか?

+0

はいサー。既にセッションを開始します – april

0

セッションにアクセスする前に、セッションが既に存在することを確認する必要があります。あなたはそれをしないでセッションを開始しました。ここに私の提案です:

<?php 
     // YOU SHOULD MAKE SURE THE SESSION EXIST FIRST BEFORE USING IT... 
     // THIS SHOULD BE THE FIRST LINE OF CODE IN YOUR SCRIPT IF YOU ARE USING SESSION:   
     if (session_status() == PHP_SESSION_NONE || session_id() == '') { 
      session_start(); 
     } 

     include_once("config.php"); 
     $ic    = isset($_SESSION['ic'])? $_SESSION['ic'] : null; 
     $sql   = "SELECT * FROM studentprofile WHERE ic = '$ic'"; 
     $result   = mysql_query($sql,$conn); 

     while($row = mysql_fetch_array($result)) 
     { 
      $id   = $row['id']; 
      $ic   = $row['ic']; 
      $name  = $row['name']; 
      $course  = $row['course']; 
      $faculty = $row['faculty']; 
      $address = $row['address']; 
      $hpno  = $row['hpno']; 
      $gender  = $row['gender']; 
      $email  = $row['email']; 
      ?> 

      <table width="70%" height="80%" border="1" align="center"> 
       <tr> 
        <th>ID</th> 
        <td><?php echo $id;?></td> 
       </tr> 
       <tr> 
        <th>IC No</th> 
        <td><?php echo $ic;?></td> 
       </tr> 
       <tr> 
        <th>Name</th> 
        <td><?php echo $name;?></td> 
       </tr> 
       <tr> 
        <th>Course</th> 
        <td><?php echo $course;?></td> 
       </tr> 
       <tr> 
        <th>Faculty</th> 
        <td><?php echo $faculty;?></td> 
       </tr> 
       <tr> 
        <th>Address</th> 
        <td><?php echo $address;?></td> 
       </tr> 
       <tr> 
        <th>Handphone No</th> 
        <td><?php echo $hpno;?></td> 
       </tr> 
       <tr> 
        <th>Gender</th> 
        <td><?php echo $gender;?></td> 
       </tr> 
       <tr> 
        <th>Email</th> 
        <td><?php echo $email;?></td> 
       </tr> 
      </table> 
      <?php 
     } 

    ?> 
+0

これは "未定義インデックス"通知も発生させます。 – PeterM

+0

@PeterM ** A注意:はい!!! ** ***エラーではなく、致命的なエラーではなく、警告ではありません!!! ***しかし値は何ですか? ** "NULL" **しかし、あなたがもっと幸せになれば、それを編集してみましょう。 – Poiz

+0

@PeterMこのコードには、単純な三項演算構造が含まれています:** isset($ _ SESSION ['ic'])? $ _SESSION ['ic']:null; **違いは、それはまだ私の編集だった...ポイントを見ますか? – Poiz

0

$ IC

のために複数の宣言では、すでに使用し、その後、セッションを作成した場合:

session_start(); 

か新しいもの、使用を作成する場合:

$_SESSION['ic'] = $row['ic']; 
関連する問題