Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Apokryphos

#1
PHP / Re: Formulario gastos
22 Junio 2017, 14:48 PM
saludos amigo, de verdad tu planteamiento esta un poco dificil de enteder. Quizas si te tomas unos minutos adicionales al momento de plantear el problema tendrias mayor ayuda.

Este es el foro de phpv por tanto las respuesta que vas a obtener son scritp en php

Ahora lo que entendi yo: Es que quieres enviar unos datos de una pagina a otra, asumo que cuando haces el SUBMIT del formulario lo tienes programado en el accion.

el form.html:
Código (html4strict) [Seleccionar]

<form name="formulario" action="gastos.php" method="post">
Kilometraje:<input type="text" id="km" name="km" size="10"/>
Parking:<input type="text" id="parking" name="parking" size="10"/>
Gastos de Hotel:<input type="" id="hotel" name="hotel" size="10" />
</br>
<input type="submit" id="enviar" name="enviar" value="ENVIAR" />
</form>


notese que cuando le das submit en la barra del navegador ves que se cambia la url y crea una nueva parecida: http://localhost/loquesea/gastos.php?km=&parking=&hotel=&enviar=ENVIAR
esos valores se envian por el metodo post y se reciben con el metodo get

EL gastos.php

Código (php) [Seleccionar]

<?php
if (isset($_GET['km'])){ //compruebo que llegue la variable
            
$km=$_GET['km']; //asigno el valor a una variable aunque se puede trabajae directamente con el $_GET['variable']
        
}
if (isset(
$_GET['parking'])){ 
            
$parking=$_GET['parking'];
}

if (isset(
$_GET['hotel'])){ 
            
$hotel=$_GET['hotel'];
}

//esto se puede hacer en una sola linea pero es mas facil verlo asi
$total_km $km*0.19;
$total $total_km+$parking+$hotel;
//imagino que lo necesitas imprimir
echo $total;


#2
Saludos amigos(as) del foro: tengo una gran inquietud en función que deseo obtener unos datos de una web que requiere autentificacion y la misma tiene un certificado digital el codigo que llevo hasta ahora es el siguiente
Código (php) [Seleccionar]

                               $username = "xxxxxxxxx";
                               $password = "xxxxxxxxx";
                               $ci_nC = $_POST['consulta'];
                               $sección="1";
                               $ubicacion_menu="ubicacion_menu.php";
                               $verifiCed="xxxxxx";
                               $url = "https://direcciondeacceso.com/index.php";
                               $url2 = "https://direcciondeacceso.com/consulta.php/";
                               $header = "Content-type: application/x-www-form-urlencoded";
                               
                               /* Primera petición */
                               // Login
                               $raw_post =  "&". http_build_query(array("LOGIN" => $username));
                               $raw_post .= "&". http_build_query(array("CLAVE" => $password));
                               $ch = curl_init($url);
                               curl_setopt($ch, CURLOPT_POST,1);
                               curl_setopt($ch, CURLOPT_TIMEOUT, 15 );
                               curl_setopt($ch, CURLOPT_POSTFIELDS , utf8_encode( $raw_post ) );
                               curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
                               curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
                               curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
                               curl_setopt($ch, CURLOPT_CAINFO, getcwd().'../certificado.crt' );
                               curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
                               curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
                               curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
                               $buffer  = curl_exec( $ch );
                               $errorcURL = curl_errno( $ch );
                               curl_close( $ch );  
                               
                               if($errorcURL){
                                   echo "ERROR: ".$errorcURL."</BR>";
                               }                              
                               // Segunda peticion de datos
                               $raw_post2 =  "&". http_build_query(array("consulta" => $ci_nC));
                               $raw_post2 .= "&". http_build_query(array("ubicacion_menu" => $ubicacion_menu));
                               $ch = curl_init($url2);
                               curl_setopt($ch, CURLOPT_POSTFIELDS , utf8_encode( $raw_post2 ) );
                               curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                               curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
                               curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
                               curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
                               $buffer  = curl_exec( $ch );
                               $errorcURL2 = curl_errno( $ch );
                               curl_close( $ch );
                               if($errorcURL){
                                   echo "ERROR: ".$errorcURL2."</BR>";
                               }  
                                                       
                                                 
                               if ( preg_match("|<td class='cnt-color2'>(.*?)</td>|is",$buffer,$cap) )
                               {
                                       echo "respuesta 1";
                               }else{
                                   echo "respuesta 2";
                               }


Ahora bien el problema en si, es que no logro que pase de la primera consulta, aun dando los datos de logeo correctos no pasa por la parte del certificado según presumo por el tipo de error del curl_errno = "77". Un dato adicional es que al acceder a la web en cuestión a través del navegador "chrome" en este caso me da un error NET::ERR_CERT_AUTHORITY_INVALID que normalmente le doy a opciones avanzadas y acceso sin mayor dificultad, aunque no se si esto afecta el logueo a traves del cURL