0

以下を使用して、PDFに署名を配置しています。私のフォームの img、img2、および img3 フィールドには、署名が文字列として含まれています。3 つのフィールドすべてにデータ/署名が含まれている限り、完全に機能します。いずれかが空白のままの場合、スクリプトは次の場所で停止します

file_put_contents($image, base64_decode($arr[1]));

1 つ以上の署名に署名していない場合、Firebug は、そのフィールドに対して postdata が送信されていないことを確認します。したがって、phpで何か間違ったことをしているに違いありません。

参照されたフィールドが空の場合、以下のコードはすべての画像処理を停止すべきではありませんか?

これを達成する別の方法はありますか?

助けてくれてありがとう!

require_once('fpdf/fpdf.php');
require_once('fpdi/fpdi.php');
$pdf = new FPDI('P', 'mm', 'Letter');
$pagecount = $pdf->setSourceFile($ffn);
for($i = 1 ; $i <= $pagecount ; $i++){
    $tpl  = $pdf->importPage($i);
    $pdf->AddPage();
    $pdf->useTemplate($tpl, 0, 0);
    if ($i==7) {
        if(isset($_POST['img'])){
            $hash = uniqid();
            $arr = explode(',',$_POST['img']);
            $image = dirname(__FILE__).'/results/sig'.$hash.'.png';
            file_put_contents($image, base64_decode($arr[1]));
            $pdf->Image($image,38,193,-200);
        };
        if(isset($_POST['img2'])){
            $hash2 = uniqid();
            $arr2 = explode(',',$_POST['img2']);
            $image2 = dirname(__FILE__).'/results/sig'.$hash2.'.png';
            file_put_contents($image2, base64_decode($arr2[1]));
            $pdf->Image($image2,38,217,-200);
        };
        if(isset($_POST['img3'])){
            $hash3 = uniqid();
            $arr3 = explode(',',$_POST['img3']);
            $image3 = dirname(__FILE__).'/results/sig'.$hash3.'.png';
            file_put_contents($image3, base64_decode($arr3[1]));
            $pdf->Image($image3,38,241,-200);
        };
    };
    if ($i==8) {
        $locmap = $_POST['_fid_209'];
        $pdf->Image('http://maps.googleapis.com/maps/api/staticmap?markers=color:blue%7Clabel:I%7C'.$locmap.'&zoom=14&size=800x800&sensor=false',63,90,90,0,'PNG');
    };
}
$pdf->Output($ffn, 'F');
4

1 に答える 1

1
if(isset($_POST['img']) && !empty($_POST['img'])) {

....

于 2012-12-28T21:08:14.640 に答える