Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP - Validaciones

Estas en el tema de PHP - Validaciones en el foro de PHP en Foros del Web. Hola a todos. Necesito saber que en un input solo valide si empieza por http o https, el código es el siguiente. Código PHP: <?php ...
  #1 (permalink)  
Antiguo 01/03/2014, 20:40
Avatar de biktorbasket  
Fecha de Ingreso: junio-2013
Mensajes: 42
Antigüedad: 10 años, 10 meses
Puntos: 2
PHP - Validaciones

Hola a todos.

Necesito saber que en un input solo valide si empieza por http o https, el código es el siguiente.

Código PHP:
<?php

if(estas_conectado()){
    if(
$_POST){
        
$enlace_validar $_POST["video_link"];
        if (
$_POST["video_title"]==""){
            echo 
"No he recibido nada en el titulo del vídeo";

        }elseif(
$_POST["video_link"]==""){
            echo 
"No he recibido nada en el enlace del vídeo";
        }elseif(
strlen($_POST['video_link']) > 43){
            echo 
"El enlace no es valido -  Ejemplo :http://www.youtube.com/watch?v=XXXXXXXXXXX";
        }elseif(
$_POST["video_link"]=="http://www.youtube.com/watch?v=XXXXXXXXXXX"){
            echo 
"El enlace no es valido";
        }elseif(
preg_match('/^http(s)?/',$enlace_validar)){
            echo 
"El enlace comienza bien";
        }elseif(
$_POST["video_description"]==""){
            echo 
"No he recibido nada en la descripcion del vídeo";
        
        }else{
            echo 
"He recibido los datos correctamente ^^";
            
$ssql "insert into videos (video_title, video_link,video_youtuber, video_description, id_juego, id_user) values ('" $_POST["video_title"] . "', '" $_POST["video_link"] . "', '" $_POST["video_youtuber"] . "', '"$_POST["video_description"] ."', "$_POST["id_juego"] .", "$_SESSION["id_user"] .")";
            if(
mysql_query($ssql)){
                echo 
"El video se ha insertado correctamente ^^";
            }else{
                echo 
"Error al insertar los datos";
            }
        }
    }else{
        
//muestro el formulario
    
}
?>

Me han pasado este código por el foro:

Código PHP:
    if(preg_match('/^http(s)?/',$valor)) 
Pero no sé cómo adaptarlo al código.

¿Me podéis recomendar como puedo ponerlo más seguro?

Gracias, Un saludo
  #2 (permalink)  
Antiguo 02/03/2014, 00:00
 
Fecha de Ingreso: febrero-2014
Mensajes: 4
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: PHP - Validaciones

Cita:
Iniciado por biktorbasket Ver Mensaje
Hola a todos.

Necesito saber que en un input solo valide si empieza por http o https, el código es el siguiente.

Código PHP:
<?php

if(estas_conectado()){
    if(
$_POST){
        
$enlace_validar $_POST["video_link"];
        if (
$_POST["video_title"]==""){
            echo 
"No he recibido nada en el titulo del vídeo";

        }elseif(
$_POST["video_link"]==""){
            echo 
"No he recibido nada en el enlace del vídeo";
        }elseif(
strlen($_POST['video_link']) > 43){
            echo 
"El enlace no es valido -  Ejemplo :http://www.youtube.com/watch?v=XXXXXXXXXXX";
        }elseif(
$_POST["video_link"]=="http://www.youtube.com/watch?v=XXXXXXXXXXX"){
            echo 
"El enlace no es valido";
        }elseif(
preg_match('/^http(s)?/',$enlace_validar)){
            echo 
"El enlace comienza bien";
        }elseif(
$_POST["video_description"]==""){
            echo 
"No he recibido nada en la descripcion del vídeo";
        
        }else{
            echo 
"He recibido los datos correctamente ^^";
            
$ssql "insert into videos (video_title, video_link,video_youtuber, video_description, id_juego, id_user) values ('" $_POST["video_title"] . "', '" $_POST["video_link"] . "', '" $_POST["video_youtuber"] . "', '"$_POST["video_description"] ."', "$_POST["id_juego"] .", "$_SESSION["id_user"] .")";
            if(
mysql_query($ssql)){
                echo 
"El video se ha insertado correctamente ^^";
            }else{
                echo 
"Error al insertar los datos";
            }
        }
    }else{
        
//muestro el formulario
    
}
?>

Me han pasado este código por el foro:

Código PHP:
    if(preg_match('/^http(s)?/',$valor)) 
Pero no sé cómo adaptarlo al código.

¿Me podéis recomendar como puedo ponerlo más seguro?

Gracias, Un saludo
no te funciona ese codigo? O funciona pero lo quers cambiar?
  #3 (permalink)  
Antiguo 02/03/2014, 00:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: PHP - Validaciones

Quizá con un ejemplo te quede más claro:

Código PHP:
Ver original
  1. $valor1 = 'http://www.google.com';
  2. $valor2 = 'htp://www.google.com';
  3.  
  4. if (preg_match('/^http(s)?/', $valor1)) {
  5.     echo 'Bien';
  6. }
  7. else {
  8.     echo 'Mal';
  9. }
  10.  
  11. if (preg_match('/^http(s)?/', $valor2)) {
  12.     echo 'Bien';
  13. }
  14. else {
  15.     echo 'Mal';
  16. }

Esto imprimirá lo siguiente:

Código HTML:
Ver original
  1. Bien
  2. Mal

Si las cadenas $valor1 y $valor2 empiezan ya sea por http o https (la s es opcional), se imprimirá "Bien" pues se da la coincidencia, caso contrario, se imprimirá "Mal" pues no se da la coincidencia entre el inicio de la cadena y la expresión regular.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 02/03/2014, 13:03
Avatar de biktorbasket  
Fecha de Ingreso: junio-2013
Mensajes: 42
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: PHP - Validaciones

Cita:
no te funciona ese codigo? O funciona pero lo quers cambiar?
No, me deja escribir cualquier cosa. (Gracias por responder.)

__________________


Gracias Alexis88 voy a probar. Ahora os digo.
  #5 (permalink)  
Antiguo 02/03/2014, 14:01
Avatar de biktorbasket  
Fecha de Ingreso: junio-2013
Mensajes: 42
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: PHP - Validaciones

Lo he probado varias veces y en el input:

Código PHP:
<input type="link" class="form-control" id="video_link" name="video_link" placeholder="http://www.youtube.com/watch?v=T4KyeVH1Tag"
Escribo por ejemplo (sdafsfdsafdsafds) y no me aparece el error. dice que se a insertado correctamente.

Creo que tengo que negarlo con !

Voy a seguir investigando.
  #6 (permalink)  
Antiguo 02/03/2014, 14:11
Avatar de biktorbasket  
Fecha de Ingreso: junio-2013
Mensajes: 42
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: PHP - Validaciones

Lo he solucionado con este codigo:

Código PHP:

}elseif(!filter_var($enlace_validarFILTER_VALIDATE_URL)){
         echo 
"El enlace no es valido"
  #7 (permalink)  
Antiguo 02/03/2014, 14:42
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: PHP - Validaciones

También lo hubieras podido hacer así:

Código PHP:
Ver original
  1. if (!preg_match('/^http(s)?/', $valor)) {
  2.     //Instrucciones
  3. }
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: formulario, sql
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 11:19.