需要帮助向PHP脚本的单行添加echo

需要帮助向PHP脚本的单行添加echo,php,variables,echo,Php,Variables,Echo,谈到PHP,我几乎是一个新手,我有一个问题需要解决,因为明天网站就要上线了 基本上,我一直在使用一个名为“uploadify”的javascript上传脚本,它有一个上传文件夹选项,该文件夹以以下形式添加到脚本中: 'folder' : '/songs/<?php echo $_SESSION["name"];?>', $targetFolder = '/songs/'; <? session_name("MyLogin"); session_start(); ses

谈到PHP,我几乎是一个新手,我有一个问题需要解决,因为明天网站就要上线了

基本上,我一直在使用一个名为“uploadify”的javascript上传脚本,它有一个上传文件夹选项,该文件夹以以下形式添加到脚本中:

'folder'    : '/songs/<?php echo $_SESSION["name"];?>',
$targetFolder = '/songs/';
<?
session_name("MyLogin");
session_start();
session_destroy();

if($_GET['login'] == "failed") {
print $_GET['cause'];
}
?>
我需要找到一种将username变量添加到此行的方法。我曾尝试过用各种方式使用echo,并在谷歌上搜索过,但它让我感到困惑,尽管它可能很简单

如果有人能让我知道我是如何建造这条线路的,我将非常感激。正如他们所说,时间是至关重要的

谢谢

尼克

我想我应该包括所有涉及的php,以防这说明为什么uploadify.php无法使用会话变量

首先,index.php页面顶部有以下内容:

<?
require("log.php");
?>

只要用户名存储在会话变量中,请确保$targetFolder所在的脚本已启动会话(session_start()),并将该行更改为以下内容:

$targetFolder= "/songs/".$_SESSION['name'].'/';
如果$\u SESSION['name']=“foo”,您的路径现在将是/songs/foo/

$targetFolder = "/songs/{$_SESSION['name']}";

编辑:您的问题是。如果您曾经使用过它(这通常是不必要的),“您需要为每个请求调用session\u name()(在调用session\u start()或session\u register()之前)。”

会这么简单吗

$targetFolder = '/songs/' . $_SESSION['name'];

假设您还有会话变量要处理

$targetFolder = '/songs/' . $_SESSION['name'];
串联 只需使用连接

$targetFolder = '/songs/' . $_SESSION['name'];
如果您需要一个尾随斜杠(因为之前没有斜杠,所以我认为您不需要),请使用:

当您在PHP脚本中时,将变量添加到另一个变量的字符串非常简单-使用“.”点运算符,您可以连接或连接字符串

进一步的 我还将检查会话名称变量是否存在,如果不存在,可能会取消或设置默认值。或许

if(!isset($_SESSION['name'])) 
  do { $_SESSION['name'] = microtime(); } while(!file_exists('songs/'.$_SESSION['name']));
这将主动为该文件查找新文件夹,并且不会覆盖现有文件夹

链接

如上所述,另一种方法是使用双引号和“{}”来获得相同的结果。您会发现,使用双引号而不是单引号会稍微慢一些,因为字符串解析器会检查您是否包含了任何变量,并将它们“扩展”到它们的值。这两种语法都是可以接受的

会话问题 下面是我通常用来传输会话ID的操作

$('#file_upload').uploadify({

            'uploader':  '/prototype/site/assets/template/swf/uploadify.swf',
                'script':    '/prototype/jobs/filemanager/upload',
                'cancelImg': '/prototype/site/assets/template/images/cancel.png',
                'auto': true,
                'multi': false,
                'fileDesc': 'Portable Document Format *.pdf',
                'fileExt': '*.pdf',
                'buttonText':'Upload',
                'onComplete': load_list,
                'scriptAccess':'always',
                'checkScript':'/jobs/filemanager/check',
                'scriptData': {'session_id':'<?php echo session_id()?>'},
                'queueID':'queue'
            });
$('#文件上传')。上传({
“uploader”:“/prototype/site/assets/template/swf/uploadify.swf”,
“脚本”:“/prototype/jobs/filemanager/upload”,
“cancelImg”:“/prototype/site/assets/template/images/cancel.png”,
“自动”:正确,
“多重”:错误,
'fileDesc':'Portable Document Format*.pdf',
“fileExt”:“*.pdf”,
'buttonText':'Upload',
“onComplete”:加载列表,
'scriptAccess':'always',
“检查脚本”:“/jobs/filemanager/check”,
'scriptData':{'session_id':''''},
“队列ID”:“队列”
});
看到脚本数据了吗?我基本上输出会话id,然后将其传递到uploadify.php(我的示例没有使用uploadify.php,它包含在一个类中,但它是相同的)

您正在寻找一个:


这是故意的。原始路径的末尾有一个“/”,新路径也应该有。@Matthew:看看原始帖子中的路径,它显然是:“/songs/”--因此下一个级别应该是“/songs/user/”--我不明白你怎么能这么说。@Nicholas,在歌曲之后有一个
/
,但在
$\u SESSION['name]
之后没有。您认为在原始文件中的
$\u SESSION['name']
之后,在哪里输出一个
/songs/username
是一个完全有效的绝对路径。@Matthew:默认路径中有“/songs/”,子目录部分也应该有(无论他的“echo语句”是否反映了这一点)。路径应为/dir/subdir/以便文件随后将上载到/dir/subdir/file。我不明白这是怎么一回事?原稿中没有一篇我不想争论,但我认为(而且是正确的)应该有一篇。@Matthew:我也很好奇为什么你投票否决了我的文章,但没有一篇包含尾随的“/”——你不能说包含“/”是错误的。虽然它可能不必要,但肯定没有错。如果您要添加
/
,您应该解释原因。因为原始/songs/文件夹也有一个/;可能会有所不同,这取决于脚本如何使用它。如果你要否决一个正确的答案,你应该解释原因。哇,谢谢你这么快的回答。我已经尝试实现了其中的一些,但是没有成功,我想这意味着我仍然没有会话变量可以使用。不过,它仍然可以在主页上使用,并且以前使用过echo代码位于页面最顶部,带有
$targetFolder
变量。会话启动需要在将任何内容发送到浏览器之前进行。谢谢Jason。我添加了一个会话_start();,然后是打印会话($);但是uploadify.php页面仍然无法使用会话变量。我也在使用uploadify,我必须为您测试一下。问题是,您的浏览器是否将会话cookie提交到该页面。更多信息请参见我的答案。我不确定你是否在关注我与zdkroot的上述讨论。添加会话名称(“MyLogin”);这意味着会话变量现在可用于该页面,并且回显$targetFolder返回了正确的路径:'/songs/nick',但使用
$targetFolder='/songs时,上载仍会转到父目录'songs'
$targetFolder = '/songs/' . $_SESSION['name'];
$targetFolder = '/songs/' . $_SESSION['name'] . '/';
if(!isset($_SESSION['name'])) 
  do { $_SESSION['name'] = microtime(); } while(!file_exists('songs/'.$_SESSION['name']));
$('#file_upload').uploadify({

            'uploader':  '/prototype/site/assets/template/swf/uploadify.swf',
                'script':    '/prototype/jobs/filemanager/upload',
                'cancelImg': '/prototype/site/assets/template/images/cancel.png',
                'auto': true,
                'multi': false,
                'fileDesc': 'Portable Document Format *.pdf',
                'fileExt': '*.pdf',
                'buttonText':'Upload',
                'onComplete': load_list,
                'scriptAccess':'always',
                'checkScript':'/jobs/filemanager/check',
                'scriptData': {'session_id':'<?php echo session_id()?>'},
                'queueID':'queue'
            });
$targetFolder = '/songs/'.$_SESSION["name"].'/';