如何访问我的 url 中的 slug 值?
How to access the slug value in my url?
我想知道为什么我的代码没有显示任何结果。
我在home.php
页面有一个link,像这样:
<a href="../musica/'.$row['slug'].'">Click here</a>`
在 musica.php
页面中,我通过以下方式访问 slug:
$slug = $_GET['slug'];
我的查询如下所示:
select * from musical layers where slug = $slug
但它没有返回任何东西。
这是我的 hyperlink 转到的完整 url:
scrashmusicas.epizy.com/musica/wesley-safadao-banda-garota-safada
没有错误,但我无法获取 slug 值。谁能帮帮我?
这是我的 musica.php 文件的相关部分:
$slug = $_GET['slug'];
$result_capa = "select * from capas_musicas where slug = $slug";
$resultados_capa = mysqli_query($conn, $result_capa);
while($row = mysqli_fetch_assoc($resultados_capa)){
echo '
<li>
<a href="../musica/'.$row['slug'].'">
<div class="box_destaque">
<img src="'.$row['capa_album'].'" border="0"/>
<strong>'.$row['nome_album'].'</strong>
<span>'.$row['categoria_album'].'</span>
</div>
</a>
</li>
';
}
试试改成这样:
<a href="../musica/?slug='.$row['slug'].'">Click here</a>
有几件事需要解决...
$slug = $_GET['slug'];
If/When $_GET
超全局中没有 slug
键,您将收到通知。在尝试 access/use 值之前,您需要检查它是否 isset()
。
$result_capa = "select * from capas_musicas where slug = $slug";
此查询不安全。每次在查询中使用 user-supplied 或通常不安全的数据时,都需要使用带占位符的准备语句。对于您当前的代码,$slug
至少需要 single-quote-wrapped(当然除非它是一个整数——但仍然使用准备好的语句)
至于 $_GET
,您没有在 href
值中提供查询字符串,因此不会通过 $_GET
.
传递任何内容
在您的 musica.php
脚本上调用 $_SERVER['REQUEST_URI']
将产生此字符串值:
/musica/wesley-safadao-banda-garota-safada
要访问 slug 值,请使用:
$path=parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH);
$slug=substr($path,strrpos($path,'/')+1);
或者只是:
$slug=substr($_SERVER['REQUEST_URI'],8); // access substring after "/musica/"
我想知道为什么我的代码没有显示任何结果。
我在home.php
页面有一个link,像这样:
<a href="../musica/'.$row['slug'].'">Click here</a>`
在 musica.php
页面中,我通过以下方式访问 slug:
$slug = $_GET['slug'];
我的查询如下所示:
select * from musical layers where slug = $slug
但它没有返回任何东西。
这是我的 hyperlink 转到的完整 url:
scrashmusicas.epizy.com/musica/wesley-safadao-banda-garota-safada
没有错误,但我无法获取 slug 值。谁能帮帮我?
这是我的 musica.php 文件的相关部分:
$slug = $_GET['slug'];
$result_capa = "select * from capas_musicas where slug = $slug";
$resultados_capa = mysqli_query($conn, $result_capa);
while($row = mysqli_fetch_assoc($resultados_capa)){
echo '
<li>
<a href="../musica/'.$row['slug'].'">
<div class="box_destaque">
<img src="'.$row['capa_album'].'" border="0"/>
<strong>'.$row['nome_album'].'</strong>
<span>'.$row['categoria_album'].'</span>
</div>
</a>
</li>
';
}
试试改成这样:
<a href="../musica/?slug='.$row['slug'].'">Click here</a>
有几件事需要解决...
$slug = $_GET['slug'];
If/When $_GET
超全局中没有 slug
键,您将收到通知。在尝试 access/use 值之前,您需要检查它是否 isset()
。
$result_capa = "select * from capas_musicas where slug = $slug";
此查询不安全。每次在查询中使用 user-supplied 或通常不安全的数据时,都需要使用带占位符的准备语句。对于您当前的代码,$slug
至少需要 single-quote-wrapped(当然除非它是一个整数——但仍然使用准备好的语句)
至于 $_GET
,您没有在 href
值中提供查询字符串,因此不会通过 $_GET
.
在您的 musica.php
脚本上调用 $_SERVER['REQUEST_URI']
将产生此字符串值:
/musica/wesley-safadao-banda-garota-safada
要访问 slug 值,请使用:
$path=parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH);
$slug=substr($path,strrpos($path,'/')+1);
或者只是:
$slug=substr($_SERVER['REQUEST_URI'],8); // access substring after "/musica/"