.
Cerrar Ventana

Algunas cookies de este sitio son esenciales, y el sitio no funcionará como se espera sin ellas. Estas cookies se establecen en el momento de enviar un formulario, inicie sesión o interactuar con el sitio realizando una acción que va más allá de hacer clic en un simple enlace.


Leer Más

Solicitar soporte AQUÍ
Hosting Gratis, Hosting P2H y de pago, más información AQUÍ o AQUÍ    (Ver PLANES).
Solicitar Hosting Gratis AQUÍ .
Para que se habrán los enlaces de descarga pulsar el  Botón Gracias.

Pregunta Busqueda de url dentro de post y convertirlo en variable



06-27-2022, 10:11 PM #1
1
Saludos, buenas tardes, espero que se encuentre bien. El presente post porque me encuentro un poco corto de conocimiento y no consigo como resolver lo que quiero realizar, la idea es la siguiente:
Buscar los url (Enlaces) dentro del Post, que se encuentren dentro de ciertos corchetes como [enlace ] es el principal, o cualquier otro que se pueda definir (si es posible) tomarlos y convertirlos en una variable, para luego codificar (encriptar) esa variable con OPENSSL y colocarla nuevamente encriptada, en pocas palabras:
Buscar URL dentro del post ejem:
mera prueba de lo que quiero hacer para mas complementos visita lo siguiente
[enlace ] Debes agradecer para ver el contenido... [enlace ]
[enlace ] Debes agradecer para ver el contenido... [enlace ] (pueden ser varios)

tomar del post solo los enlaces y convertirlos en variable que luego pueda manipular, la idea es encriptarlos de tal manera que no salga el url si no una encriptación que luego apuntare a la funcion, php, pagina etc que decodificara y lo enviara al enlace. Entonces, esos enlaces que puse como ejemplo en la parte superior, deberían terminar viéndose al final del proceso mas o menos así:

mera prueba de lo que quiero hacer para mas complementos visita lo siguiente
[enlace ] Debes agradecer para ver el contenido.../saliendo/?url=rwy347y347uy3ehewg2qj0fj23tj2o3jtg [enlace ]
[enlace ] Debes agradecer para ver el contenido.../saliendo/?url=fgjfghedui46745 [enlace ]
(las letras en rojo terminarían siendo las primeras direcciones que coloque como ejemplo pero encriptadas)

de aquí en adelante ya he realizado todo el proceso de recibir el GET, decodificarlo y llevarlo a la web en X segundos, me guie un poco con el complemento saliendo de Taringa.

Intente guiarme con el complemento de comentarios y no estas registrado para ver los enlaces, pero el problema es que eso muestra siempre lo mismo al coincidir una expresión regular, yo necesito es extraer lo que se encuentre dentro de esa expresión regular para luego manipularla y la verdad no he logrado abrir mente por donde comenzar.
aprovechare la ocasión para preguntar lo siguiente, es necesario crear filtros en información recibida por GET para evitar cualquier ataque? es decir el php que recibe el url encriptado se debería filtrar?

(Última modificación: 06-27-2022, 10:17 PM por hikkiy.)
 Responder
06-28-2022, 05:19 AM #2
3
Mejor respuesta del mensaje RE: Busqueda de url dentro de post y convertirlo en variableHola, después cuando venga de trabajar lo leo y miro bien, ahora me tengo que ir a trabajar y no me da tiempo, mira si te vale estos enlaces.

Registrate o inicia tu sesión para ver este contenido

Registrate o inicia tu sesión para ver este contenido

Registrate o inicia tu sesión para ver este contenido

Registrate o inicia tu sesión para ver este contenido

 Responder
06-28-2022, 06:12 AM #3
0
(06-28-2022, 05:19 AM)Tronlar escribió: Debes agradecer para ver el contenido...Hola, después cuando venga de trabajar lo leo y miro bien, ahora me tengo que ir a trabajar y no me da tiempo, mira si te vale estos enlaces.

Gracias por tomarse su tiempo de responder, afortunadamente ya resolví casi todo xddd, después de unas 5 horitas dandole, logre por fin lograr algo de lo que tenia en mente, ahora tengo el siguiente problema que aun busco resolver (si no estoy en lo correcto me corriges, estoy un poco nuevo en la materia):

usando preg_match_all y expresiones regulares busco lo que me interesa y lo almaceno en una variable, esta variable la desenglozo con foreach, usando str_replace elimino principio y final que no necesito (que use al principio para buscar lo que me interesa en el post), usando base64 y openssl_encrypt codifico, hasta aquí vamos bien, el problema se me presenta es cuando quiero devolver los valores, es decir:

imaginemos que el resultado de todos los enlaces se almacenaron en la variable $enlaces_resultado, si esta variable la muestro por echo se muestra muy bien, como debería claro (imaginemos que aun no codifico):

Ejemplo de post:
Probando el Post sisi que si
Registrate o inicia tu sesión para ver este contenido
una imagen por aqui otra por alla
Registrate o inicia tu sesión para ver este contenido
esto es mera prueba
Registrate o inicia tu sesión para ver este contenido

El Resultado de llamar la variable $enlaces_resultado con echo seria:
Registrate o inicia tu sesión para ver este contenido
Si lo coloco asi: <div class='emptyData'>$enlaces_resultado</div><br>
me deja una línea entre cada enlace (hasta allí todo bien)

el problema lo tengo ahora cuando quiero aplicarlo en el lugar de donde tome los enlaces, uso la siguiente función:

$postData[post_body] = preg_replace($Exp_Reg_Principal, $enlaces_resultado, $postData[post_body]);
(Aclaro que esa expresión regular es la misma que uso en preg_match_all para buscar lo que me interesa)

cuando voy al Post, y busco donde se encontraban los respectivos enlaces, todos se convierten en el ultimo enlace que detecto la función es decir:

Probando el Post sisi que si
Registrate o inicia tu sesión para ver este contenido
una imagen por aqui otra por alla
Registrate o inicia tu sesión para ver este contenido
esto es mera prueba
Registrate o inicia tu sesión para ver este contenido

lo que me da a pensar que el problema esta principalmente en el preg_replace en vez de regresar los valores en el mismo orden que se tomaron, lo que hace es colocar el ultimo valor que tomo.

Una imagen vale mas que mil palabras (el cuadro verde es el echo mostrando la variable $enlaces_resultado y lo rojo es el comando:
$postData[post_body] = preg_replace($Exp_Reg_Principal, $enlaces_resultado, $postData[post_body]);

[img]Registrate o inicia tu sesión para ver este contenido[/img]

Posdata: no uso base64 porque en cualquier lugar se puede decodificar, retoricamente lo uso en este caso porque después de encriptar en OPENSSL, me coloca varios caracteres como / o + etc y para no tener problemas con el GET, le aplico base64 y queda muy bien xdd.

(Última modificación: 06-28-2022, 06:17 AM por hikkiy.)
 Responder
06-29-2022, 07:23 AM #4
0
(06-28-2022, 06:12 AM)hikkiy escribió: Debes agradecer para ver el contenido...
(06-28-2022, 05:19 AM)Tronlar escribió: Debes agradecer para ver el contenido...Hola, después cuando venga de trabajar lo leo y miro bien, ahora me tengo que ir a trabajar y no me da tiempo, mira si te vale estos enlaces.

Gracias por tomarse su tiempo de responder, afortunadamente ya resolví casi todo xddd, después de unas 5 horitas dandole, logre por fin lograr algo de lo que tenia en mente, ahora tengo el siguiente problema que aun busco resolver (si no estoy en lo correcto me corriges, estoy un poco nuevo en la materia):

usando preg_match_all y expresiones regulares busco lo que me interesa y lo almaceno en una variable, esta variable la desenglozo con foreach, usando str_replace elimino principio y final que no necesito (que use al principio para buscar lo que me interesa en el post), usando base64 y openssl_encrypt codifico, hasta aquí vamos bien, el problema se me presenta es cuando quiero devolver los valores, es decir:

imaginemos que el resultado de todos los enlaces se almacenaron en la variable $enlaces_resultado, si esta variable la muestro por echo se muestra muy bien, como debería claro (imaginemos que aun no codifico):

Ejemplo de post:
Probando el Post sisi que si

una imagen por aqui otra por alla

esto es mera prueba


El Resultado de llamar la variable $enlaces_resultado con echo seria:
://localhost/2
Si lo coloco asi: <div class='emptyData'>$enlaces_resultado</div><br>
me deja una línea entre cada enlace (hasta allí todo bien)

el problema lo tengo ahora cuando quiero aplicarlo en el lugar de donde tome los enlaces, uso la siguiente función:

$postData[post_body] = preg_replace($Exp_Reg_Principal, $enlaces_resultado, $postData[post_body]);
(Aclaro que esa expresión regular es la misma que uso en preg_match_all para buscar lo que me interesa)

cuando voy al Post, y busco donde se encontraban los respectivos enlaces, todos se convierten en el ultimo enlace que detecto la función es decir:

Probando el Post sisi que si

una imagen por aqui otra por alla

esto es mera prueba


lo que me da a pensar que el problema esta principalmente en el preg_replace en vez de regresar los valores en el mismo orden que se tomaron, lo que hace es colocar el ultimo valor que tomo.

Una imagen vale mas que mil palabras (el cuadro verde es el echo mostrando la variable $enlaces_resultado y lo rojo es el comando:
$postData[post_body] = preg_replace($Exp_Reg_Principal, $enlaces_resultado, $postData[post_body]);

[img]Registrate o inicia tu sesión para ver este contenido[/img]

Posdata: no uso base64 porque en cualquier lugar se puede decodificar, retoricamente lo uso en este caso porque después de encriptar en OPENSSL, me coloca varios caracteres como / o + etc y para no tener problemas con el GET, le aplico base64 y queda muy bien xdd.

Hola, perdona por tardar en contestar, se me ha averiado la tarjeta gráfica del PC y estoy hasta mañana que no puedo hacer nada.
Si quieres devolver más de un valor, tienes que utilizar un array, ¿lo tienes creado?

 Responder
06-29-2022, 04:20 PM #5
0
Si, ya esta creado, de hecho la función preg_match_all automáticamente crea arrays con los valores encontrados según la expresión regular asignada, ya logre solucionar. gracias de todas maneras. todo el proceso realizando el siguiente orden:
Busco lo que me importa con preg_match_all, lo transformo de Array a string, lo despliego con foreach, utilizo str_replace para limpiar los elementos que use para buscar, utilizo base64_encode y openssl_encrypt para encriptar y por ultimo preg_replace para volver a colocar en su sitio, el error que tenia era este:
$postData[post_body] = preg_replace($Exp_Reg, "Registrate o inicia tu sesión para ver este contenido", $postData[post_body], 1); (ese ultimo uno), no se que hace exactamente pero en vez de reemplazar todo a la vez, lo hace uno por uno, ya con eso funciono sin problemas, si puede recomendar alguna función o comando para optimizar el proceso se lo agradecería, además de una expresión regular que permita url y ciertos caracteres como el +, / y = hay si no se mucho u.u

(Última modificación: 06-29-2022, 04:27 PM por hikkiy.)
 Responder



Compartir en:

Salto de foro:



Usuarios navegando en este tema:
1 invitado(s)