0

下面的代码是我的表单操作,但是当成功登录时,所有数据都显示在我的登录页面上,但它不会显示图像,而是显示图像的名称。

<?php 
// Connect to the database
require('config.php'); 
// Set username and password variables for this script
$user = mysql_real_escape_string($_POST["username"]);
$pass = mysql_real_escape_string($_POST["password"]); 
// Make sure the username and password match, selecting all the client's
// data from the database if it does. Store the data into $clientdata
$clientdata = mysql_query("SELECT * FROM $tbl_name WHERE username='$user' and password='$pass'")
 or die (mysql_error());
// Put the $clientdata query into an array we can work with
$data = mysql_fetch_array($clientdata, MYSQL_ASSOC);
// If the username and password matched, we should have one entry in our
// $clientdata array. If not, we should have 0. So, we can use a simple
// if/else statement
if(mysql_num_rows($clientdata) == 1){
$_SESSION['username'] = $user;
$_SESSION['firstname'] = $data['firstname'];
   $_SESSION['lastname'] = $data['lastname'];
    $_SESSION['address'] = $data['address'];
 $_SESSION['nationality'] = $data['nationality'];
   $_SESSION['id'] = $data['id'];
  $_SESSION['photo']=$data['photo'];
?>
<?php
          }else{echo "Click Login to try again or Register for an account. 
          Thank You";}
        ?>

我创建了一个 html 表,其中将放置图像,图像上传的文本字段是照片,图像目录是上传。

<tr>
    <td bgcolor="#999999">Passport</td>
    <td bgcolor="#FFFFFF"><p><?php echo "" . $_SESSION['photo'] . ""; ?></p></tr>
4

1 回答 1

0

您说它打印出图像的名称,并且图像存储在您的图像目录中。我猜这意味着$_SESSION[ 'photo' ]包含图像文件的路径。在这种情况下,您需要将其正确包装在 HTML 中。

<img src="<?php echo $_SESSION[ 'photo' ] ?>" />

或者您上传的图像可能位于图像文件夹中,而您仅将实际文件名存储在 中$_SESSION[ 'photo' ],然后改为执行此操作。

<img src="/your-images-folder/<?php echo $_SESSION[ 'photo' ] ?>" />

如果图像存储在您的 Web 根目录之外,那么您需要将它们复制到您的 Web 根目录,或者您需要设置一个 PHP 脚本来接收未处理的图像请求并从您上传的文件中提取图像文件夹那样。

您可以通过将 URL 重写规则放入服务器配置(例如 Apache 的 .conf 文件)中来做到这一点,这样任何请求,例如,/uploaded-images/*图像文件实际上不存在的地方,都会被重写到您的 PHP 脚本中。然后,您的 PHP 脚本可以在上传文件夹中找到正确的图像,并使用header()file_get_contents()函数,以正确的 mime 类型将其显示给用户。

于 2013-08-19T09:31:49.617 回答