Con esta cuarentena me dedique a aprender a programar con PHP y estoy desarrollando un pequeño proyecto, una pagina web que muestre la lista de precios de la empresa. Como la información a subir y bajar del host es poca, NO estoy usando base de datos en el lado del servidor.
Lo primero que hice fue extraer del servidor local la lista de clientes y pasarla a archivos individuales .XML:
Code: Select all
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC Clie_To_XML
LOCAL qClieX , oClieX
Win_Utiles.StatusBar.Item(1) := 'Generando XMLs de clientes...'
qClieX := ;
"select * "+;
"from maesclie "+;
"where clie_vend > space(25) and clie_esta = 1 and clie_cod <> '0400' and clie_cat <> 'PRV' "+;
"order by clie_cod"
oClieX := TOleAuto():New('ADODB.Recordset')
oClieX:CursorLocation = adUseClient
oClieX:Open( qClieX , oConexion , adOpenForwardOnly , adLockReadOnly )
FOR nPX = 1 TO oClieX:RecordCount()
aClieDire := GetDirsClie( oClieX:Fields("clie_cod"):Value )
cCliXml := '<?xml version="1.0" encoding="UTF-8"?>'+chr(13)+chr(10)+;
'<cliente>'+chr(13)+chr(10)+;
'<codigo>'+oClieX:Fields("clie_cod"):Value+'</codigo>'+chr(13)+chr(10)+;
'<ruc>'+oClieX:Fields("clie_ruc"):Value+'</ruc>'+chr(13)+chr(10)+;
'<razonsocial>'+rtrim(oClieX:Fields("clie_nom"):Value)+'</razonsocial>'+chr(13)+chr(10)+;
'<cat>'+oClieX:Fields("clie_cat"):Value+'</cat>'+chr(13)+chr(10)+;
'<plan>'+oClieX:Fields("clie_plan"):Value+'</plan>'+chr(13)+chr(10)+;
'<vend>'+rtrim(oClieX:Fields("clie_vend"):Value)+'</vend>'+chr(13)+chr(10)+;
'<pp>'+oClieX:Fields("clie_pp"):Value+'</pp>'+chr(13)+chr(10)+;
'</cliente>' + chr(13)+chr(10)
cCliXml := cCliXml + '<Direcciones>'+chr(13)+chr(10)
FOR nCliDir = 1 TO LEN(aClieDire)
cCliXml := cCliXml + ;
'<Direcc>'+chr(13)+chr(10)+;
'<DireccId>'+aClieDire[nCliDir,1]+'</DireccId>'+chr(13)+chr(10)+;
'<DireccDesc>'+aClieDire[nCliDir,2]+'</DireccDesc>'+chr(13)+chr(10)+;
'</Direcc>'+chr(13)+chr(10)
NEXT
cCliXml := cCliXml + '</Direcciones>'+chr(13)+chr(10)
cFilXml := 'clientes\' + oClieX:Fields("clie_cod"):Value + '.xml'
SET( _SET_EOF, .F. )
HB_MEMOWRIT( cFilXml , cCliXml )
SET( _SET_EOF, .T. )
oClieX:MoveNext()
NEXT
oClieX:Close()
Win_Utiles.StatusBar.Item(1) := 'Listo.'
RETURN
Code: Select all
<?php
session_start() ;
include( 'funcion.php' ) ;
if ( isset($_GET["frm_clicod"]) ) {
$clie_codigo = $_GET["frm_clicod"] ;
$clie_clave = $_GET["frm_clipas"] ;
if ( strlen($clie_codigo)==4 ) {
$clie_pas = 'pases/' . $clie_codigo . '.txt' ;
$clie_xml = 'clientes/' . $clie_codigo . '.xml' ;
if ( file_exists($clie_pas) && file_exists($clie_xml) ) {
$clie_lee = leetxt( $clie_pas ) ;
$clie_key = $clie_lee[0] ;
if ( $clie_clave == $clie_key ) {
$clie_data = simplexml_load_file( $clie_xml );
$clie_dirs = ARRAY() ;
if ( $clie_data==false ) {
echo 'ERROR: El xml no se pudo leer' ; //<- Siempre me lanza este error
}
$clie_ruc = $clie_data->cliente->ruc ;
$clie_nombre = $clie_data->cliente->razonsocial ;
$clie_cat = $clie_data->cliente->cat ;
$clie_plan = $clie_data->cliente->plan ;
$clie_vend = $clie_data->cliente->vend ;
$clie_pp = $clie_data->cliente->pp ;
foreach( $clie_data->direcciones as $dirx ) {
$clie_dirs[] = array( $dirx->DireccId , $dirx->DireccDesc ) ;
}
$_SESSION["mem_clicod"] = $clie_codigo ;
$_SESSION["mem_cliruc"] = $clie_ruc ;
$_SESSION["mem_clinom"] = $clie_nombre ;
$_SESSION["mem_clicat"] = $clie_cat ;
$_SESSION["mem_clipla"] = $clie_plan ;
$_SESSION["mem_cliven"] = $clie_vend ;
$_SESSION["mem_clipp"] = $clie_pp ;
$_SESSION["mem_clidir"] = $clie_dirs ;
echo 'Acceso concedido a '.$clie_nombre.'</br>' ;
foreach( $clie_dirs as $dirx ) {
echo 'Direccion: '.$dirx[1].'</br>' ;
}
}
}
}
}
echo "Código de cliente no válido (".$fases.")" ;
return false;
?>
Alguien con experiencia en proyectos similares que por favor me tienda una mano.
Cordiales saludos,
Att.