ODB C Filemaker соединение успешно, но отображение закодированных данных, как решить? - PullRequest
0 голосов
/ 06 февраля 2020

Друг использует Filemaker pro 5.5 (старый, я знаю), и мне нужно извлечь данные с помощью odb c, поэтому я тестирую самую последнюю версию Filemaker Pro 18 (я знаю, что новые версии есть другие варианты доступа, такие как API, однако цель состоит в том, чтобы успешно атаковать Filemaker 5.5).

Я создал скрипт PHP, и соединение с DSN ODB C прошло успешно, и я получил результаты .

Получается, что возвращаемые данные закодированы и не читаются.

Что нужно сделать, чтобы получить данные правильно?

Ниже приведено успешное соединение DSN ODB C.

enter image description here

И это изображение сценария PHP, содержащее данные. 1019 *

enter image description here

Ниже приведен скрипт php

<?php
$server = 'localhost';
$dsn = 'dsn-name'; 
$user =  'dsn-user'; 
$password = 'dsn-pass'; 

$conn = odbc_connect($dsn, $user, $password);
$table = "Contatos";

$nrows=0;

if ($conn)
{
$sql =  sprintf("SELECT * FROM %s %s", $table,  'ORDER BY "Primeiro nome" DESC');
//this function will execute the sql satament
$result=odbc_exec($conn, $sql);

echo "<table  align=\"center\" border=\"1\" borderColor=\"\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo "<tr> ";
// -- print field name
$colName = odbc_num_fields($result);
for ($j=1; $j <= $colName; $j++)
{
echo "<th  align=\"left\" bgcolor=\"#CCCCCC\" > <font color=\"#990000\"> ";
echo odbc_field_name ($result, $j);
echo "</font> </th>";
}
$j=$j-1;
$c=0;
// end of field names
while(odbc_fetch_row($result)) // getting data
{
$c=$c+1;
if ( $c%2 == 0 )
echo "<tr bgcolor=\"#d0d0d0\" >\n";
else
echo "<tr bgcolor=\"#eeeeee\">\n";
    for($i=1;$i<=odbc_num_fields($result);$i++)
      {       
        echo "<td>";
        echo odbc_result($result, $i);
        echo "</td>";        
        if ( $i%$j == 0 ) 
           {
            $nrows+=1; // counting no of rows   
          }  
      }
    echo "</tr>";
}

echo "</td> </tr>\n";
echo "</table >\n";
// --end of table 
if ($nrows==0) echo "<br/><center> Nothing for $table yet! Try back later</center>  <br/>";
else echo "<br/><center> Total Records:  $nrows </center>  <br/>";
odbc_close ($conn);

}
else echo "odbc not connected <br>";
?>
...