PHP - Como creo una url y un slug amigable?

 
Vista:

Como creo una url y un slug amigable?

Publicado por albert (21 intervenciones) el 11/09/2021 18:44:01
hola necesito codigo para generar una url y luego redicionarlo con una url amigable - alguna pagina web?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como creo una url y un slug amigable?

Publicado por Jefferson (203 intervenciones) el 11/09/2021 21:24:43
Hola amigo

No entiendo lo de redireccionarlo ?

Para crear una url amigable si
1
2
3
4
5
6
7
8
9
10
11
12
13
function url_amigable($url, $pisoBajo = true)
{
  $url = strtolower(trim($url));
  $n = array('Ñ', 'ñ');
  $url = str_replace($n, 'n', $url);
  $find = array(' ', '&', '\r\n', '\n', '+', ',');
  $url = str_replace($find, '-', $url);
  $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
  if ($pisoBajo) $repl = array('', '_', '');
  else $repl = array('', '-', '');
  $url = preg_replace($find, $repl, $url);
  return $url;
}

Comentas
Saludos desde Venezuela
Jefferson Jimenez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como creo una url y un slug amigable?

Publicado por albert (21 intervenciones) el 14/09/2021 17:56:20
lo que necesito esque cuando ingrese un link de algun usuario por ejemplo https://fgfuyfgruyd.com/3573573gt364g67fheyufgesugf
esta se traduzca en una pagina donde este su archivo listo para descargar :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como creo una url y un slug amigable?

Publicado por Jefferson (203 intervenciones) el 14/09/2021 23:54:33
Hola, me parece que tu requerimiento es algo ambiguo o no sabes explicarte.

No se si quieres un acortador de url ?? algo que traduzca
este link https://fgfuyfgruyd.com/3573573gt364g67fheyufgesugf
en algo como https://fgfuyfgruyd.com/J5iO

O por el contrario necesitas enmascarar la url (para que no sea facilmente leida)
donde envias esto https://fgfuyfgruyd.com/3573573gt364g67fheyufgesugf
y por medio de php descifrarlo y descargar un archivo?

Comentas.
Ambas cosas son muy facil de hacer, pero no esta claro lo que deseas (al menos yo no lo entiendo)

Desde Venezuela
Jefferson Jimenez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como creo una url y un slug amigable?

Publicado por albert (21 intervenciones) el 15/09/2021 09:23:02
enmascarar la url ,pero nose a que variabel de lo que pusiste arriba tengo que asignar !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como creo una url y un slug amigable?

Publicado por Jefferson (203 intervenciones) el 15/09/2021 15:44:39
Ok entiendo.

En lo particular no me gusta usar GET por lo expuesto que pueda quedar la información, pero hay ocasiones donde es necesario y obviamente se requiere enmascarar la url.

Bien, yo me cree un código (quizás no sea el mas seguro del mundo, pero al menos dificulta un poco el phishing)

Que hace ?
maskGet( $val , $len1, $len2 , $char )
1) Le paso el valor
2) Le creo un primer hash pasando la longitud
3) Le creo un segundo hash pasando la longitud
4) Le paso un carácter que solo yo conozca ( / , * , ! , $)
5) Junto todo y codifico a base64

Luego para recuperarlo decodifico el resultado en un array y como conozco el carácter usado le extraigo las partes

Recomiendo cambies el nombre del get para despistar un poco, por ejemplo si el campo a atacar es nombre, envías por get otra cosa ejemplo hash

Te dejo una muestra para que logres entenderlo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
if (isset($_GET['hash'])) {
  $nombre=implode('!', array_slice(explode('!', base64_decode($_GET['hash'])), 1, 1));
  $insert = "INSERT INTO tabla(nombre)VALUES('" . $nombre . "')";
  echo $insert;
} else {
  function maskGet($val, $len1, $len2,$char)
  {
    $cod = 'abc1357902468pqrstvwxyzABCD';
    $res = '';
    for ($i = 1; $i <= $len1; $i++) {
      $res .= substr($cod, (rand() % (strlen($cod))), 1);
    }
    $key = '';
    $code = 'abcdefghijklmnopqrstvwxyzABCDEFGHIJKLMNOPQRSTVWXYZ';
    $max = strlen($code) - 1;
    for ($i = 0; $i < $len2; $i++)
      $key .= $code{mt_rand(0, $max)};
    return base64_encode($res . $char . $val . $char . $key);
  }
  echo '
  <!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>GET</title>
  </head>
  <body>
  <h3>Supongamos deseas enviar el nombre <b>JUAN</b> por get</h3>
  <span>En el input name ya coloco el nombre enmascarado para no estar haciendo mas peticiones (creo que se puede entender la idea)</span><br><br>
    <form method="get" action="' . $_SERVER['PHP_SELF'] . '">
      Nombre: <input type="text" name="hash" value="' . maskGet('JUAN', 12, 12,'!') . '" style="width:500px" readonly/><br><br>
      <button type="submit">Envia</button>
    </form>
  </body>
  </html>
  ';
} ?>

Saludos y suerte
Desde Venezuela
Jefferson Jimenez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar