2015-04-16 6 views
0

Я пытаюсь вывести файлы PDF, которые потом, я хочу, чтобы они были загружены, не показаны. Но прямо сейчас у меня проблема. Я создаю плагин WordPress, но я получаю эту ошибку:Ошибка FPDF в wordpress

FPDF error: Some data has already been output, can't send PDF file (output started at C:\xampp\htdocs\wp-admin\menu-header.php:132)

Это код, который я в настоящее время:

<?php 
/** 
* Plugin Name: PHPtoPDFTest 
* Plugin URI: http://mypluginuri.com/ 
* Description: Turns PHP into a PDF 
* Version: 1.0 or whatever version of the plugin (pretty self explanatory) 
* Author: Brent Lobbezoo 
* Author URI: Author's website 
* License: A "Slug" license name e.g. GPL12 
*/ 
add_action('admin_menu', 'PHPtoPDFTest_admin_actions'); 
function PHPtoPDFTest_admin_actions() { 
    add_options_page('PHPtoPDFTest', 'PHPtoPDFTest', 'manage_options', __FILE__, 'PHPtoPDFTest_admin'); 
} 

function PHPtoPDFTest_admin() { 
    //Hier worden de database inloggegevens opgeslagen 
    $username = "root"; 
    $password = ""; 
    $hostname = "localhost"; 

    //Hier wordt connectie gemaakt met mysql 
    $dbhandle = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL"); 
    echo "Connected to MySQL<br>"; 

    //Hier wordt de database Test gekozen, waarin alles op dit moment staat opgeslagen 
    $selected = mysql_select_db("test",$dbhandle) or die("Could not select examples"); 

    //Het result, een array, van de query wordt hier in $result gestopt 
    $result = mysql_query(
     " 
     SELECT lid.Lid_ID, lid.Naam, lid.Adres, lid.Email, 
     (SELECT Bedrag FROM Tarief WHERE Soort = 'contributie' LIMIT 1) AS 'Contributie', 
     (SELECT Bedrag FROM Tarief WHERE Soort = 'liggeld' LIMIT 1)*IFNULL(schip.lengte,0) AS 'Liggeld', 
     (SELECT Bedrag FROM Tarief WHERE Soort = 'contributie' LIMIT 1)+ 
     (SELECT Bedrag FROM Tarief WHERE Soort = 'liggeld' LIMIT 1)*IFNULL(schip.lengte,0) AS 'Totaal' 
     FROM lid 
     LEFT JOIN Schip ON lid.Schip=schip.Naam 
     WHERE lid.ContributieBetaald <> 'ja' 
     " 
     ); 

    ob_start(); 
    require('fpdf.php'); 

    while ($row = mysql_fetch_assoc($result)) { 
     $pdf = new FPDF(); 
     $pdf->AddPage(); 
     $pdf->SetFont('Arial','B',16); 
     $pdf->Cell(40,10,$row{'Naam'},1); 
     $pdf->Cell(40,10,$row{'Adres'},1); 
     $pdf->Cell(40,10,$row{'Email'},1); 
     $pdf->Cell(40,10,'Contributie bedrag: '.$row{'Contributie'},1); 
     $pdf->Cell(40,10,'Liggeld Bedrag: '.$row{'Liggeld'},1); 
     $pdf->Cell(40,10,'Totaal bedrag: '.$row{'Totaal'},1); 
     $pdf->Output(); 
    } 
} 
?> 

В принципе, мне нужно сгенерировать квитанцию ​​для каждого пользователя в база данных (в настоящее время только две), но по какой-то причине появляется всплывающее сообщение!

Это код на линии 132 от mneu-заголовка:

echo "\n\t<a href='{$submenu_items[0][2]}'$class $aria_attributes>$arrow<div class='wp-menu-image$img_class'$img_style>$img</div><div class='wp-menu-name'>$title</div></a>"; 

Если кто-то знает, как решить эту проблему, я был бы очень благодарностью!

ответ

1

FPDF не может выводить в браузер, если ранее вы выводили текст на экран. Похоже, что заголовок вызывает эту проблему из того, что вы показали. Вы должны открыть пустую страницу или окно, которое не распространяется или не вызывает шаблоны WP, и не создает там PDF.

Смежные вопросы