SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: ciber_lep en Martes 5 de Septiembre de 2006, 19:50

Título: Post Sin Form
Publicado por: ciber_lep en Martes 5 de Septiembre de 2006, 19:50
Saludos compañeros, necesito hacer un post sin usar un form, alguien podria ayudarme o decirme donde encontrar ayuda en español pues las paginas que he visitado son en ingles.  gracia por la ayuda :huh:
Título: Re: Post Sin Form
Publicado por: x.cyclop en Martes 5 de Septiembre de 2006, 20:01
¿Qué quieres hacer? :huh:

Pasa las páginas en inglés y te las traduzco. :D
Título: Re: Post Sin Form
Publicado por: ciber_lep en Martes 5 de Septiembre de 2006, 20:57
Ji  :D , buen chiste, gracias por responder, lo que sucede es que para enviar informaccion con el metodo post se debe usar un formulario.
 
Código: Text
  1.  <form action='indicio.php' method='post'>
  2.      campo1  campo2 ...  </form>
  3.  
  4.  
pero yo deseo enviar informacion sin tener que usar el form hacer el post sin form y que me envie la info.  espero poder explicarme,  gracias x.cyclop por el interes
Título: Re: Post Sin Form
Publicado por: x.cyclop en Martes 5 de Septiembre de 2006, 21:34
Ya lo habían preguntado: http://foros.solocodigo.com/index.php?show...c=22055&hl=post (http://foros.solocodigo.com/index.php?showtopic=22055&hl=post)

Y la verdad que yo no creo que se pueda, aunque espero respuestas de los demás.

¿Porqué no lo haces por el método GET?
Título: Re: Post Sin Form
Publicado por: ibito en Miércoles 6 de Septiembre de 2006, 17:33
Cita de: "X.Cyclop"
Ya lo habían preguntado: http://foros.solocodigo.com/index.php?show...c=22055&hl=post (http://foros.solocodigo.com/index.php?showtopic=22055&hl=post)

Y la verdad que yo no creo que se pueda, aunque espero respuestas de los demás.

¿Porqué no lo haces por el método GET?
Es cierto, lo mejor sería usar el metodo get.

Asi pondrias un link
Código: Text
  1.  
  2. <a href="pagina.php?var1=valor1&var2=valor2">link</a>
  3.  
  4.  

Esas variables igual las puedes "generar" mediante tu script.
Título: Re: Post Sin Form
Publicado por: ciber_lep en Jueves 7 de Septiembre de 2006, 17:40
Gracias por la sugerencia, pero si lo logre usando una funcion que  se dispara enviando parametros a otra pagina que los recibe, se los dejo par que lo chequen.
esto es la pagina que lo dispara :
Código: Text
  1.  
  2. $result = post_data($datos,'localhost/tarifa',"obTarifa.php");
  3.   $ind=6;
  4.  
  5.  
  6. while($ind<=35)
  7. {
  8. echo  $result[$ind];
  9. $ind++;
  10. }
  11.  
  12.  

y esta es la definicion de la funcion
Código: Text
  1.  
  2. function post_data($datastream, $url, $file)
  3. {
  4.   $originalurl=$url;
  5.  
  6.   if (substr($originalurl, 0, 5) == "https") {
  7.       $protocol = "https";
  8.       $url = preg_replace("@^https://@i", "", $url);
  9.       $port = 443;
  10.     } else {
  11.       $protocol = "http";
  12.       $url = preg_replace("@^http://@i", "", $url);
  13.       $port = 80;
  14.   }
  15.  
  16.   $host = substr($url, 0, strpos($url, "/"));
  17.   $uri = strstr($url, "/");
  18.   $reqbody = "";
  19.  
  20.   foreach($datastream as $key=>$val) {
  21.     if( is_array($val)){ //don't url encode if we're passing an array
  22.       if (!empty($reqbody)) $reqbody .= "&";
  23.         $reqbody .= $key."=".$val;
  24.        }else{
  25.  
  26.       if (!empty($reqbody)) $reqbody .= "&";
  27.         $reqbody .= $key."=".urlencode($val);
  28.           //      echo $reqbody;
  29.  
  30.       }
  31.  
  32.     }
  33.   $reqlength = strlen($reqbody);
  34.   $uri=$uri."/".$file;
  35.   $reqheader = "POST $uri HTTP/1.0\r\n".
  36.   "Host: $host\r\n" . "User-Agent: CK-Conception POST-o-matic\r\n".
  37.   "Content-Type: application/x-www-form-urlencoded\r\n".
  38.   "Content-type: text/xml\r\n".
  39.   "Content-Length: $reqlength\r\n\r\n".
  40.   "$reqbody\r\n";
  41.  
  42.   if (substr($originalurl, 0, 5) == "https") {
  43.     $socket = fsockopen("ssl://" . $host, $port, $errno, $errstr);
  44.    } else {
  45.     $socket = fsockopen($host, $port, $errno, $errstr);
  46.   }
  47.  
  48.   if (!$socket) {
  49.     $result["errno"] = $errno;
  50.     $result["errstr"] = $errstr;
  51.     return $result;
  52.   }
  53.   fputs($socket, $reqheader);
  54.  
  55.   while (!feof($socket)) {
  56.     $result[] = fgets($socket, 4096);
  57.   }
  58.   fclose($socket);
  59.  
  60.   return $result;
  61.  
  62. }
  63.  
  64.  

claro tuve que auxliarme de internet, no lo desarrolle yo solito, pero funciona como si lo enviara de un post.   :D