You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
294 lines
8.7 KiB
PHP
294 lines
8.7 KiB
PHP
<?PHP
|
|
$title = "DB Update from XML";
|
|
$header = "DB Update from XML";
|
|
include ("./inc/header.php");
|
|
include ("./inc/funktion_xml.php");
|
|
|
|
///////////
|
|
// DEBUG //
|
|
///////////
|
|
$ShowDataStrukture = 0;
|
|
$EnableRoomFunctions = 1;
|
|
$EnableRooms = 1;
|
|
$EnableSchudleFunctions = 1;
|
|
$EnableSchudle = 1;
|
|
$EnableSchudleDB = 1;
|
|
|
|
|
|
/*##############################################################################################
|
|
erstellt Arrays der Reume
|
|
##############################################################################################*/
|
|
function CreateRoomArrays()
|
|
{
|
|
global $Room, $RoomID, $RoomName, $con;
|
|
|
|
$sql = "SELECT `RID`, `Name` FROM `Room` ".
|
|
"WHERE `Show`='Y'".
|
|
"ORDER BY `Number`, `Name`;";
|
|
$Erg = mysql_query($sql, $con);
|
|
$rowcount = mysql_num_rows($Erg);
|
|
|
|
for ($i=0; $i<$rowcount; $i++)
|
|
{
|
|
$Room[$i]["RID"] = mysql_result($Erg, $i, "RID");
|
|
$Room[$i]["Name"] = mysql_result($Erg, $i, "Name");
|
|
$RoomID[ mysql_result($Erg, $i, "RID") ] = mysql_result($Erg, $i, "Name");
|
|
$RoomName[ mysql_result($Erg, $i, "Name") ] = mysql_result($Erg, $i, "RID");
|
|
}
|
|
}
|
|
CreateRoomArrays();
|
|
|
|
/*##############################################################################################
|
|
F I L E
|
|
##############################################################################################*/
|
|
echo "\n\n<br>\n<h1>XML File:</h1>\n";
|
|
if( isset($_POST["PentabarfUser"]) && isset($_POST["password"]) && isset($_POST["PentabarfURL"]))
|
|
{
|
|
echo "Update XCAL-File from Pentabarf..";
|
|
if($PentabarfGetWith=="fsockopen")
|
|
{
|
|
|
|
//backup error messeges and delate
|
|
$Backuperror_messages = $error_messages;
|
|
$fp = fsockopen( "ssl://$PentabarfXMLhost", 443, $errno, $errstr, 30);
|
|
// $error_messages = $Backuperror_messages;
|
|
|
|
if( !$fp)
|
|
{
|
|
echo "<h2>fail: File 'https://$PentabarfXMLhost/$PentabarfXMLpath". $_POST["PentabarfURL"]. "' not readable!".
|
|
"[$errstr ($errno)]</h2>";
|
|
}
|
|
else
|
|
{
|
|
if( ($fileOut = fopen( "$Tempdir/engelXML", "w")) != FALSE)
|
|
{
|
|
$head = 'GET /'. $PentabarfXMLpath. $_POST["PentabarfURL"]. ' HTTP/1.1'."\r\n".
|
|
'Host: '. $PentabarfXMLhost. "\r\n".
|
|
'User-Agent: Engelsystem'. "\r\n".
|
|
'Authorization: Basic '.
|
|
base64_encode($_POST["PentabarfUser"]. ':'. $_POST["password"])."\r\n".
|
|
"\r\n";
|
|
fputs( $fp, $head);
|
|
$Zeilen = -1;
|
|
while (!feof($fp))
|
|
{
|
|
$Temp= fgets($fp,1024);
|
|
|
|
// ende des headers
|
|
if( $Temp== "f20\r\n" )
|
|
{
|
|
$Zeilen = 0;
|
|
$Temp="";
|
|
}
|
|
|
|
//file ende?
|
|
if( $Temp=="0\r\n")
|
|
break;
|
|
|
|
if( ($Zeilen>-1) && ($Temp!="ffb\r\n") )
|
|
{
|
|
//steuerzeichen ausfiltern
|
|
if( strpos( "#$Temp", "\r\n") > 0)
|
|
$Temp = substr($Temp, 0, strlen($Temp)-2);
|
|
if( strpos( "#$Temp", "1005") > 0)
|
|
$Temp = "";
|
|
if( strpos( "#$Temp", "783") > 0)
|
|
$Temp = "";
|
|
//schreiben in file
|
|
fputs( $fileOut, $Temp);
|
|
$Zeilen++;
|
|
}
|
|
}
|
|
fclose( $fileOut);
|
|
|
|
echo "<br>Es wurden $Zeilen Zeilen eingelesen<br>";
|
|
}
|
|
else
|
|
echo "<h2>fail: File '$Tempdir/engelXML' not writeable!</h2>";
|
|
fclose($fp);
|
|
}
|
|
}
|
|
elseif($PentabarfGetWith=="fopen")
|
|
{
|
|
//user uns password in url einbauen
|
|
$FileNameIn = "https://". $_POST["PentabarfUser"]. ':'. $_POST["password"]. "@".
|
|
$PentabarfXMLhost. "/". $PentabarfXMLpath. $_POST["PentabarfURL"];
|
|
|
|
|
|
if( ($fileIn = fopen( $FileNameIn, "r")) != FALSE)
|
|
{
|
|
if( ($fileOut = fopen( "$Tempdir/engelXML", "w")) != FALSE)
|
|
{
|
|
$Zeilen = 0;
|
|
while (!feof($fileIn))
|
|
{
|
|
$Zeilen++;
|
|
fputs( $fileOut, fgets( $fileIn));
|
|
}
|
|
fclose( $fileOut);
|
|
echo "<br>Es wurden $Zeilen Zeilen eingelesen<br>";
|
|
}
|
|
else
|
|
echo "<h2>fail: File '$Tempdir/engelXML' not writeable!</h2>";
|
|
fclose( $fileIn);
|
|
}
|
|
else
|
|
echo "<h2>fail: File 'https://$PentabarfXMLhost/$PentabarfXMLpath". $_POST["PentabarfURL"]. "' not readable!</h2>";
|
|
}
|
|
elseif( $PentabarfGetWith=="wget")
|
|
{
|
|
$Command = "wget --http-user=". $_POST["PentabarfUser"]. " --http-passwd=".$_POST["password"]. " ".
|
|
"https://$PentabarfXMLhost/$PentabarfXMLpath". $_POST["PentabarfURL"].
|
|
" --output-file=$Tempdir/engelXMLwgetLog --output-document=$Tempdir/engelXML".
|
|
" --no-check-certificate";
|
|
echo system( $Command, $Status);
|
|
if( $Status==0)
|
|
echo "OK.<br>";
|
|
else
|
|
echo "fail ($Status)($Command).<br>";
|
|
}
|
|
elseif( $PentabarfGetWith=="lynx")
|
|
{
|
|
$Command = "lynx -auth=". $_POST["PentabarfUser"]. ":".$_POST["password"]. " -dump ".
|
|
"https://$PentabarfXMLhost/$PentabarfXMLpath". $_POST["PentabarfURL"]. " > $Tempdir/engelXML";
|
|
echo system( $Command, $Status);
|
|
if( $Status==0)
|
|
echo "OK.<br>";
|
|
else
|
|
echo "fail ($Status)($Command).<br>";
|
|
}
|
|
elseif($PentabarfGetWith=="fopen")
|
|
{
|
|
//user uns password in url einbauen
|
|
$FileNameIn = "https://". $_POST["PentabarfUser"]. ':'. $_POST["password"]. "@".
|
|
$PentabarfXMLhost. "/". $PentabarfXMLpath. $_POST["PentabarfURL"];
|
|
|
|
|
|
if( ($fileIn = fopen( $FileNameIn, "r")) != FALSE)
|
|
{
|
|
if( ($fileOut = fopen( "$Tempdir/engelXML", "w")) != FALSE)
|
|
{
|
|
$Zeilen = 0;
|
|
while (!feof($fileIn))
|
|
{
|
|
$Zeilen++;
|
|
fputs( $fileOut, fgets( $fileIn));
|
|
}
|
|
fclose( $fileOut);
|
|
echo "<br>Es wurden $Zeilen Zeilen eingelesen<br>";
|
|
}
|
|
else
|
|
echo "<h2>fail: File '$Tempdir/engelXML' not writeable!</h2>";
|
|
fclose( $fileIn);
|
|
}
|
|
else
|
|
echo "<h2>fail: File 'https://$PentabarfXMLhost/$PentabarfXMLpath". $_POST["PentabarfURL"]. "' not readable!</h2>";
|
|
}
|
|
elseif( $PentabarfGetWith=="wget")
|
|
{
|
|
$Command = "wget --http-user=". $_POST["PentabarfUser"]. " --http-passwd=".$_POST["password"]. " ".
|
|
"https://$PentabarfXMLhost/$PentabarfXMLpath". $_POST["PentabarfURL"].
|
|
" --output-file=$Tempdir/engelXMLwgetLog --output-document=$Tempdir/engelXML".
|
|
" --no-check-certificate";
|
|
echo system( $Command, $Status);
|
|
if( $Status==0)
|
|
echo "OK.<br>";
|
|
else
|
|
echo "fail ($Status)($Command).<br>";
|
|
}
|
|
elseif( $PentabarfGetWith=="lynx")
|
|
{
|
|
$Command = "lynx -auth=". $_POST["PentabarfUser"]. ":".$_POST["password"]. " -dump ".
|
|
"https://$PentabarfXMLhost/$PentabarfXMLpath". $_POST["PentabarfURL"]. " > $Tempdir/engelXML";
|
|
echo system( $Command, $Status);
|
|
if( $Status==0)
|
|
echo "OK.<br>";
|
|
else
|
|
echo "fail ($Status)($Command).<br>";
|
|
}
|
|
else
|
|
echo "<h1>The PentabarfGetWith='$PentabarfGetWith' not supported</h1>";
|
|
}
|
|
else
|
|
{
|
|
echo "<form action=\"dbUpdateFromXLS.php\" method=\"post\">\n";
|
|
echo "<table border=\"0\">\n";
|
|
echo "\t<tr><td>XCAL-File: https://$PentabarfXMLhost/$PentabarfXMLpath</td>".
|
|
"<td><input name=\"PentabarfURL\" type=\"text\" size=\"4\" maxlength=\"5\" ".
|
|
"value=\"$PentabarfXMLEventID\"></td></tr>\n";
|
|
echo "\t<tr><td>Username:</td>".
|
|
"<td><input name=\"PentabarfUser\" type=\"text\" size=\"30\" maxlength=\"30\"></td></tr>\n";
|
|
echo "\t<tr><td>Password:</td>".
|
|
"<td><input name=\"password\" type=\"password\" size=\"30\" maxlength=\"30\"></td></tr>\n";
|
|
echo "\t<tr><td></td><td><input type=\"submit\" name=\"FileUpload\" value=\"upload\"></td></tr>\n";
|
|
echo "</table>\n";
|
|
echo "</form>\n";
|
|
}
|
|
|
|
|
|
|
|
//readXMLfile("xml.php.xml");
|
|
if( readXMLfile("$Tempdir/engelXML") == 0)
|
|
{
|
|
$XMLmain = getXMLsubPease( $XMLmain, "VCALENDAR");
|
|
|
|
|
|
if( $ShowDataStrukture)
|
|
{
|
|
echo "<pre><br>";
|
|
echo $XMLmain->name;
|
|
echo "<br>";
|
|
print_r(array_values ($XMLmain->sub));
|
|
echo "</pre>";
|
|
}
|
|
|
|
/*
|
|
echo "<br>";
|
|
$Feld=7;
|
|
echo "$Feld#". $XMLmain->sub[$Feld]->name. "<br>";
|
|
echo "$Feld#". $XMLmain->sub[$Feld]->sub;
|
|
//print_r(array_values ($XMLmain->sub[$Feld]->sub));
|
|
while(list($key, $value) = each($XMLmain->sub[$Feld]->sub))
|
|
echo "?ID".$value->sub[1]->data. "=". $value->sub[2]->data. "\n";
|
|
echo "</pre>";
|
|
*/
|
|
|
|
|
|
/*##############################################################################################
|
|
V e r s i o n
|
|
##############################################################################################*/
|
|
|
|
echo "<hr>\n";
|
|
$XMLrelease = getXMLsubPease( $XMLmain, "X-WR-CALDESC");
|
|
echo "release: ". $XMLrelease->data. "<br>\n";
|
|
//$XMLreleaseDate = getXMLsubPease( $XMLmain, "RELEASE-DATE");
|
|
//echo "release date: ". $XMLreleaseDate->data. "<br>\n";
|
|
echo "<hr>\n";
|
|
|
|
|
|
|
|
/*##############################################################################################
|
|
V e r s i o n
|
|
##############################################################################################*/
|
|
if( $EnableRoomFunctions)
|
|
include("./inc/funktion_xml_room.php");
|
|
|
|
if( $EnableSchudleFunctions)
|
|
include("./inc/funktion_xml_schudle.php");
|
|
|
|
|
|
/*##############################################################################################
|
|
U P D A T E A L L
|
|
##############################################################################################*/
|
|
echo "\n\n<br>\n<h1>Update ALL:</h1>\n";
|
|
|
|
echo "<form action=\"dbUpdateFromXLS.php\">\n";
|
|
echo "\t<input type=\"submit\" name=\"UpdateALL\" value=\"now\">\n";
|
|
echo "</form>\n";
|
|
|
|
} //if XMLopenOOK
|
|
|
|
include ("./inc/footer.php");
|
|
?>
|
|
|