警告:fseek():流不支持使用 FPDI 查找
Warning: fseek(): stream does not support seeking with FPDI
我试图查看类似的帖子,但似乎没有任何效果。
这是我的代码:
<?php
setlocale(LC_ALL, 'it_IT');
require_once('lib/fpdf/fpdf.php');
require_once('lib/fpdi/fpdi.php');
require_once('lib/phpmailer/class.phpmailer.php');
$mysqli = new mysqli("localhost", "user", "psw", "db");
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
$nome = $_POST[nome];
$email = $_POST[email];
$importo = intval($_POST[importo]);
$telefono = intval($_POST[telefono]);
$pagamento = $_POST[pagamento];
$agenzia = $_POST[agenzia];
$idp = intval($_POST[id]);
$ip = getRealIpAddr();
$pagina = urldecode($_SERVER['HTTP_REFERER']);
$device = $_SERVER['HTTP_USER_AGENT'];
$querylista = "SELECT * FROM ListeSposi WHERE id =".$idp;
$datilista = $mysqli->query($querylista);
$row = $datilista->fetch_array(MYSQLI_ASSOC);
$NomeSposo = $row['NomeSposo'];
$CognomeSposo = $row['CognomeSposo'];
$NomeSposa = $row['NomeSposa'];
$CognomeSposa = $row['CognomeSposa'];
// initiate FPDI
$pdf = new FPDI();
// add a page
$pdf->AddPage();
// set the source file
$pdf->setSourceFile("http://www.vantravelgroup.com/sposi/buonoricevuta.pdf");
// import page 1
$tplIdx = $pdf->importPage(1);
// use the imported page and place it at point 10,10 with a width of 100 mm
$pdf->useTemplate($tplIdx, 10, 10, 100);
// now write some text above the imported page
$pdf->SetFont('Arial');
$pdf->SetTextColor(255, 0, 0);
$pdf->SetXY(30, 30);
$pdf->Write(0, 'PROVAAAAAAAAAAAAAAAAAAAA');
$buonoricevuta="../ricevute/RicevutaBuono".$nome.".pdf";
$pdf->Output($buonoricevuta,'F');
$insert = "INSERT INTO Donazioni (id_lista, nome, email, importo, telefono, agenzia, indirizzo_ip, pagina, dispositivo, buonoricevuta)
VALUES ('".$idp."', '".$nome."', '".$email."', '".$importo."', ".$telefono.", '".$agenzia."', '".$ip."', '".$pagina."', '".$device."', '".$buonoricevuta."')";
// Eseguo la query per inserire una nuova riga e chiudo la connessione
if ($mysqli->query($insert) === TRUE) {
$status = "Abbiamo registrato correttamente la transazione, ecco un riepilogo:";
} else {
$status = "Lo scambio di dati non è andato a buon fine, questo è un messaggio diagnostico. </br>" . $newRow . "<br>" . $conn->error;
}
$mysqli->close();
$error = array();
// Mando le email
if(empty($error))
{
$emailUser = new PHPMailer();
$emailUser->From = 'liste@vantravelgroup.com';
$emailUser->FromName = 'Vantravel Group - Il Gabbiano - Istantravel - Globmaster';
$emailUser->Subject = 'Qualcuno ha partecipato alla tua lista!';
$emailUser->MsgHTML('<img src="'.$logo.'" alt="Logo agenzia"><br>'.$status.'<br>Nome: '.$nome.'<br>Email: '.$email.'<br>Importo: '.$importo.'<br>Telefono: '.$telefono.'<br>Tipo di pagamento: '.$pagamento.'<br>Agenzia di Riferimento: '.$agenzia.'<br>In allegato può trovare in buono/ricevuta che le da diritto a uno sconto, una volta completato il pagamento, sul suo prossimo viaggio prenotato in una delle nostre agenzie.');
$emailUser->AddAddress( $email );
$emailUser->AddAttachment( $buonoricevuta , 'Buono_Ricevuta.pdf' );
return $emailUser->Send();
$emailAdmin = new PHPMailer();
$emailAdmin->From = 'liste@vantravelgroup.com';
$emailAdmin->FromName = 'Vantravel Group - Il Gabbiano - Istantravel - Globmaster';
$emailAdmin->Subject = 'Qualcuno ha partecipato a una lista!';
$emailAdmin->MsgHTML('<img src="'.$logo.'" alt="Logo agenzia"><br>'.$status.'<br>Nome: '.$nome.'<br>Email: '.$email.'<br>Importo: '.$importo.'<br>Telefono: '.$telefono.'<br>Tipo di pagamento: '.$pagamento.'<br>Agenzia di Riferimento: '.$agenzia.'<br>In allegato può trovare in buono/ricevuta che le da diritto a uno sconto, una volta completato il pagamento, sul suo prossimo viaggio prenotato in una delle nostre agenzie.' );
return $emailAdmin->Send();
}
function getRealIpAddr() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip=$_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
?>
出来的错误是:
Warning: fseek(): stream does not support seeking in /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php on line 243
Warning: fseek(): stream does not support seeking in /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php on line 274
Warning: fseek(): stream does not support seeking in /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php on line 276
Fatal error: Uncaught exception 'Exception' with message 'Unable to find "startxref" keyword.' in /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php:287 Stack trace: #0 /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php(195): pdf_parser->_findXref() #1 /home/vantra5/public_html/sposi/default/lib/fpdi/fpdi_pdf_parser.php(64): pdf_parser->__construct('http://www.vant...') #2 /home/vantra5/public_html/sposi/default/lib/fpdi/fpdi.php(123): fpdi_pdf_parser->__construct('http://www.vant...') #3 /home/vantra5/public_html/sposi/default/lib/fpdi/fpdi.php(101): FPDI->_getPdfParser('http://www.vant...') #4 /home/vantra5/public_html/sposi/default/mail.php(45): FPDI->setSourceFile('http://www.vant...') #5 {main} thrown in /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php on line 287
我什至确定 pdf 模板是 < 1.5 版!
知道问题的根源吗?
使用本地路径而不是 URL:
$pdf->setSourceFile("/local/path/to/sposi/buonoricevuta.pdf");
我试图查看类似的帖子,但似乎没有任何效果。 这是我的代码:
<?php
setlocale(LC_ALL, 'it_IT');
require_once('lib/fpdf/fpdf.php');
require_once('lib/fpdi/fpdi.php');
require_once('lib/phpmailer/class.phpmailer.php');
$mysqli = new mysqli("localhost", "user", "psw", "db");
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
$nome = $_POST[nome];
$email = $_POST[email];
$importo = intval($_POST[importo]);
$telefono = intval($_POST[telefono]);
$pagamento = $_POST[pagamento];
$agenzia = $_POST[agenzia];
$idp = intval($_POST[id]);
$ip = getRealIpAddr();
$pagina = urldecode($_SERVER['HTTP_REFERER']);
$device = $_SERVER['HTTP_USER_AGENT'];
$querylista = "SELECT * FROM ListeSposi WHERE id =".$idp;
$datilista = $mysqli->query($querylista);
$row = $datilista->fetch_array(MYSQLI_ASSOC);
$NomeSposo = $row['NomeSposo'];
$CognomeSposo = $row['CognomeSposo'];
$NomeSposa = $row['NomeSposa'];
$CognomeSposa = $row['CognomeSposa'];
// initiate FPDI
$pdf = new FPDI();
// add a page
$pdf->AddPage();
// set the source file
$pdf->setSourceFile("http://www.vantravelgroup.com/sposi/buonoricevuta.pdf");
// import page 1
$tplIdx = $pdf->importPage(1);
// use the imported page and place it at point 10,10 with a width of 100 mm
$pdf->useTemplate($tplIdx, 10, 10, 100);
// now write some text above the imported page
$pdf->SetFont('Arial');
$pdf->SetTextColor(255, 0, 0);
$pdf->SetXY(30, 30);
$pdf->Write(0, 'PROVAAAAAAAAAAAAAAAAAAAA');
$buonoricevuta="../ricevute/RicevutaBuono".$nome.".pdf";
$pdf->Output($buonoricevuta,'F');
$insert = "INSERT INTO Donazioni (id_lista, nome, email, importo, telefono, agenzia, indirizzo_ip, pagina, dispositivo, buonoricevuta)
VALUES ('".$idp."', '".$nome."', '".$email."', '".$importo."', ".$telefono.", '".$agenzia."', '".$ip."', '".$pagina."', '".$device."', '".$buonoricevuta."')";
// Eseguo la query per inserire una nuova riga e chiudo la connessione
if ($mysqli->query($insert) === TRUE) {
$status = "Abbiamo registrato correttamente la transazione, ecco un riepilogo:";
} else {
$status = "Lo scambio di dati non è andato a buon fine, questo è un messaggio diagnostico. </br>" . $newRow . "<br>" . $conn->error;
}
$mysqli->close();
$error = array();
// Mando le email
if(empty($error))
{
$emailUser = new PHPMailer();
$emailUser->From = 'liste@vantravelgroup.com';
$emailUser->FromName = 'Vantravel Group - Il Gabbiano - Istantravel - Globmaster';
$emailUser->Subject = 'Qualcuno ha partecipato alla tua lista!';
$emailUser->MsgHTML('<img src="'.$logo.'" alt="Logo agenzia"><br>'.$status.'<br>Nome: '.$nome.'<br>Email: '.$email.'<br>Importo: '.$importo.'<br>Telefono: '.$telefono.'<br>Tipo di pagamento: '.$pagamento.'<br>Agenzia di Riferimento: '.$agenzia.'<br>In allegato può trovare in buono/ricevuta che le da diritto a uno sconto, una volta completato il pagamento, sul suo prossimo viaggio prenotato in una delle nostre agenzie.');
$emailUser->AddAddress( $email );
$emailUser->AddAttachment( $buonoricevuta , 'Buono_Ricevuta.pdf' );
return $emailUser->Send();
$emailAdmin = new PHPMailer();
$emailAdmin->From = 'liste@vantravelgroup.com';
$emailAdmin->FromName = 'Vantravel Group - Il Gabbiano - Istantravel - Globmaster';
$emailAdmin->Subject = 'Qualcuno ha partecipato a una lista!';
$emailAdmin->MsgHTML('<img src="'.$logo.'" alt="Logo agenzia"><br>'.$status.'<br>Nome: '.$nome.'<br>Email: '.$email.'<br>Importo: '.$importo.'<br>Telefono: '.$telefono.'<br>Tipo di pagamento: '.$pagamento.'<br>Agenzia di Riferimento: '.$agenzia.'<br>In allegato può trovare in buono/ricevuta che le da diritto a uno sconto, una volta completato il pagamento, sul suo prossimo viaggio prenotato in una delle nostre agenzie.' );
return $emailAdmin->Send();
}
function getRealIpAddr() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip=$_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
?>
出来的错误是:
Warning: fseek(): stream does not support seeking in /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php on line 243
Warning: fseek(): stream does not support seeking in /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php on line 274
Warning: fseek(): stream does not support seeking in /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php on line 276
Fatal error: Uncaught exception 'Exception' with message 'Unable to find "startxref" keyword.' in /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php:287 Stack trace: #0 /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php(195): pdf_parser->_findXref() #1 /home/vantra5/public_html/sposi/default/lib/fpdi/fpdi_pdf_parser.php(64): pdf_parser->__construct('http://www.vant...') #2 /home/vantra5/public_html/sposi/default/lib/fpdi/fpdi.php(123): fpdi_pdf_parser->__construct('http://www.vant...') #3 /home/vantra5/public_html/sposi/default/lib/fpdi/fpdi.php(101): FPDI->_getPdfParser('http://www.vant...') #4 /home/vantra5/public_html/sposi/default/mail.php(45): FPDI->setSourceFile('http://www.vant...') #5 {main} thrown in /home/vantra5/public_html/sposi/default/lib/fpdi/pdf_parser.php on line 287
我什至确定 pdf 模板是 < 1.5 版!
知道问题的根源吗?
使用本地路径而不是 URL:
$pdf->setSourceFile("/local/path/to/sposi/buonoricevuta.pdf");