отправить в динамически созданный файл - PullRequest
0 голосов
/ 24 февраля 2012

Наш сайт создает файлы «на лету», которые представляют пользовательские данные миру в Интернете.

В каждом таком файле '_present.php' есть форма, которую нужно опубликовать для себя.- Единственная проблема в том, что файл создается динамически на основе загруженных пользовательских данных, а имя файла также несколько произвольно.

Вот процесс

 1) a 'standard' file called _present.php has a common form "TheForm" in it
 2) this file,  _present.php, is copied to Yf9iZ17a.php (for example) when 
      the user uploads data -- and from that point, Yf9iZ17a.php presents 
      that user's just-uploaded data
 3) and "TheForm" is inside this Yf9iZ17a.php, which again is just a copy of 
    _present.php, but modified to handle the user's just-uploaded data

Довольно просто.В _present.php есть «TheForm»;пользователь загружает свои данные;мы копируем _present.php в имя файла для данных этого пользователя.

ПРОБЛЕМА - нам нужно, чтобы TheForm отправляла сообщение по своему собственному имени файла, которое создается динамически.

Другими словами, этого будет недостаточно:

 <form name="TheForm" method="post" action="_present.php">

Однако это БУДЕТ работать:

  <form name="TheForm" method="post" action="Yf9iZ17a.php">

Но мы не можем жестко закодировать html формы с помощью«Yf9iZ17a.php» потому что - это имя файла создается динамически, на лету, во время выполнения.

Это одна ошибка, которую нам удалось выполнить:

     <form name="TheForm" method="post" action="<?php echo __FILE__ ;  ?>">  

A 'Просмотр исходной страницы 'достаточно убедительно доказывает, что php echo FILE"правильно отображает полный путь (не относительный путь, полный путь) к Yf9iZ17a.php.

Хорошо, это не сработает,Предоставляя браузеру полный путь к файлу - файлу на сервере - хорошо, почему вы ХОТИТЕ делать это в первую очередь, если вы не цепляетесь за соломинку.Так что это был сбой.

Конечно, это происходит, динамически создаваемые имена файлов, чьи внутренние формы должны публиковаться в этих именах файлов - каков наилучший способ решения этой проблемы?

1 Ответ

1 голос
/ 24 февраля 2012

Вы можете использовать это вместо этого, возможно?

<?php echo basename(__FILE__); ?>
...