2013-01-31 90 views
0

我与用户照片 然后将图像是保存到数据库中与BLOBWPDB WordPress的显示图像错误

当即时通讯将获得的图像,以它不干活数据库中创建插件。

我的代码 用户management.php

<table cellpadding="5" cellspacing="0"> 
    <thead> 
    <tr> 
     <th>Username</th> 
     <th>Email</th> 
     <th>First Name</th> 
     <th>Middle Name</th> 
     <th>Last Name</th> 
     <th>Status</th> 
     <th>Photo</th> 
     <th>Date</th> 
     <th>Option</th> 
    </tr> 
    </thead> 
    <tbody> 
<?php 
global $wpdb; 
$myadmin = $wpdb->get_results("SELECT * FROM jon_admin"); 
$color1 = "#F8F8F8"; 
$color2 = "#FFFFFF"; 
$row_count = 0; 
foreach ($myadmin as $admin) { 
    $myadminphoto = $wpdb->get_row("SELECT * FROM jon_admin_photo WHERE user_login = '".$admin->user_login."' "); 
$row_color = ($row_count % 2) ? $color1 : $color2; 
    ?> 
     <tr> 
      <td style="background-color:<? echo $row_color; ?>"><?php echo $admin->user_login; ?></td> 
      <td style="background-color:<? echo $row_color; ?>"><?php echo $admin->email; ?></td> 
      <td style="background-color:<? echo $row_color; ?>"><?php echo $admin->fname; ?></td> 
      <td style="background-color:<? echo $row_color; ?>"><?php echo $admin->mname; ?></td> 
      <td style="background-color:<? echo $row_color; ?>"><?php echo $admin->lname; ?></td> 
      <td style="background-color:<? echo $row_color; ?>"><?php echo $admin->user_status; ?></td> 
      <td style="background-color:<? echo $row_color; ?>"> 
      <img src="<?php echo plugins_url('photo.php', __FILE__); ?>?pid=<?php echo $myadminphoto->apid; ?>&img=adminphoto" />    </td> 
      <td style="background-color:<? echo $row_color; ?>"><?php echo $admin->date; ?></td> 
      <td style="background-color:<? echo $row_color; ?>">edit view delete</td> 
     </tr> 
<?php 
$row_count++; 
}  
?> 
    </tbody> 
</table> 

如果你看到这条线<img src="<?php echo plugins_url('photo.php', __FILE__); ?>?pid=<?php echo $myadminphoto->apid; ?>&img=adminphoto" /> IM通过调用另一页是photo.php

然后photo.php的文件是图像这

if ($_GET['img'] == 'adminphoto') { 
    global $wpdb; 
     ## VIEW ADMIN PHOTO 
     $id = $_GET['pid']; 
     $get_photo = $wpdb->get_row("SELECT * FROM jon_admin_photo WHERE apid = '".$id."'"); 

      $content = $get_photo->image; 
      $filetype = $get_photo->imgcode; 
      header('Content-type: $filetype'); 
      echo $content; 

    } 

你走了,没有图像显示也没有错误显示。

但是当我做这样的事情, 我拿到照片的URL,然后它错误说 Fatal error: Call to a member function get_row() on a non-object in C:\xampp\htdocs\web\advanced-nanny\wp-content\plugins\jon-user-management\photo.php on line 37

是不是有什么毛病我的代码右键点击开新标签 ?

请告诉我,谢谢...

回答

1

你需要在你的PHP文件中实例化的WordPress。

我认为这样做在WordPress,无需破坏你的逻辑最简单的方法是在你的插件定义一个函数像这样使用它像一个AJAX调用:

function MY_FUNCTION() { 
    if ($_GET['img'] == 'adminphoto') { 
     global $wpdb; 
     ## VIEW ADMIN PHOTO 
     $id = $_GET['pid']; 
     $get_photo = $wpdb->get_row("SELECT * FROM jon_admin_photo WHERE apid = '".$id."'"); 

      $content = $get_photo->image; 
      $filetype = $get_photo->imgcode; 
      header('Content-type: $filetype'); 
      echo $content; 

    } 
    exit(); 
} 
add_action('wp_ajax_MY_FUNCTION', 'MY_FUNCTION'); 
add_action('wp_ajax_nopriv_MY_FUNCTION', 'MY_FUNCTION');//for users that are not logged in 

然后,你可以这样调用它:

<img src="<?php echo admin_url('admin-ajax.php'); ?>?action=MY_FUNCTION&pid=<?php echo $myadminphoto->apid; ?>&img=adminphoto" /> 
+0

非常感谢你。 – Butternut