Mi situación es la siguiente:
Tengo un servidor Apache por XAMPP en local y quiero enviarle un valor (en este caso un nombre) al index.php.
index.php
Código
<?php echo $_POST["nom"]; ?>
Código
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>PHP Code Tester</title> </head> <body> <div id="div_form"> <form method = "post" action = "index.php" enctype="application/x-www-form-urlencoded"> <div id="div_datos_personales"> <fieldset> <legend>PHP Code Tester</legend> <div id="div_nombre"> <label id="label_nombre" for="nombre">Nombre:</label> <input id="nombre" name="nom" type="text"/> </fieldset> </div> <div id="div_submit"> <button id="submit" >Enviar</button> </div> </form> </div> </body> </html>
Si lo hago abriendo el html de arriba funciona perfecto, me imprime el valor del campo nombre. En cambio si lo hago con Wininet no funciona:
Código
int main(){ int Resultado; char internetFile[256]; HINTERNET hInternet, hInternet2, hInternet3; DWORD bytesRead; hInternet = InternetOpenA("Firefox", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); hInternet2 = InternetConnectA(hInternet, "localhost", 80, 0, 0, INTERNET_SERVICE_HTTP, 0, 0); hInternet3 = HttpOpenRequestA(hInternet2, "POST", "index.php", 0, 0, 0, INTERNET_FLAG_RELOAD, 0); Resultado = HttpSendRequestA(hInternet3, "Content-Type:application/x-www-form-urlencoded", 0xFFFFFFFF, "nom=paco", 0x8); InternetReadFile(hInternet3, internetFile, 250, &bytesRead); return 0; }
En concreto me tira un "Undefined index : nom", como si no llegara a enviar el nom=paco. He revisado todos los resultados de las funciones, los handles se obtienen bien e incluso si en el .php pongo echo "Hola"; en internetFile obtengo el Hola, osea esta leyendo bien el .php lo que no obtiene es el clave/valor. También he probado con if isset($_POST["nom"]) pero no me sirve en este caso porque nunca escribe en $_POST["nom"].
Y no se que hacer más :S.
Perdonen si esto debería ir en el foro de PHP.