Foros del Web » Programando para Internet » PHP »

Una pregunta difícil para mi

Estas en el tema de Una pregunta difícil para mi en el foro de PHP en Foros del Web. Hola: Pongo un formulario para llenar la url, digamos Cita: <INPUT TYPE="text" NAME="url" SIZE="100" MAXLENGTH="100"> Y luego la capturo con $GET Pregunto: como podría saber ...
  #1 (permalink)  
Antiguo 07/12/2009, 16:01
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 15 años
Puntos: 0
Una pregunta difícil para mi

Hola: Pongo un formulario para llenar la url, digamos

Cita:
<INPUT TYPE="text" NAME="url" SIZE="100" MAXLENGTH="100">
Y luego la capturo con $GET

Pregunto: como podría saber si la URL introducida es correcta? Me refiero a que
1) Tenga el "http://www"
2) Tenga el punto y luego lo que sigue (.com.ar, .com.es, .es., etc.)
3) Exista: Es decir, que no tire un error 404.
Repito, se puede comprobar esto en php? Como podría hacerlo? Gracias"!

Última edición por principiantedelweb; 07/12/2009 a las 16:11
  #2 (permalink)  
Antiguo 07/12/2009, 16:11
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Una pregunta difícil para mi

A ver si sirve che

Código PHP:
<?php
$url
=$_GET['url'];

#desde la "h" hasta la ultima "w"
$protocolo=substr($url,0,9); 

#.com
$dominio=substr($url,-4,strlen($url));

#.com.ar, o cualquier dominio que termine en punto+2 letras
$dominio2=substr($url,-7,strlen($url));

#luego preguntas por cada uno....

if($protocolo=="http://www"){

#bla bla bla

}

?>
  #3 (permalink)  
Antiguo 07/12/2009, 16:11
 
Fecha de Ingreso: agosto-2008
Ubicación: Peru
Mensajes: 217
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: Una pregunta difícil para mi

what are you talking about?

Amigo, explicate un poco mejor, a que te refieres exactamente

1. quieres probarlo en local o en un host
2.si es la segunda, pruebalo

Sinceramente es un poco dificil entender, Explicate
  #4 (permalink)  
Antiguo 07/12/2009, 16:16
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 15 años
Puntos: 0
Respuesta: Una pregunta difícil para mi

Primero pruebo el script de jackson666. Me explico gabos147:
Un usuario introduce la url en un formulario: ejemplo "htt:ww.,imisf.com"
Como vez, no tiene el http, ni el www y tiene errores (por ej. la coma ) y sin dudas dará un error 404.
Lo que quiero es que introduzca el usuario una url correcta. Si no, no ejecuta el script (que es cargar los datos en mi database) ¿Se entiende?
  #5 (permalink)  
Antiguo 07/12/2009, 16:20
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Una pregunta difícil para mi

Cita:
Iniciado por principiantedelweb Ver Mensaje
Primero pruebo el script de jackson666. Me explico gabos147:
Un usuario introduce la url en un formulario: ejemplo "htt:ww.,imisf.com"
Como vez, no tiene el http, ni el www y tiene errores (por ej. la coma ) y sin dudas dará un error 404.
Lo que quiero es que introduzca el usuario una url correcta. Si no, no ejecuta el script (que es cargar los datos en mi database) ¿Se entiende?
Hacete un echo de las cosas que puse ahi a ver que te tira, y si esta bien

echo $protoclo, echo $dominio, etc
  #6 (permalink)  
Antiguo 07/12/2009, 16:20
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Una pregunta difícil para mi

asi mejor no???

Código php:
Ver original
  1. <?php
  2. $url=$_GET['url'];
  3. if(fopen($url,"r")){
  4.  echo "url valida";
  5. }else{
  6.  echo "url invalida";
  7. }
  8. ?>

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #7 (permalink)  
Antiguo 07/12/2009, 16:23
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Una pregunta difícil para mi

Cita:
Iniciado por masterojitos Ver Mensaje
asi mejor no???

Código php:
Ver original
  1. <?php
  2. $url=$_GET['url'];
  3. if(fopen($url,"r")){
  4.  echo "url valida";
  5. }else{
  6.  echo "url invalida";
  7. }
  8. ?>

suerte.
Claro, para comprobar la url =)
  #8 (permalink)  
Antiguo 07/12/2009, 16:30
 
Fecha de Ingreso: junio-2009
Mensajes: 51
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Una pregunta difícil para mi

mas bien lo que tu quieres son expresiones regulares no es asi ???
  #9 (permalink)  
Antiguo 07/12/2009, 16:33
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Una pregunta difícil para mi

para que le dan vuelta al asunto si el lo que desea es saber si la url que ingresa es valida o no...

Cita:
Iniciado por masterojitos Ver Mensaje
asi mejor no???

Código php:
Ver original
  1. <?php
  2. $url=$_GET['url'];
  3. if(fopen($url,"r")){
  4.  echo "url valida";
  5. }else{
  6.  echo "url invalida";
  7. }
  8. ?>

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #10 (permalink)  
Antiguo 07/12/2009, 16:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Una pregunta difícil para mi

Cita:
Iniciado por masterojitos Ver Mensaje
para que le dan vuelta al asunto si el lo que desea es saber si la url que ingresa es valida o no...
no creo...

esa funcionalidad solo existe si esta configurado el php.ini con allow_url_fopen, y no siempre es permitido por seguridad...

osea, que en caso de que no se permita tu ejemplo jamás va a funcionar!!!


una expresión regular no abre la URL para comprobar su existencia, solo valida dicha URL ... ¿entonces, que es mejor??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 07/12/2009, 16:57
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Una pregunta difícil para mi

mejor obviamente es una expresion regular ps maestro..... pero ps para muchos programadores este tipo de expresiones es algo complicado, por lo que optaria por mi solucion.

y si no esta activado en el php.ini ps la solucion comun no?
Código php:
Ver original
  1. ini_set("allow_url_fopen", "1");

Dios os bendiga a toos.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #12 (permalink)  
Antiguo 07/12/2009, 17:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Una pregunta difícil para mi

Cita:
Iniciado por masterojitos Ver Mensaje
mejor obviamente es una expresion regular ps maestro..... pero ps para muchos programadores este tipo de expresiones es algo complicado, por lo que optaria por mi solucion.

y si no esta activado en el php.ini ps la solucion comun no?
Código php:
Ver original
  1. ini_set("allow_url_fopen", "1");

Dios os bendiga a toos.
pues si le llamas "solución" a tener que abrir un socket innecesariamente, tantas veces como necesitemos comprobar que la URL es valida... yo no le llamaría solución!!

es mas bien perdida de recursos, piensalo bien... si el usuario solo necesita saber que el formato de la URL es correcto ¿que necesidad hay de abrir un socket cada ves??

además, hay bastantes sitios e información en Internet acerca de expresiones regulares que, para que no encuentres alguna es porque no sabes buscar!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 07/12/2009, 17:08
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Una pregunta difícil para mi

Cita:
Iniciado por pateketrueke Ver Mensaje
pues si le llamas "solución" a tener que abrir un socket innecesariamente, tantas veces como necesitemos comprobar que la URL es valida... yo no le llamaría solución!!

es mas bien perdida de recursos, piensalo bien... si el usuario solo necesita saber que el formato de la URL es correcto ¿que necesidad hay de abrir un socket cada ves??

además, hay bastantes sitios e información en Internet acerca de expresiones regulares que, para que no encuentres alguna es porque no sabes buscar!!
Totalmente! Yo propuse el codigo de antes, porque no me llevo muuuuy bien con las expresiones regulares. Pero cuando he tenido que usarlas, recurri al manual, o a los aportes del foro y me ha ido bien =)
  #14 (permalink)  
Antiguo 07/12/2009, 17:12
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 15 años
Puntos: 0
Respuesta: Una pregunta difícil para mi

Si perfecto, maestros. Ahora se si la url existe o no. La mejore un poquito:
Cita:
if(fopen($url,"r")){
echo "url valida";
}else{
die('url invalida');
}
Para que no siguiera procesando el script, que implica meter otros datos en la database. Gracias!
  #15 (permalink)  
Antiguo 07/12/2009, 17:12
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 15 años
Puntos: 0
Respuesta: Una pregunta difícil para mi

PD: Ya lo probe en mi servidor de internet (no en el wamp) y no tuve problemas
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 22:33.