Я новичок, когда дело доходит до PHP, и у меня есть проблема, которую мне нужно решить, для веб-сайта, который должен начать работать завтра.
В основном я использовал скрипт загрузки javascript с именем 'uploadify', в котором была опция для папки загрузки, которая была добавлена в скрипт в виде:
'folder' : '/songs/<?php echo $_SESSION["name"];?>',
Я добавил php echo для возврата имени пользователя из логина PHP, чтобы оно добавлялось в путь к папке загрузки (у каждого пользователя есть собственная подпапка для загрузки в).
С новой версией скрипта uploadify опция папки была перемещена в отдельный PHP-файл, где она теперь находится в форме:
$targetFolder = '/songs/';
Мне нужно найти способ добавления переменной username к этой строке. Я пытался использовать эхо по-разному и гуглил, но это озадачило меня, как бы просто это ни было.
Если бы кто-нибудь мог дать мне знать, как я строю эту линию, я был бы очень благодарен. Время имеет значение, как говорится ...
Спасибо
Ник
Я подумал, что включу весь php, участвующий в случае, если это осветит, почему var session недоступен для uploadify.php.
Сначала это вверху страницы index.php:
<?
require("log.php");
?>
Какие триггеры log.php:
<?
session_name("MyLogin");
session_start();
if($_GET['action'] == "login") {
$conn = mysql_connect("","",""); // your MySQL connection data
$db = mysql_select_db(""); //put your database name in here
$name = $_POST['user'];
$q_user = mysql_query("SELECT * FROM USERS WHERE login='$name'");
if(mysql_num_rows($q_user) == 1) {
$query = mysql_query("SELECT * FROM USERS WHERE login='$name'");
$data = mysql_fetch_array($query);
if($_POST['pwd'] == $data['password']) {
$_SESSION["name"] = $name;
header("Location: http://monthlymixup.com/index.php"); // success page. put the URL you want
exit;
} else {
header("Location: login.php?login=failed&cause=".urlencode('Wrong Password'));
exit;
}
} else {
header("Location: login.php?login=failed&cause=".urlencode('Invalid User'));
exit;
}
}
// if the session is not registered
if(session_is_registered("name") == false) {
header("Location: login.php");
}
?>
(я удалил информацию MySql из этого)
Затем вызывается login.php, который имеет этот php вверху (за которым следует html для формы):
<?
session_name("MyLogin");
session_start();
session_destroy();
if($_GET['login'] == "failed") {
print $_GET['cause'];
}
?>
, который включает session_destroy () ;. Как мне показалось, это может быть причиной проблемы, но я удалил эту строку, и переменная сеанса не передается в uploadify.php (и почему она будет доступна для index.php, если она здесь уничтожена?). uploadify.php в настоящее время выглядит так:
<?php
session_start()
print_r($_SESSION);
$targetFolder = '/songs/' . $_SESSION['name']; // Relative to the root
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
$targetFile = rtrim($targetPath,'/') .'/'. $_FILES['Filedata']['name'];
// Validate the file type
$fileTypes = array('m4a','mp3','flac','ogg'); // File extensions
$fileParts = pathinfo($_FILES['Filedata']['name']);
if (in_array($fileParts['extension'],$fileTypes)) {
move_uploaded_file($tempFile,$targetFile);
echo '1';
} else {
echo 'Invalid file type.';
}
}
?>
uploadify.php упоминается в jquery.uploadify.js. Я думаю, что все эти строки актуальны:
uploader : 'uploadify.php',
upload_url : settings.uploader,
case 'uploader':
swfuploadify.setUploadURL(settingValue);