Foros del Web » Programando para Internet » PHP »

soy nuevo en esto y necesito ayuda con header

Estas en el tema de soy nuevo en esto y necesito ayuda con header en el foro de PHP en Foros del Web. Hola llevo algunos días intentando abrir una pagina web y no lo consigo. yo tengo un archivo sms.php que lo que hace es invocar a ...
  #1 (permalink)  
Antiguo 20/08/2003, 19:30
 
Fecha de Ingreso: agosto-2003
Mensajes: 5
Antigüedad: 20 años, 8 meses
Puntos: 0
soy nuevo en esto y necesito ayuda con header

Hola llevo algunos días intentando abrir una pagina web y no lo consigo.
yo tengo un archivo sms.php que lo que hace es invocar a una funcion que esta en otro archivo (libreria.php).

el archivo sms.php tiene el siguiente código:

include ("../libreria/libreria.php");

$mensaje="Hola%20a%20todos";
mandasms($mensaje);

y el archivo libreria.php tiene el siguiente código:

function mandasms($mensaje)
{
header("Location: http://www.estomismo.com/default.asp?MSG=".$mensaje);
}

Mi problema es que no consigo que se invoque una direccion pasandole unos parametros, y eso es lo que tengo que hacer.

También lo he intentado de esta otra forma pero no hay manera:
(si meto este codigo en un archivo prueba.php y lo ejecuto desde el explorador lo hace bien pero si lo meto dentro de la función mandasms() y lo invoco desde sms.php no hace nada)

echo "<script language=\"JavaScript\">;";

echo "window.open(\"http://www.google.com\" , \"ventana1\" , \"width=120,height=300,scrollbars=NO\")";

echo "</script>";

por favor necesito que me ayudeis he probado muchas cosas pero ya no se que hacer y la cosa me urge.
Gracias a todos por vuestro tiempo y generosidad.
  #2 (permalink)  
Antiguo 22/08/2003, 23:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Suponiendo que la función se incluye correctamente .. usa un exit al final de tu header() de location que es donde dices al "navegador" que cambie la página que está visualizando el cliente .. pero es de suponer que a su vez quieres o debes terminar la ejecución de tu script ...

Código PHP:
function mandasms($mensaje)
{
header("Location: http://www.estomismo.com/default.asp?MSG=$mensaje");
exit;

El mensaje en si.. tu $mensaje estaría bueno que le pasaras la función urlencode() o rawurlencode() para que te convierta tus espacios a + o %20 respectivamente automáticamente ademas de otros caracteres que pueden darte problemas en el URL ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 22/08/2003 a las 23:16
  #3 (permalink)  
Antiguo 23/08/2003, 13:38
Avatar de Mstaaravin  
Fecha de Ingreso: abril-2003
Mensajes: 55
Antigüedad: 21 años
Puntos: 0
Perdon que me meta, yo tambien soy un novato en PHP, pero en el siguiente código que mandaron estan llamando a una URL que tiene un archivo *.asp , no debería ser *.php....?


Saludos
__________________
"La voluntad es el único motor de nuestros logros"
  #4 (permalink)  
Antiguo 23/08/2003, 21:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Mstaaravin .. Da igual donde apuntes tu redireccionamiento .. Para eso es un redireccionamiento.

Header() es la función PHP que te permite enviar cabeceras HTTP .. como la de "location" que hace lo que expliqué anteriormente ..

Tal vez no "redireccione" a su mismo sitio en PHP (o su servidor soporta PHP y ASP .. ) .. en fin .. eso da igual.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 24/08/2003, 13:45
 
Fecha de Ingreso: agosto-2003
Mensajes: 5
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola otra vez, creo que no me he explicado bien, voy a intentar ser un poco mas concreto:
Yo quiero enviar un SMS a mi móvil y para eso tengo que hacer los siguiente: Tengo un servidor Apache montado y las páginas php colgadas de él, ahora tengo un programa en C++ que lo que hace es abrir un socket a mi misma maquina con el 127.0.0.1 para invocar a un archivo .php y le pasa como parametro un número entero que utilizare para seleccionar un mensaje o otro.
Mi problema está en que yo no tengo que abrir ningun navegador con lo que se me está complicando la cosa, haciendo pruebas he visto que el código este si funciona bien:

function mandasms($mensaje)
{
header("Location: http://www.estomismo.com/default.asp?MSG=$mensaje");
exit;
}

pero cuando lo ejecuto desde el navegador, si lo intento ejecutar invocando al archivo pero sin que este el navegador abierto no funciona. (El prog en C++ llama perfectamente a la pagina .php, lo hago solicitando un recurso con GET)

Ante la desesperación lo estoy intentando con sockets y estoy haciendo algo así pero no me funciona:

$mensaje=urlencode($mensaje);
$cadena="default.asp?MSG=".$mensaje;
$cadena="GET /".$cadena;
$cadena=$cadena." HTTP/1.0\n\n";

$fp = fsockopen("http://www.soloparawebmasters.com/smsipmarket/smslocal/", 80, &$errno, &$errstr, 30);
if(!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs($fp,$cadena);
while(!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
}

para probarlo lo estoy intentado ejecuatar desde el navegador y me da un error tal como este:

Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: gethostbyname failed in c:\archivos de programa\apache group\apache\libreria\libreria.php on line 163

Warning: fsockopen() [function.fsockopen]: unable to connect to http://www.soloparawebmasters.com/sm...t/smslocal/:80 in c:\archivos de programa\apache group\apache\libreria\libreria.php on line 163
La operación se ha completado correctamente. (0)

no se como solucionar este problema, gracias por vuestra ayuda y un Saludo.
  #6 (permalink)  
Antiguo 24/08/2003, 14:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

No te funciona sin navegador porque lo que hace header() es enviar cabeceras HTTP al navegador para que el navegador los interprete y ejecute lo necesario. Asi que sin navegador que ejecute el Location, no hay redireccion.

Y sobre el fallo al intentarlo con fsockopen, creo que te equivocas en el primer parametro. Debes pasar solo el dominio, no las subcarpetas. En este caso www.soloparawebmasters.com . Las subcarpetas debes indicarlas en el comando GET, en tu variable $cadena. Aunque creo que tambien PHP en windows tiene algun problema.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 25/08/2003, 16:12
 
Fecha de Ingreso: agosto-2003
Mensajes: 5
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola, he probado esa solución cambiando los parámetros pero sigue sin funcionar, me sigue dando el mismo error.
Ah!, gracias por decirme eso de header() no lo sabia, así que ahora se porque no me funcionaba. Gracias

Por favor necesito otra sugerencia. Gracias a todos.
  #8 (permalink)  
Antiguo 26/08/2003, 22:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Parece que si vas a usar tu script bajo línena de comandos (PHP CLI) y requieres los datos de un script/aplicación que corre bajo la web .. vas a tener que usar una conexión por sockets a esa página para "simular" tu aplicación de línea de comandos un servidor "HTTP" básico.

Puedes ver los ejemplos de:
http://www.php.net/manual/en/function.fsockopen.php

A todo esto prueba a No usar http:// en el socket .. No recuedo bien que funciones si fopen() en remoto o sockets ...una de las dos no requiere del protocolo .. Y .. a malas usa la IP de ese dominio.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 02/09/2003, 04:04
 
Fecha de Ingreso: agosto-2003
Mensajes: 5
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola de nuevo a todos, poniendo el código este ya no me da los warning con lo que creo que ahora si estoy utilizando bien el fsockopen.

$mensaje=urlencode($mensaje);
$cadena="smsipmarket/smslocal/default.asp?MSG=".$mensaje;
$cadena="GET /".$cadena;
$cadena=$cadena." HTTP/1.0\n\n";

$fp = fsockopen("www.soloparawebmasters.com", 80, &$errno, &$errstr, 30);
if(!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs($fp,$cadena);
while(!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}

El problema ahora es que me dice esto:

HTTP/1.0 404 Objeto no encontrado Server: Microsoft-IIS/5.0 Date: Tue, 02 Sep 2003 09:20:04 GMT Content-Type: text/html Content-Length: 116 Age: 1 No hay ningún sitio Web en esta dirección.

No entiendo porque dice que no existe, yo he probado a entrar el la pagina poniendo su direccion (www.soloparawebmasters.com) y si entra. También he probado a poner la dirección IP en vez de la dirección y me da el mismo error. No se si estaré poniendo algún parámetro mal o que está pasando.
Estoy bloqueado aquí, por favor necesito que alguien que sepa de esto me heche una mano, gracias a todos por vuestra ayuda.
  #10 (permalink)  
Antiguo 03/09/2003, 20:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Según el mensaje de error del IIS parece ser que no indicastes correctamente la página (con su ruta) .. El domino si es correcto al parecer y se efectua la conexión (osease, abres bien el socket)..

Intenta usar.
Código PHP:
$cadena="/smsipmarket/smslocal/default.asp?MSG=".$mensaje
(fijate en el primer slash .. / .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 11/09/2003, 14:02
 
Fecha de Ingreso: agosto-2003
Mensajes: 5
Antigüedad: 20 años, 8 meses
Puntos: 0
Gracias a todos por vuestra ayuda, ya funciona bien. por ultimo probe con otro servidor de mensajes. El problema no era del código.

El último código que deje estaba bien. Gracias otra vez.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:58.