Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Drakaris en 24 Junio 2017, 18:21 pm



Título: llamar función php desde caja de texto con onchange
Publicado por: Drakaris en 24 Junio 2017, 18:21 pm
Hola, estoy continuando con mi proyecto y me he topado con un problemilla, todo va bien en mi formulario, en una parte de mi formulario tengo una caja de texto input tipo url que insertas una url y yo quisiera poner una función que cuando el cliente acabe de escribir la url en el input me diga si esa url es verdadero o falsa y si es falsa me bloquee la función "insertar5.php".

Para ello hice un input y puse en onchange lo siguente:
Código:
<?php
    $url = $_POST['artarea'];
    function url_exists($url) {
        $h = get_headers($url);
        $status = array();
        preg_match('/HTTP\/.* ([0-9]+) .*/', $h[0] , $status);
        return ($status[1] == 200);
    }
    echo url_exists($url)? 'existe' : 'no existe';
?>
<input  type="url" name="artarea" id="artarea" style="opacity: 0.8; border: inset; border-radius: 10px; font-family: segoe script;" required placeholder="Escribe aqu&iacute; el enlace." onpaste="return paste;" oncut="return false;" oncopy="return false;" onchange="<?php echo validar_url(); ?>">

Llama a una función php mediante onchange según lo que he oído está mal el onchange="<?php echo validar_url(); ?>" creo. ¿Y si es así como lo puedo llamar a la función validar_url()?

Gracias


Título: Re: llamar función php desde caja de texto con onchange
Publicado por: 3n31ch en 24 Junio 2017, 19:06 pm
Ese tipo de cosas se hacen en javascript no en PHP, ya que lo que quieres es una funcionalidad por lado del cliente.

Por otra parte, si realmente prefieres usar esa función de PHP por el lado del cliente, entonces tendrás que enviar la URL por ajax al servidor y que este te responda true o false.



Esto que pusiste: onchange="<?php echo validar_url(); ?>" no tiene ningún sentido. (Ni para html, ni para javascript ni para php)

Ojo, tienes un problema para diferenciar la utilidad de cada herramienta. Te recomendaría repasar algunos conceptos antes de seguir.



Suerte .-