Current File : /home/users/barii/public_html/finansenl.com.pl/wodki/admin/ajax_generate_serce.php |
<?php
ini_set('display_errors', 0); // Wyłącz wyświetlanie błędów w przeglądarce
ini_set('log_errors', 1); // Włącz logowanie błędów
error_reporting(E_ALL);
ini_set('error_log', __DIR__ . '/heart_php_errors.log'); // Ustaw ścieżkę do pliku logu błędów
require('./classes/the_mysql.class.php');
header('Content-Type: application/json; charset=utf-8');
$mysql = new MySQL();
// Zamiast sztywnych wartości pobieramy z $_POST:
if (!isset($_POST['serca_wzor'], $_POST['serca_imie'], $_POST['serca_data'], $_POST['serca_ilosc'])) {
echo json_encode([
'success' => false,
'message' => 'Brak wymaganych parametrów (serca_wzor, serca_imie, serca_data, serca_ilosc).'
]);
exit;
}
$pattern = $_POST['serca_wzor'];
$name = $_POST['serca_imie'];
$date = $_POST['serca_data'];
$amount = (int)$_POST['serca_ilosc'];
$id_zamowienia = $_POST['generuj_skladke_idzamowienia'];
// Możesz też pobrać login z hidden, np.:
$login = isset($_POST['generuj_skladke_nick']) ? $_POST['generuj_skladke_nick'] : 'DefaultLogin';
// Wygeneruj link do QR - przykład:
$qrlink = "https://mail.google.com/mail/u/0/#search/".$login;
// Adres twojego serwera Flask
$flaskUrl = "http://91.231.182.79:8080/generate";
// Przygotuj dane do wysłania do Flaska
$postData = [
"name" => $name,
"date" => $date,
"pattern" => $pattern,
"login" => $login,
"amount" => $amount,
"qrlink" => $qrlink
];
// Tablica odpowiedzi
$responseArray = [
"success" => false,
"message" => "",
"zip_url" => "",
"php_zip_path" => "",
"extract_dir" => ""
];
// 1) Wyślij zapytanie POST do Flask
$ch = curl_init($flaskUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
// Sprawdź czy cURL się nie wysypał
if ($response === false) {
$responseArray['success'] = false;
$responseArray['message'] = 'Błąd cURL: ' . curl_error($ch);
echo json_encode($responseArray);
exit;
}
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode !== 200) {
$responseArray['success'] = false;
$responseArray['message'] = "Błąd po stronie Flask, kod HTTP: $httpcode\nOdpowiedź: $response";
echo json_encode($responseArray);
exit;
}
// 2) Parsuj JSON z Flask
$data = json_decode($response, true);
if (!$data || !isset($data['success'])) {
$responseArray['success'] = false;
$responseArray['message'] = "Błąd dekodowania JSON lub brak pola 'success'. Otrzymano: $response";
echo json_encode($responseArray);
exit;
}
if (!$data['success']) {
$responseArray['success'] = false;
$responseArray['message'] = "Generowanie nie powiodło się: " . $data['message'];
echo json_encode($responseArray);
exit;
}
// 3) Mamy zip_url w odpowiedzi
$zipUrl = $data['zip_url'];
$responseArray['zip_url'] = $zipUrl;
// 4) Pobierz ZIP z Flask
$downloadUrl = "http://91.231.182.79:8080" . $zipUrl;
$localZipPath = __DIR__ . "/pobrane_hearts.zip";
$fp = fopen($localZipPath, 'w+');
$ch2 = curl_init($downloadUrl);
curl_setopt($ch2, CURLOPT_FILE, $fp);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch2);
curl_close($ch2);
fclose($fp);
$responseArray['php_zip_path'] = $localZipPath;
// 5) Rozpakowanie ZIP
$zip = new ZipArchive;
if ($zip->open($localZipPath) === TRUE) {
$extractDir = __DIR__ . "/skladki/upload/AUTOGEN_73x66";
if (!is_dir($extractDir)) {
mkdir($extractDir, 0777, true);
}
$zip->extractTo($extractDir);
$zip->close();
$responseArray['success'] = true;
$responseArray['message'] = "Pomyślnie wygenerowano i pobrano ZIP.";
try {
$mysql->sqlInsertArray('skladki_wzory',
[
'filename' => 'serce',
'rodzaj' => 'serce_7',
'id_zamowienia' => $id_zamowienia,
'count' => $amount,
'logs' => ''
]);
} catch (Exception $e) {
error_log("Błąd złapany: " . $e->getMessage());
$responseArray['success'] = false;
$responseArray['message'] = "Błąd systemu: " . $e->getMessage();
echo json_encode($responseArray);
exit;
}
$responseArray['extract_dir'] = $extractDir;
} else {
$responseArray['success'] = false;
$responseArray['message'] = "Nie udało się otworzyć ZIP.";
}
// Wyślij dane jako JSON:
echo json_encode($responseArray);
exit;