PHP类-发送变量以插入查询
我需要一些PHP类的帮助。我对它的工作原理知之甚少,我正试图了解更多。同时,我遇到了一个问题,在变量在类中运行完这些函数之后,我需要获取变量PHP类-发送变量以插入查询,php,jquery,Php,Jquery,我需要一些PHP类的帮助。我对它的工作原理知之甚少,我正试图了解更多。同时,我遇到了一个问题,在变量在类中运行完这些函数之后,我需要获取变量 protected function upcount_name_callback($matches) { $index = isset($matches[1]) ? intval($matches[1]) + 1 : 1; $ext = isset($matches[2]) ? $matches[2] : '';
protected function upcount_name_callback($matches) {
$index = isset($matches[1]) ? intval($matches[1]) + 1 : 1;
$ext = isset($matches[2]) ? $matches[2] : '';
return ' ('.$index.')'.$ext;
}
protected function upcount_name($name) {
return preg_replace_callback(
'/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/',
array($this, 'upcount_name_callback'),
$name,
1
);
}
我需要在下面的JS语句中检索这个变量,并发送到我的INSERT php文件
$('#albumBack.fileupload').bind('fileuploaddone',function(e,data) {
//Loop through each page and return object and write to DB
$.each(data.files, function (index, file) {
var filename = file.name;
$.ajax({
type: "POST",
url: "../albumUploader/queries/albumPages.php",
data: {file: filename}
});
});
});
当前获取的文件名是原始名称,而不是附加名称。
谢谢你在这方面的帮助
albumPages.php
//Variables for gallerimage table
$originalName = $_POST['file'];
$clientRef = $_SESSION['clientRef'];
$galleryID = $_SESSION['newGalleryId'];
$galleryLayout = $_SESSION['layoutID'];
$imageID = rand();
//Find the sort# for the gallery
$qSortOrder = mysql_query("SELECT MAX(sort) AS sortOrder
,id
,clientRef
,galleryId
FROM galleryimage
WHERE galleryId='{$galleryID}'
AND clientRef= '{$clientRef}'
");
$fsortOrder = mysql_fetch_array($qSortOrder);
//Latest revision
$orderNumber = $fsortOrder['sortOrder'];
$order = $orderNumber + 1;
$query = "INSERT INTO galleryimage
(
galleryId
,image
,OrgImageName
,clientRef
,sort
,layout
) VALUES (
'{$galleryID}'
,'{$imageID}'
,'{$originalName}'
,'{$clientRef}'
,'{$order}'
,'{$galleryLayout}'
)";
$return = mysql_query($query);
$originalName是我需要定义为img.jpg、$img(1).jpg等的$variable。我只是发布文件,它最终是从输入中选择的原始文件
这是选择文件的表单
选择返回
如果不知道albumBack.php的内容,就很难准确确定您将看到的行为。但是让我们假设albumBack.php在某个时候调用了upcount\u name($name)
然后发生的就是所谓的。此函数专门接受一个字符串和一个正则表达式,以及一个附加的“回调”函数。它在字符串上运行regex并获取一组匹配项,然后将这些匹配项传递给回调函数。回调允许您以灵活的方式“注入”行为:在本例中,回调是定义每个正则表达式匹配的替换字符串的一种方式
这里调用的是upcount\u name\u回调
函数。要理解它是什么,您必须理解正则表达式。这有点复杂,但本质上它是在寻找一些数字([\d]+
部分),一个
后跟一行末尾upcount\u name\u callback
将其作为一个数字(递增)和一个扩展名(如果存在则返回原样),如果不存在则返回空字符串
结果是,这似乎将“blah.jpg”更改为“blah1.jpg”,将“blah1.jpg”更改为“blah2.jpg”。但是,如果您要返回的名称是相同的,那么它实际上并没有被执行。您需要发布albumBack.php中的调用行代码来确认这一点。这是您正在使用的全部脚本吗?js还是php类?php类还有更多内容。至于js,是的,这是所有的脚本,我将编辑完整的作为旁白;您应该真正使用PHPPDO:您当前容易受到SQL注入攻击。您是对的!计划在我解决上传过程后尽快解决这个问题。谢谢编辑了我的代码,谢谢@Nathaniel Ford-我现在将仔细查看您的答案。此外,正在写入服务器的文件将被写入blah(1).jpg,blah(2).jpg等…我只需要能够检索该名称并将其发送到albumPages.phpYes;我忽略了正则表达式中的括号,因为重点是增加数字。当您说“检索该名称并将其发送到albumPages.php”时,不清楚您的意思。albumPages.php中的代码片段与您发布的其他代码不交互?编辑问题以显示表单。albumPages.php中的$_POST['file']为我提供了原始文件名,而不是附加的文件名。我需要弄清楚如何获得$originalName='[附加文件名]'您知道更改名称的两个函数都是在php中,对吗?你必须从albumPages.php调用它们?在您获得
$originalName
后,立即尝试$appendedName=upcount($originalName)编码>并回显。
<form class="fileupload" id="albumBack" action="../js/jQuery-file-upload/server/php/" method="POST" enctype="multipart/form-data" >
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
<div class="row fileupload-buttonbar">
<span class="btn btn-success fileinput-button">
<span>Choose Back</span>
<input type="file" name="files[]">
</span>
</div>