Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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
通过href在另一个php页面中使用变量_Php_Get_Href_Fopen - Fatal编程技术网

通过href在另一个php页面中使用变量

通过href在另一个php页面中使用变量,php,get,href,fopen,Php,Get,Href,Fopen,我将尽我所能解释这一点: 我有一个上传页面。用户粘贴或拖放代码文件,并将其上载到用户目录。在上传之前,他们需要通过下拉菜单选择语言。该选择值在文件前面,并添加一个随机字符串。因此,如果他们粘贴一些Java,然后单击upload,那么文件将被删除 java-iVW827pVjEEo.txt 这部分很好用 我还有另一个页面show_file.php,它以同样的格式和语法突出显示的方式显示该文件的内容但仅当我手动键入文件名时,if才起作用。问题出现在用户的配置文件页面上。文件显示在用户配置文件上,如

我将尽我所能解释这一点:

我有一个上传页面。用户粘贴或拖放代码文件,并将其上载到用户目录。在上传之前,他们需要通过下拉菜单选择语言。该选择值在文件前面,并添加一个随机字符串。因此,如果他们粘贴一些Java,然后单击upload,那么文件将被删除

java-iVW827pVjEEo.txt
这部分很好用

我还有另一个页面show_file.php,它以同样的格式和语法突出显示的方式显示该文件的内容仅当我手动键入文件名时,if才起作用。问题出现在用户的配置文件页面上。文件显示在用户配置文件上,如下所示(稍后我将更改为标题。只需让此部分正常工作即可):

这是通过这个foreach循环完成的:

foreach($files as $file) {
      echo '<a href="'.$link.'">'.basename($file).'</a><br/>';
}
但现在我明白了

foreach ($files as $file) {
    //echo '<a href="'.$link.'">'.basename($file).'</a><br/>';
    echo '<a href="show_file.php?id=' . $file->id . '">' . basename($file) . '</a><br/>';
}
警告:fopen(users/testUser/code\u uploads/):无法打开流:没有这样的文件或目录
如何将锚定标记链接到相应的文件

谢谢。

看看这是否有效:)

foreach($files as$file){
//回声“
”; 回声“
”; }
看起来在echo语句中添加的php标记给出了问题。让我知道

更新:

好的,原来的错误消失了,但其他地方有个问题。很难从片段中看出这里发生了什么。但是,如果您使用$\u GET传递文件名('id'),则应在发送到的页面上获取该文件名:

$user\u file=$\u GET['id'];//由于某种原因,这里以前用逗号代替分号。假设这是一个数组。如果没有,你可以只回显内容。
打印(用户文件);//这将显示您是否实际收到了数据。如果您有:
foreach($user\u文件为$file){
回声“
”; }
看看这是否有效:)

foreach($files as$file){
//回声“
”; 回声“
”; }
看起来在echo语句中添加的php标记给出了问题。让我知道

更新:

好的,原来的错误消失了,但其他地方有个问题。很难从片段中看出这里发生了什么。但是,如果您使用$\u GET传递文件名('id'),则应在发送到的页面上获取该文件名:

$user\u file=$\u GET['id'];//由于某种原因,这里以前用逗号代替分号。假设这是一个数组。如果没有,你可以只回显内容。
打印(用户文件);//这将显示您是否实际收到了数据。如果您有:
foreach($user\u文件为$file){
回声“
”; }
很抱歉,这不起作用。我得到fopen(users/testUser/code_uploads/$file->id):无法打开流:没有这样的文件或目录嘿,我理解。我现在已经很晚了。不幸的是,我得到了通知:试图为每个文件获取非对象的属性。这些链接确实可以让我在没有崩溃的情况下进入页面,但是div什么也不显示。我正在阅读有关$\u获取参数/请求的文章,以尝试解决这个问题。我第一次和他们打交道。它打印users/testUser/code_uploads/c-b7sKqdDUPOVa.txtWAIT!我知道现在发生了什么!当我用“print\r($user\u file)”打印$\u GET变量时,它显示了整个路径“/users/testUser/code\u uploads/fileName.txt”。我的fopen函数试图查找“/users/testUser/code\u uploads/fileName.txt/users/testUser/code\u uploads/fileName.txt”。它当然找不到了!我的fopen参数只需要$user\u文件,因为它包含整个路径。当我从fopen中删除路径并只留下$user_dir时,它就工作了!我将接受你的回答,因为你建议使用打印帮助我了解发生了什么,从而解决了我的问题。:-)很抱歉,那没用。我得到fopen(users/testUser/code_uploads/$file->id):无法打开流:没有这样的文件或目录嘿,我理解。我现在已经很晚了。不幸的是,我得到了通知:试图为每个文件获取非对象的属性。这些链接确实可以让我在没有崩溃的情况下进入页面,但是div什么也不显示。我正在阅读有关$\u获取参数/请求的文章,以尝试解决这个问题。我第一次和他们打交道。它打印users/testUser/code_uploads/c-b7sKqdDUPOVa.txtWAIT!我知道现在发生了什么!当我用“print\r($user\u file)”打印$\u GET变量时,它显示了整个路径“/users/testUser/code\u uploads/fileName.txt”。我的fopen函数试图查找“/users/testUser/code\u uploads/fileName.txt/users/testUser/code\u uploads/fileName.txt”。它当然找不到了!我的fopen参数只需要$user\u文件,因为它包含整个路径。当我从fopen中删除路径并只留下$user_dir时,它就工作了!我将接受你的回答,因为你建议使用打印帮助我了解发生了什么,从而解决了我的问题。:-)
<div class="container">
<div class="show-code">
    <script src="lib/prism.js"></script> <!-- Load prism.js library -->
    <pre><code class="language-<?php echo $language?>"><?php while(! feof($file)) {echo fgets($file);}?></code></pre>
</div>
</div>
foreach($files as $file) {
       //echo '<a href="'.$link.'">'.basename($file).'</a><br/>';
       echo '<a href="show_file.php?id=<?php echo $file->id;?>">'.basename($file).'</a><br/>';
 }
$user_file = $_GET['id'],
Warning: fopen(users/testUser/code_uploads/<?php echo $file->id;?>): failed to open stream: No such file or directory 
foreach ($files as $file) {
    //echo '<a href="'.$link.'">'.basename($file).'</a><br/>';
    echo '<a href="show_file.php?id=' . $file->id . '">' . basename($file) . '</a><br/>';
}
$user_file = $_GET['id']; // There was a comma here previously for some reason instead of semi-colon. Assuming this is an array. If not you can just echo the contents.

print_r($user_file); // This will show you if you have actually received the data. If you have:

foreach ($user_file as $file) {
    echo '<a href="show_file.php?id=' . $file . '">' . basename($file) . '</a><br/>';
}