herşey çalışyor ama dosyaları bir türlü programa gönderemedim.
maya/kimza.php de çalışıyor
dosyalarda $dosya değişkeninde dosya/sertifika/dosyadi.pdf gibi düşünün
yine maya klasörü içinde.
döküman şu https://ftp.6kare.com/files/kolayimza/api/
kodu şu
<?php
include("ayar/confing.php"); // ../ yerine doğrudan ayar klasörüne erişiyoruz
function getUrl($query) {
return 'http://' . $_SERVER["HTTP_HOST"] . '/maya/kimza.php?' . $query; // URL'de yeni konum
}
$gelen = $_GET["id"]; // Gelen id parametresi
$cek = mysqli_query($conn, "SELECT dosya FROM cihaz_kabul WHERE pid='$gelen'"); // PDF dosyalarını çek
while ($row = mysqli_fetch_array($cek)) {
$dosya = $row["dosya"]; // Veritabanındaki dosya yolu
$gercekDosyaYolu = $dosya; // Gerçek dosya yolu (artık ../ gerek yok)
$dosyaURL = 'http://' . $_SERVER['HTTP_HOST'] . '/maya/' . $dosya; // Tarayıcıda kullanılacak tam URL
// Dinamik imza isteği URL'si
$query = http_build_query(['id' => $gelen, 'op' => 'request', 'file' => urlencode($dosya)]);
$requestUrl = getUrl($query);
// JavaScript tarafında işlem başlatan HTML
echo "
<html>
<head>
<script src='https://code.jquery.com/jquery-git.min.js' type='text/javascript'></script>
</head>
<body>
<script type='text/javascript'>
$(document).ready(function() {
$('<iframe></iframe>').appendTo('body').attr('src', 'sign://?xs=$requestUrl');
window.location.href = '" . getUrl("id=$gelen&op=wait&file=" . urlencode($dosya)) . "';
});
</script>
</body>
</html>";
}
// E-imza işlemleri
switch ($_GET['op'] ?? '') {
case 'wait': // İmza sürecini bekle
ob_start();
$dosyaURL = $_GET['file'];
echo '<html><body>';
if (file_exists('./sig.json')) {
echo 'İmza alındı';
echo '<script>';
echo "alert('" . file_get_contents('./sig.json') . "');";
echo "window.location = '" . getUrl('') . "';";
echo '</script>';
} else {
echo 'İmza bekleniyor';
echo "$dosyaURL<br>";
sleep(3);
flush();
echo '<script>';
echo "window.location = '" . $_SERVER['REQUEST_URI'] . "';";
echo '</script>';
}
echo '</body></html>';
return;
break;
case 'request': // JSON isteği hazırla
$dosyaURL = $_GET['file'];
header('Content-type: application/json');
echo '{';
echo ' "id":' . $_GET['id'] . ',';
echo ' "resources": [{';
echo ' "source" : "' . getUrl("id=" . $_GET['id'] . "&op=content&file=" . urlencode($_GET['file'])) . '",';
echo ' "sourceName" : "' . basename($_GET['file']) . '"';
echo ' }],';
echo ' "responseUrl": "' . getUrl("id=" . $_GET['id'] . "&op=response&file=" . urlencode($_GET['file'])) . '"';
echo '}';
return;
break;
case 'content': // Dosyayı sun
$dosyaURL = $_GET['file'];
header('Content-type: application/pdf');
readfile($dosyaURL);
break;
case 'response': // İmzalanmış dosyayı al ve kaydet
$data = file_get_contents('php://input');
$decoded = json_decode($data, true);
if (isset($decoded['resources'][0]['source']) && isset($decoded['resources'][0]['signature'])) {
$orijinalDosya = $_GET['file'];
file_put_contents($orijinalDosya, base64_decode($decoded['resources'][0]['signature']));
echo "İmzalı dosya kaydedildi: " . $orijinalDosya;
} else {
echo "İmzalı dosya alınamadı.";
}
// JSON verisini kaydet
file_put_contents('./sig.json', $data);
return;
break;
}
?>yardım eder misiniz? nerede hata yapıyorum?