Постараюсь объяснить это, что я могу:Использовать переменную с одной страницы php в другой через href
У меня есть страница для загрузки. Пользователь вставляет или перетаскивает/удаляет файл кода и загружает его в свою папку пользователя. Перед тем, как загрузить, они должны выбрать, какой язык он находится в выпадающем меню. Это значение выбора добавляется к файлу, и добавляется случайная строка. Таким образом, если они вставляют некоторые Java и загружают файлы, то файл будет
java-iVW827pVjEEo.txt
Эта часть отлично работает.
У меня есть другая страница, show_file.php, которая отображает содержимое этого файла в том же красиво отформатированном и синтаксическом выделениях. BUT, если работает только в том случае, если я вручную набираю имя файла. Проблема возникает на странице профиля пользователя. Файлы отображаются в профиле пользователя, как это (я меняю к заголовкам позже Просто нужно, чтобы получить эту часть для работы.):
Это делается с помощью этого Еогеасп цикла:
foreach($files as $file) {
echo '<a href="'.$link.'">'.basename($file).'</a><br/>';
}
Это, как он отображается на странице show_file.php:
подсветка синтаксиса определяется первая часть имени файла. Какой бы язык в строке, он будет предварять, что имя класса Prism.js:
$user_file = "java-NGEw5X8s0W2Q.txt"; //<-- Have to enter it manually right now
$file = fopen("users/$username/code_uploads/$user_file", "r");
switch(true) {
case strpos((string)$file, 'markup'):
$language = 'markup';
break;
case strpos((string)$file, 'java'):
$language = 'java';
break;
//18 other cases follow
И, наконец, вот код на самом деле отображения DIV. Он получает содержимое файла, а затем добавляет переменную $ языка в классе, как показано здесь:
<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>
Я честно не знаю, как связать путь к файлу на странице профиля пользователя, чтобы путь к файлу, который используется на show_file.php. Я попытался присвоить переменную $ file $ _SESSION ['file'], а затем использовать ее на странице show_file, но получаю ошибку «Undefined Index».
Я попытался редактирование цикла и тег привязки, как так
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 с
$user_file = $_GET['id'],
, но теперь я получаю
Warning: fopen(users/testUser/code_uploads/<?php echo $file->id;?>): failed to open stream: No such file or directory
Что я могу сделать, чтобы связать теги привязки с соответствующими файлами?
Спасибо.
Мне очень жаль, но это не сработало. Я получаю fopen (users/testUser/code_uploads/$ file-> id): не удалось открыть поток: нет такого файла или каталога – IRGeekSauce
Извините, что это очень рано! Попробуйте обновленный код :) –
Эй, я понимаю. Я очень поздно, когда я. К сожалению, с этим я получаю Уведомление: пытаюсь получить свойство не-объекта <путь к файлу здесь> для каждого файла. Ссылки переводят меня на страницу без сбоев, но div ничего не отображает. Я читаю о параметрах/запросах $ _GET, чтобы попытаться понять это. Впервые я когда-либо разбирался с ними. – IRGeekSauce