wellingtonsilverio 21 de mai. de 2018 1 like
Nossa, acho que é muito inseguro passar algo para deletar por url, melhor você passar por POST e recuperar com:
if ( isset ( $ _POST [ "nomedocampoquepodeserhidden" ]))
{
$ variavel = $ _POST [ "nomedocampoquepodeserhidden" ];
}
confuso 20 de mar. de 2019 1 like
Eu diria que o mais correto ainda seria a URL não conter ações ou verbos:
DELETE https://meusistema.com/clientes/ID_DO_CLIENTE
Esse DELETE seria o método HTTP.
aicouto 20 de mar. de 2019
em primeiro lugar precisa estar com o seu servidor devidamente configurado.
no apache o mod_rewrite habilitado e o .htaccess configurado adequadamente.
em seguida você pode pegar o terceiro segmento do REQUEST_URI através da seguinte função:
function segment ( $ segmentId = null ) {
$ str = $ _SERVER [ "REQUEST_URI" ] ;
$ str = @explode ( '?' , $ str ) [ 0 ] ;
$ arr = explode ( '/' , $ str );
$ arr = array_filter ( $ arr );
$ arr = array_values ( $ arr );
if ( count ( $ arr ) < 1 ) {
$ segment [ 1 ]= '/' ;
} else {
$ i = 1 ;
foreach ( $ arr as $ key => $ value ) {
$ segment [ $i++ ]= $ value ;
}
}
if ( is_null ( $ segmentId )) {
return $ segment ;
} else {
if ( isset ( $ segment [ $segmentId ] )) {
return $ segment [ $segmentId ] ;
} else {
return false ;
}
}
}
o id no caso está no segment 3:
Dragoon 20 de mar. de 2019 1 like
Galera, me da um help ai…
Estou trabalhando em um CRUD simplesinho… Mas me deparei com a seguinte situação:
Na Pagina em que listo os clientes, ao lado de cada cliente tenho um botão “DELETE” que, quando clicado, manda pra URL “/clientes/delete”… com o ID do sujeito. So que na funcao do meu controller onde faço isso, nao consigo recuperar de forma alguma o ID que passei pra URL…
Alguem me salva ai
Basicamente:
<?php
$datas = parse_url ( $_SERVER [ 'REQUEST_URI' ]);
$path = explode ( '/' , $datas [ 'path' ]);
$id = end ( $path );
esse código vai pegar a última parte do array path e trazer pra você, claro que esse código pode ser uma função e pode conter mais elementos de teste, exemplo
<?php
function get_last_id ()
{
$datas = parse_url ( $_SERVER [ 'REQUEST_URI' ]);
$path = explode ( '/' , $datas [ 'path' ]);
$id = end ( $path );
if ( is_numeric ( $id ))
{
return $id ;
}
return null ;
}
e para utilizar a função:
if ($id = get_last_id())
{
echo $id; //o número
}
Site para estudos PHP.net - parse_url
aicouto 21 de mar. de 2019
muito boa a tua solução, bem ad hoc
o único problema que encontrei nela é que se colocar um / após o id ela retorna null, nada que um array_filter no $path não resolva.