Daily Archives: 11/09/2012

Ελεγχος ΑΔΑ

<?php

    if (!isset($_GET['ada']))
    {
        header("HTTP/1.0 205 Reset Content", true, 205);
        header('Status: Reset Content', false, 205);
        exit;
    }

    $ada = $_GET['ada'];
    $ada = htmlspecialchars($ada);

    function getWebResponse($url)
    {
       $ch = curl_init();
       curl_setopt($ch, CURLOPT_URL,$url);
       curl_setopt($ch, CURLOPT_HEADER, false);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
       $str = curl_exec($ch);
       curl_close($ch);

       return $str;
    }

    $response = getWebResponse(sprintf('http://opendata.diavgeia.gov.gr/api/decisions?ada=%s&output=json',$ada));
    $json = json_decode($response);

    $timeZone = 'Europe/Athens';
    date_default_timezone_set($timeZone);

    $senddate = date('d/m/Y H:i:s',$json->model->decisions[0]->submissionTimestamp / 1000);
    $docdate = date('d/m/Y', $json->model->decisions[0]->submissionTimestamp / 1000);
    $corrected = $json->model->decisions[0]->metadata->isCorrectedByAda;
    $correction = $json->model->decisions[0]->metadata->isCorrectionOfAda;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="content-language" content="el">
<title>Έλεγχος ΑΔΑ</title>
</head>
<body>
<?php
    if ($json->model->queryInfo->total == 0)
    {
        echo 'Ο ΑΔΑ: ',$ada,' δεν βρέθηκε.';
    }
    else
    {
?>
<p>ΑΔΑ: <?php echo $ada; ?></p>
<p>Ημερομηνία Εγγράφου: <?php echo $docdate; ?><br/>
Ημερομηνία Αποστολής: <?php echo $senddate; ?></p>
<?php
        if ($corrected)
        {
            echo "<div class='important'><p>Το έγγραφο έχει νεώτερη διόρθωση με ΑΔΑ: <a href='?ada={$corrected}'>{$corrected}</a></p></div>",PHP_EOL;
        }
        if ($correction)
        {
            echo "<p>Το έγγραφο είναι διόρθωση παλαιότερου ΑΔΑ: <a href='?ada={$correction}'>{$correction}</a></p>",PHP_EOL;
        }
?>
<p>Πηγαίνετε στη σελίδα στη Δι@ύγεια: <a href="http://et.diavgeia.gov.gr/f/all/ada/<?php echo $ada; ?>">http://et.diavgeia.gov.gr/f/all/ada/<?php echo $ada; ?></a></p>
<?php
    }
?>
</body>
</html>

pdo σύνδεση σε sql server 2005

Έκανα μια δοκιμή σε Ubuntu server να συνδεθώ σε sql server 2005 μέσω pdo και όχι με τις mssql_* functions. Αν και η σύνδεση έπαιξε αμέσως μια χαρά και έβλεπα ελληνικά (utf8) από την php χρησιμοποιώντας τις mssql functions, από το pdo είχα ένα περίεργο πρόβλημα:

Τρέχοντας τον κώδικα από το shell έβλεπα στο output κανονικά τα ελληνικά, αλλά τρέχοντας τον κώδικα από τον apache η ιστοσελίδα μου έφερνε μόνο ερωτηματικά ????????????

Μετά από ψάξιμο μιας μέρας και αρκετές δοκιμές η λύση τελικά ήταν στο connection string. Για να βλέπεις τα ελληνικά αρκεί να προσθέσεις το ;charset=utf8"

<?php
    try {
        $hostname = 'Ο sql server';
        $dbname = 'Η βάση δεδομένων';
        $username = '...';
        $pw = '...';

        $dbh = new PDO (
                "dblib:host=$hostname;dbname=$dbname;charset=utf8",
                "$username",
                "$pw");
    } catch (PDOException $e) {
        echo "Failed to get DB handle: " . $e->getMessage() . "n";
        exit;
    }
    $stmt = $dbh->prepare('SELECT * FROM users');
    $stmt->execute();
    while ($row = $stmt->fetchobject())
    {
        print_r($row);
    }
    unset($dbh);
    unset($stmt);
?>