Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何访问我的url中的slug值?_Php_Url_Slug - Fatal编程技术网

Php 如何访问我的url中的slug值?

Php 如何访问我的url中的slug值?,php,url,slug,Php,Url,Slug,我想知道为什么我的代码没有显示任何结果 我在home.php页面中有一个链接,如下所示: <a href="../musica/'.$row['slug'].'">Click here</a>` select * from musical layers where slug = $slug 我的查询如下所示: <a href="../musica/'.$row['slug'].'">Click here</a>` select * from

我想知道为什么我的代码没有显示任何结果

我在home.php页面中有一个链接,如下所示:

<a href="../musica/'.$row['slug'].'">Click here</a>`
select * from musical layers where slug = $slug
我的查询如下所示:

<a href="../musica/'.$row['slug'].'">Click here</a>`
select * from musical layers where slug = $slug
但它没有归还任何东西

这是我的超链接指向的完整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'];
如果$\u GET superglobal中没有slug键,您将收到通知。在尝试访问/使用该值之前,需要检查它是否已设置

$result_capa = "select * from capas_musicas where slug = $slug";
此查询不安全。每次在查询中使用用户提供的数据或通常不安全的数据时,都需要使用带占位符的准备语句。对于您当前的代码,$slug至少需要单引号包装,当然,除非它是一个整数——但仍然要使用一个准备好的语句

至于$\u-GET,您的href值中没有提供查询字符串,因此没有通过$\u-GET传递任何内容

在musica.php脚本上调用$\u SERVER['REQUEST\u URI']将生成以下字符串值:

/musica/wesley-safadao-banda-garota-safada
要访问段塞值,请使用以下命令:

$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/"

它不起作用,即使这个方法起作用,也不是我需要的,明白吗?请在两个文件'$slug'@Bruno周围加上单引号。你有正确的路径吗?你需要上一层楼吗?我是说,对你的情况……正确吗?请注意,我建议您在查询之前使用musica.php而不是musica/。我的目标是创建一个友好的url,如果我使用music.php,它会工作,但不会友好,我已经查找了很多关于它的文章,但我无法得到答案。我将改进我的答案。我知道你现在想要什么。一分钟,当您回显$_服务器['REQUEST_URI']时,您会看到什么;关于musica.php?我只想知道你们是否需要进一步准备那个值。@Bruno好的,我已经编辑了我的答案。您应该正确地实现了我建议的$\u服务器['REQUEST\u URI']方法