Jump to content

PHP | Esconder variável passada na URL


Wionon

Recommended Posts

Boa noite.

Eu estou a criar uma base de dados com contactos.

O que eu gostava de fazer era o seguinte. Eu estou a listar todos os contactos numa tabela e depois posso clicar no botão à frente do contacto e ele redireciona-me para outra pagina com os dados desse respetivo contacto.

Eu estou a passar o id desse contacto através da URL. Mas eu gostaria de esconder o ID e ficar apenas com a url p.e www.contactos.viewcontact.php.

O meu codigo é este:

 while($dados_viewuser = mysqli_fetch_array($result_viewuser, MYSQLI_ASSOC))
                                                                    {
                                                                              echo'<tr class="odd">';
                                                                                        echo '<td  class="dtr-control sorting_1" tabindex="0" id="" name="">'.$dados_viewuser['id_user'] ;'</td>';
                                                                                        echo '<td id="" name="">' .$dados_viewuser['nome_user']; '</td>';
                                                                                        
                                                                                            if($dados_viewuser['estado_user']=='1'){
                                                                                             echo '<td id="estado_user" name="estado_user">Ativo</td>';
                                                                                            }
                                                                                            else {
                                                                                                echo '<td id="estado_user" name="estado_user">Inativo</td>';
                                                                                                
                                                                                            }
                                                                                        
                                                                                
                                                                                        echo '<td id="" name="">' .$dados_viewuser['dataregisto_user']; '</td>';
                                                                                        printf ('<td><a class="btn-xs btn-success" href="/edit_user.php?idedit=%d"><i class="fa fa-edit"></i>&nbsp; View </a></td>',$dados_viewuser['id_user']);
                                                                              echo '</tr>';
                                                                                        $number++;
                                                                    }

Estou a passar o valor através da tag <a>. Como posso passar essa variavel mas escondida no URL para não mostrar o ID.

Vicente

Link to comment
Share on other sites

Viva, 

Podes usar o url, é um dos métodos mais utilizados e possivelmente mais correto.

No entanto para te assegurares que não tens problemas com pessoas a mudarem manualmente o endereço, podes usar em vez de Id um UUId.

 

Se mesmo assim quiseres ocultar, só criando um formulário para cada linha, em vez do <a> usas um botão que faz submit ao form, em que o método é POST, no entanto, alguem que veja o request do POST consegue apanhar na mesma o Id.

 

Novamente, aposta antes em usar UUId no link e fica mais seguro e funcional

  • Vote 1

Feito é melhor que perfeito

Link to comment
Share on other sites

On 11/5/2023 at 9:57 AM, HappyHippyHippo said:

podes descrever uma situação que leve a não querer que o ID esteja no URL

Muito provavelmente o colega usa id do tipo autoincrement
O que dá margem para acessar outros registros simplesmente trocando o número na url.
A sugestão do @Ivo Vicente deve ser a mais adequada.
Usar algum tipo de unique ID, como uuidv4

Link to comment
Share on other sites

On 11/5/2023 at 6:00 PM, MentorDuncan said:

Muito provavelmente o colega usa id do tipo autoincrement
O que dá margem para acessar outros registros simplesmente trocando o número na url.
A sugestão do @Ivo Vicente deve ser a mais adequada.
Usar algum tipo de unique ID, como uuidv4

é por isso que existem sistema de permissão de acesso, "esconder" ids é basicamente over-engineering

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.