2016-05-17 10 views
-2

Das ist mein Code, aber ich weiß nicht, wo der Fehler ist.
Er sagt, dass ich eine Fehlermeldung anzeigt, die Nachricht ist:

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 
} 

?> 

Ich will versuchen, isset zu setzen. Aber ich weiß nicht wie. Ich versuche schon, die include_once ("config.php") zu löschen ("config.php") .. aber nichts ist passiert.

Ich starte die Sitzung bereits im PHP. Kann mir jemand helfen zu finden, was mit meiner Codierung falsch ist?

Diese Codierung dient zum Anzeigen des Profils einer Person, die sich bereits im System angemeldet hat. Zum Beispiel logge ich mich in das System ein und wenn ich Profil anzeige, wird nur mein Profil angezeigt. Daher versuche ich den Code zu verwenden, den ich vorher gepostet habe.

Aber es ist ein Fehler. Ich habe bereits mein ic-Attribut in der Datenbank als Primärschlüssel festgelegt.

+0

Wenn Sie den Wert von $ _SESSION ['ic'] setzen? –

+0

Starten Sie die Sitzung? Andernfalls überprüfe '$ ic = isset ($ _SESSION ['ic'])? $ _SESSION ['ic']: ''; ' –

+0

ja sir.i starte die Sitzung bereits. – april

Antwort

1

Session Variable leer Array auf erste Anforderung, so könnte man es init:

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

@Darly Gill Warum würden Sie einen Beitrag bearbeiten, der falsch war, aber abgestimmt wurde? PeterM hat nicht einmal session_start() hinzugefügt. Jetzt; das ist unfair – Poiz

+0

@Poiz ist es ganz in Ordnung, jemandes Antwort zu verbessern. Jedenfalls sagt April, dass er bereits Sitzung begonnen hat ... – PeterM

1

Haben benutzen Sie einen

session_start();

vor haben Sie irgendeine $ _session in dieser PHP-Datei verwendet?

+0

ja, Sir. Starten Sie bereits die Sitzung – april

0

Sie sollten sicherstellen, dass die Sitzung bereits existiert, bevor Sie versuchen, darauf zuzugreifen. Sie haben damit begonnen, mit der Sitzung zu arbeiten. Hier ist mein Vorschlag:

<?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

Dies wird auch "undefined index" Hinweis zu erhöhen. – PeterM

+0

@PeterM ** A HINWEIS: JA !!! ** *** KEIN FEHLER, KEINE FATALE FEHLER, NICHT NOCH EINE WARNUNG !!! *** Aber was ist der Wert? ** "NULL" ** Aber lass mich es für dich bearbeiten, wenn es dich glücklicher macht .... – Poiz

+0

@PeterM Der Code enthält jetzt ein einfaches ternäres Operationskonstrukt: ** isset ($ _ SESSION ['ic'])? $ _SESSION ['ic']: null; ** der Unterschied ist, es war immer noch mein Edit ... Siehe den Punkt? – Poiz

0

mehrere Erklärung für $ ic

wenn Sie bereits eine Sitzung erstellt, dann verwenden:

session_start(); 

oder wenn Sie ein neues erstellen möchten, verwenden Sie:

Verwandte Themen