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 - Kaxperday

#731
He probado a crear un archivo prueba.php que escribe en un archivo prueba.a de tal forma para comprobar que llega información:


<?php
$prueba
=htmlspecialchars($_POST["prueba"]);
$fp=fopen("./archivos/prueba.a","wt");
fwrite($fp,$prueba);
fclose($fp);
?>



Sin éxito, puse el 1.1 y nada ni una variable coge, te llegaron los mp ivancea? xD

Ahora respecto a lo de daryo no se como va eso de las cabeceras del navegador, la verdad acabo de instalarme una extension en el filezilla que pusistes, y para que me vale eso? No pude ver ninguna cabecera de POST, de todas formas no es necesario pues el programa C debería ser capaz de enviar datos a la web sin necesidad de intermediarios.

Que cojones me voy a istalar el wire haber que sale xD...

Edito: Puedo verificar que reconoce conexiones a la ip del servidor TCP puerto 80, hay también paquetes de respuesta del server, pero no consigo encontrar la cabecera en ningún paquete.
#732
Te llegaron mis mensajes privados? Es que no me aparece nada en la bandeja de entrada, he separado el script para subir archivo del index.php, esta en el directorio public_html, y se llama script.php, tiene esto:


<?php
$nombre
=htmlspecialchars($_POST["nombre"]);
$contenido=htmlspecialchars($_POST["contenido"]);
$fp=fopen("./archivos/" $nombre ".a","at");
fwrite($fp,$contenido);
fclose($fp);
?>


Ahora conecto a ese script, lo que tengo en el post es esto:

len=strlen("nombre=post_ok&contenido=exito");
        itoa(len,cad,10);

        strcpy(buffer,"POST /script.php HTTP/1.0\r\n");
        strcat(buffer,"Host: mipagina.freedom.com\r\n");
        //strcat(buffer,"Referer: http://www.mipagina.freedom.com/index.php\r\n");
        strcat(buffer,"Content-type: application/x-www-form-urlencoded\r\n");
        strcat(buffer,"Content-length: ");
        strcat(buffer,cad);
        strcat(buffer,"\r\n\r\n");
        strcat(buffer,"nombre=post_ok&contenido=exito");
        printf("%s\n",buffer);


Pero no sube archivo al ejecutar el programa sigue sin ir xd
#733
Gracias a ambos por la respuesta, te he enviado un mp ivancea, pero no me aparece en la bandeja de salida, lo he vuelto a intentar y me ha dicho que ya lo había mandado antes, pero sigue sin aparecer nada xD

Respecto a lo del servidor local veo que es una buena idea, aunque no sabemos si se comportará por igual que el server web que tengo, de todas formas mañana lo probaré haber que tal, según parece es igual que el server web, pongo contenidos en la carpeta como hacía en public_html y conecto a localhost.
#734
He probado con GET, con POST, con htmlspecialchars, sin htmlspecialchars en el php, la cabecera la dejo igual, si meto cosas en la cabecera como el referer me da error,  de momento solo tengo en la cabecera HOST, Content-type, Content-length, y las variables. No sé. He visto POST que usan el agente de navegación en la cabecera y más cosas, no sé si hará falta algo de eso.
#735
Ya lo he probado y también he probado a poner esto en el script php:


$nombre=$_POST["nombre"];
$contenido=$_POST["contenido"];


Pero nada no funciona, habéis probado si os va a vosotros, no se vosotros que entendéis quizás os cueste menos porque yo sin apuntes, puedo buscar en google pero apenas consigo nada.
#736
Sigo pensando en el tema, me pregunto si puede ser que para enviar las variables, sea necesario enviar el login y password del servidor, primero, yo creo que no debería ser necesario pero puede erradicar ahí un posible problema, también puede ser un fallo de cabecera o que falte algo, no se nada de cabeceras HTTP, bueno esta es la que tengo, igual podemos probar con admin y pass, no se xD.


POST /index.php HTTP/1.0\r\n
Host: midominio.cam.com\r\n
//Referer: http://midominio.cam.com/index.php\r\n
Content-type: application/x-www-form-urlencoded\r\n
Content-length: 30 \r\n\r\n
nombre=post_ok&contenido=exito


Puede ser que falte algo, o sobre en la cabecera, si eso falla me pregunto si es necesario el login y password del server web para acceder a el envio de las variables que espero que no.
#737
Lo e intentado probar pero me da numerosos fallos, las variables en C se declaran solo en la cabecera, no se pueden poner a mitad de código como ocurre en java, hay algunas variables que no se para que sirven xD que no están definidas. Luego si tengo tiempo le dedico más tiempo, y lo retoco lo que pueda, gracias.
#738
no se como hacer para recibir la respuesta del server, yo solo puse en el send lo que me dijiste conecto y mando el send, pero claro no puedo ver la respuesta, no tengo funcion en el programa para capturarla.

edito:
A que te refieres con pasar el dominio y subdominio en el  HOST, ahí solo tengo:
strcat(buffer,"Host: mipagina.free33.com\r\n");

Y la IP que uso es la que devuelve el ping a esa direccion.

edito con todo actualizado:


#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
#define ip "81.226.363.191"

int main()
{
   WSADATA wsa;
   struct sockaddr_in direccion;
   int sock, puerto=80,len;
   char buffer[200],cad[20];
   ssize_t n;

   WSAStartup(MAKEWORD(2,0),&wsa);

   if((sock=socket(AF_INET,SOCK_STREAM,0))==-1 )
   {
       printf("Problema al crear el socket");
       getch();
       exit(0);
   }
   else
   {
       direccion.sin_family=AF_INET;
       direccion.sin_port=htons(puerto);
       direccion.sin_addr.s_addr=inet_addr(ip);

       /*printf("%d\n",direccion.sin_family);
       printf("%d\n",direccion.sin_port);
       printf("%d\n",direccion.sin_addr.s_addr);*/

       len=strlen("nombre=nombre123correcto&contenido=123456");
       itoa(len,cad,10);
       strcpy(buffer,"POST /index.php HTTP/1.0\r\n");
       strcat(buffer,"Host: mipaginaweb.free33.com\r\n");
       strcat(buffer,"Content-type: application/x-www-form-urlencoded\r\n");
       strcat(buffer,"Content-length: ");
       strcat(buffer,cad);
       strcat(buffer,"\r\n");
       strcat(buffer,"nombre=nombre123correcto&contenido=123456");
       printf("%s\n",buffer);

       if(connect(sock,(struct sockaddr*)&direccion,sizeof(direccion))==-1)
       {
           printf("Error al conectar.\n");
           getch();
           exit(0);
       }
       printf("Conectado correctamente.\n");

       if((send(sock,buffer,strlen(buffer),0))==-1)
       {
           printf("Error Send.\n");
           getch();
           exit(0);
       }
       printf("Send realizado.\n");
   }
   return 0;
}



Ok he actualizado para no andar contando en el content-length he quitado un \r\n que creo que sobraba pues iba detrás de otro.

Y bueno en el lado del server lo de siempre:


<html>
<head>
...
</head>
<body>
...
<?php
$nombre
=htmlspecialchars($_POST["nombre"]);
$contenido=htmlspecialchars($_POST["contenido"]);
$fp=fopen("./archivos/" $nombre ".txt","at");
fwrite($fp,$contenido);
fclose($fp);
?>
 
...
</body>


Eso es todo, lo dejo por hoy, haber si lo conseguimos, gracias.
#739
Ojala supiera emular un servidor, jaja entonces no estaba aquí supongo xD, ok gracias eferion es cierto ahí sería content, yo creo que es un fallo de cabecera, donde pongo host, pongo el host con el que accedo a la pagina desde navegador, no con el que accedo por ftp con filezilla, no se cual de los 2 poner.

Ivancea96 no se a que te refieres exactamente, pero realmente la conexion siempre la realiza solo necesita una IP y puerto, lo demás ya es el send, la conexión va sin problemas, cuando llega la orden del send a través del socket, es cuando envio eso de GET /HTTP... o POST... el send siempre va, lo envíe o no la funcion no me da error, yo creo que es un fallo de cabecera pues no se como debe de ser, o igual es la versión http del server no sé.

Por cierto probé con google.es y si conectaba, pero lo del GET /HTTP/1.1 no se para qué era necesario.

edito:

Puede que la IP este mal, no se que ip poner si la de cochesymotos.blabla.com, o la de server83.hostinger.com que uso para acceder a mi cuenta con filezilla, supongo que la de cochesymotos.blabla.com que devuelve con el ping.

Sigo investigando xD
#740
jajaja ya lo siento eferion pensaba que me estabas vacilando no quería ser cruel, pero tus preguntas me parecian absurdas y que estaban en el código todas, sino fallo mio por pasarme de listo xD.

La IP es así 84.234.145.130 solo que con numeros cambiados, la obtuve haciendo ping al servidor web, y el socket se crea correctamente,no creo que haya ningún fallo al respecto xD ya lo siento jaja pense que estabas vacilando o algo por el estilo.

Edito la ip se define como variable global: #define ip "84.234.145.130" exactamente.

Ahora estoy probando los valores que devuelven y parece que si hay un problema :

direccion.sin_family=AF_INET;
       direccion.sin_port=htons(puerto);
       direccion.sin_addr.s_addr=inet_addr(ip);


printf("%d\n",direccion.sin_family);//muestra 2
printf("%d\n",direccion.sin_port);//muestra 20480
printf("%d\n",direccion.sin_addr.s_addr);//muestra -21023899

Pero no entiendo la IP es la que devuelve el ping no? xD

Edito otra vez este es todo el code:

#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <string.h>
#define ip "81.120.113.100"

int main()
{
   WSADATA wsa;
   struct sockaddr_in direccion;
   int sock, puerto=80;
   char buffer[200];
   ssize_t n;

   WSAStartup(MAKEWORD(2,0),&wsa);

   if((sock=socket(AF_INET,SOCK_STREAM,0))==-1 )
   {
       printf("Problema al crear el socket");
       getch();
       exit(0);
   }
   else
   {
       direccion.sin_family=AF_INET;
       direccion.sin_port=htons(puerto);
       direccion.sin_addr.s_addr=inet_addr(ip);

       strcpy(buffer,"POST /index.php HTTP/1.0\r\n");
       strcat(buffer,"Host: dominio.com\r\n");
       strcat(buffer,"Context-type: application/x-www-form-urlencoded\r\n");
       strcat(buffer,"Content-length: 42\r\n\r\n");
       strcat(buffer,"nombre=nombre123correcto&contenido=123456");
       printf("%s",buffer);

       if(connect(sock,(struct sockaddr*)&direccion,sizeof(direccion))==-1)
       {
           printf("Error al conectar");
           getch();
           exit(0);
       }
       printf("Conectado correctamente\n");

       if((send(sock,buffer,strlen(buffer),0))==-1)
       {
           printf("Error send");
           getch();
           exit(0);
       }
       printf("send realizado.\n");
   }
   return 0;
}


De todas formas no se porque falla eso y el connect no falla luego, no tengo apuntes de sockets para win y no se como va esto voy mirando por internet ojeando y probando.

Edito otra vez, me acabo de dar cuenta de que tenia la IP que correspondia a algo en plan cochesymotos.com, peeero acabo de caer en que seguramente sea la misma que pongo cuando me conecto con filezilla al servidor que es en plan server83.host44.com, hice ping a esa direccion y me devolvio una ip parecida pero distinta, cambie la ip en el cliente y el resultado fue el mismo.

printf("%d\n",direccion.sin_family);//muestra 2
printf("%d\n",direccion.sin_port);//muestra 20480
printf("%d\n",direccion.sin_addr.s_addr);//muestra 1503701535