我正在修改一个PHP脚本,它将变量传递给下一个PHP页面,但是通过jQuery(或javascript)脚本而不是使用带有POST方法的表单。我阅读了整个jQuery(或javascript)脚本并了解作者如何将他的变量传递给下一个PHP页面,然后将我的变量添加到脚本中,就像他做的那样,但不管我做什么,该死的脚本只传递他的变量,它不会对我的变量做任何事情。我很困惑,也无法理解为什么。这是我的代码:
允许用户输入我的变量(帐户和密码)的HTML表单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>[ChipVN] PHP Image Uploader 4.0 - chiplove.9xpro</title>
<link rel="stylesheet" href="style.css" type="text/css" />
<script type="text/ecmascript" src="jquery.js?v=3.1"></script>
<script type="text/ecmascript" src="script.js?v=3.1"></script>
</head>
<body>
<div class="wrapper">
<div id="header">
<h1>Picasa Image Uploader</h1>
<div class="description">yurivn.net</div>
</div>
<div class="body">
<div class="option">
<div class="rows">
<span>Nhập thông tin tài khoản google:</span><br/>
<div style="margin-top: 10px;margin-bottom: 10px;">
<span>Tên tài khoản: </span><input type="text" id="account" value="myaccount" /><br/>
<span>Mật khẩu: </span><input type="password" id="password" value="mypassword" />
</div>
</div>
<div class="rows method uploadfile">
<div class="upload">
<span>Nhấn Browser để chọn file upload</span>
<div id="embed"></div>
</div>
</div>
<div class="rows method transload">
<span>Nhập link ảnh vào để transload</span>
<div><textarea class="links"></textarea></div>
<span class="note">(Mỗi link ảnh 1 dòng, có hỗ trợ link ảnh trong thẻ [IMG])</span>
<div><input type="button" class="button" value="Transload" /></div>
</div>
<div class="rows warning">Trình duyệt của bạn phải bật javascript để sử dụng công cụ này</div>
</div><!--/.option-->
</div>
</div><!--/#wrapper-->
<div class="wrapper">
<div class="body">
<div id="result"></div>
<div id="status"></div>
<div id="list" style="display:none">
<div class="format">
<a href="javascript:;" name="direct">Link trực tiếp</a>
<a href="javascript:;" name="bbcode">Chèn vào Forum</a>
<a href="javascript:;" name="html">Chèn vào website</a>
<a href="javascript:;" name="removesub">Remove sub</a>
</div>
<div><textarea class="links" onclick="this.select()"></textarea></div>
</div>
</div>
</div>
</body>
</html>
/**
* c-Image Uploader, use to upload image to some services (picasa, imageshack, imgur ...etc)
*
* @project Image Uploader
* @author Phan Thanh Cong <chiplove.9xpro@gmail.com>
* @since June 17, 2010
* @version 3.1
* @since March 8, 2012
* @copyright chiplove.9xpro
*/
// Default options
var options = {
watermark: 0, // 1 or 0
logo: 3, // danh sách logo trong file upload
resize: 0, // tương tự logo
server: 3, // trong file upload và index
format: 'bbcode', //danh sách các link trả về đc format theo bbcode, html và link trực tiếp
removesub: 0, // dành cho link của imageshack.us
method: 'uploadfile', // uploadfile/ transload
account: 'myaccount',
password: 'mypassword'
}
$(function(){
renderUploader();
clearlist();
$(".warning").hide();
// set default
$('input:radio[name=watermark]').removeAttr("checked").filter('[value='+getWatermark()+']').attr('checked', true);
$('input:radio[name=logo]').removeAttr("checked").filter('[value='+getLogo()+']').attr('checked', true);
$("#resize option").filter('[value='+getResize()+']').attr('selected', true);
$("#server option").filter('[value='+getServer()+']').attr('selected', true);
$(".method").hide();
$("."+getMethod()).slideDown();
// change value
$('input:radio').click(function(){
$.cookie($(this).attr('name'), $(this).val());
renderUploader();
});
$("#resize, #server, #account, #password").change(function(){
$.cookie($(this).attr('id'), $(this).val());
renderUploader();
});
$("#uploadfile").click(function(){
$(".transload").hide();
$(".uploadfile").slideDown();
$.cookie('method', 'uploadfile');
renderUploader();
clearlist();
});
$("#transload").click(function(){
$(".uploadfile").hide();
$(".transload").slideDown();
$.cookie('method', 'transload');
clearlist();
});
$(".format a").click(function() {
var name = $(this).attr('name');
if(name != 'removesub') {
$.cookie('format', name);
}
else {
var removesub = getRemovesub() == 0 ? 1 : 0;
$.cookie('removesub', removesub);
}
showList();
});
// transload click
$(".transload .button").click(function(){
transload();
});
});
function getRemovesub() {
return $.cookie('removesub') == null ? options.removesub : $.cookie('removesub');
}
function getFormat() {
return $.cookie('format') == null ? options.format : $.cookie('format');
}
function getMethod() {
return $.cookie('method') == null ? options.method : $.cookie('method');
}
function getWatermark() {
return $.cookie('watermark') == null ? options.watermark : $.cookie('watermark');
}
function getLogo() {
return $.cookie('logo') == null ? options.logo : $.cookie('logo');
}
function getResize() {
return $.cookie('resize') == null ? options.resize : $.cookie('resize');
}
function getServer() {
return $.cookie('server') == null ? options.server : $.cookie('server');
}
function getAccount() {
return $.cookie('account') == null ? options.account : $.cookie('account');
}
function getPassword() {
return $.cookie('password') == null ? options.password : $.cookie('password');
}
function renderUploader() {
var html = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="75" height="25"> \
<param name="movie" value="upload.swf" /> \
<param name="wmode" value="transparent" /> \
<param name="allowFullScreen" value="true" /> \
<param name="allowScriptAccess" value="always" /> \
<param name="watermark" value="'+getWatermark()+'" /> \
<param name="logo" value="'+getLogo()+'" /> \
<param name="resize" value="'+getResize()+'" /> \
<param name="server" value="'+getServer()+'" /> \
<param name="account" value="'+getAccount()+'" /> \
<param name="password" value="'+getPassword()+'" /> \
<embed name="flashplayer" src="upload.swf" flashvars="'
+'watermark='+getWatermark()
+'&logo='+getLogo()
+'&resize='+getResize()
+'&server='+getServer()
+'&account='+getAccount()
+'&password='+getPassword()
+'" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="75" height="25" wmode="transparent"></embed> \
</object>';
$("#embed").html(html);
}
var iloadPosition = 0;
var iload = false;
var loadInterval = 0;
function loading(status) {
iloadPosition = 0;
if(status == false) {
iload = false;
if(document.getElementById('process') != null) {
$('#process').html('');
$('#status').html('');
}
clearInterval(loadInterval);
loadInterval = 0;
}
else {
iload = true;
$('#status').html('Loading <span id="process"></span>');
if( loadInterval <= 0) {
loadInterval = setInterval('iloading();',160);
}
}
}
function iloading() {
if (iload) {
// var icon = new Array('|', '/', '-', '\\');
var icon = new Array('.', '..', '...', '....');
//var icon = new Array('|', '||', '|||', '||||', '|||||', '||||||');
iloadPosition = iloadPosition >= icon.length ? 0 : iloadPosition;
$('#process').html(icon[iloadPosition]);
iloadPosition++;
}
}
function responseStatus(msg) {
if (msg == 'Done!') {
loading(false);
showList();
}
$('#status').html(msg);
}
// hàm hiển thị ảnh
function displaypic(name, url) {
$("#result").append('<div><span class="name">'+name+'</span><input type="text" class="link" onclick="this.select()" value="'+url+'" /></div>');
showList();
}
// xóa list link trả về
function clearlist() {
$('#status').html('');
$("#result").html('');
$("#list .links").val('');
}
function showList() {
$("#list").slideDown();
var code;
if (getFormat() == 'html') {
code = new Array('<img src="', '" />');
}
else if (getFormat() == 'bbcode') {
code = new Array('[IMG]', '[/IMG]');
}
else {
code = new Array('', '');
}
var links = "";
$("#result .link").each(function() {
var url = $(this).val();
if(getRemovesub()) {
url = removesub(url);
$(this).val(url);
}
if(url.substring(0, 4) != 'http') {
return;
}
links += code[0] + url + code[1] +"\n";
});
$("#list .links").slideDown().val(links);
}
function removesub(url) {
re = /(https?:\/\/)([^\.]*?)(\.imageshack\.us\/)(img[^\.\/]*)(.*?\.)(jpg|png|bmp|gif|jpeg)/ig;
if(m = re.exec(url)) {
if (getRemovesub() == 0) {
url = url.replace(m[1] + m[2], m[1] + 'a');
} else {
url = url.replace(m[1] + m[2], m[1] + m[4]);
}
}
return url;
}
/****** TRANSLOAD ****/
function getInputLinks() {
var text = $(".transload .links").val();
var re = /.*?(\[IMG\])?(https?[^\\\n[]+)(\[\/IMG\])?/ig;
var m;
var links = new Array();
var i = 0;
while (m = re.exec(text)) {
links[i++] = $.trim(m[2]);
}
return links;
}
function doTransload(id, links) {
var stt = id + 1;
var url = links[id];
$.ajax({
data: "id=453&action=test",
url: 'upload.php',
cache: false,
type: "POST",
success: function(msg){
displaypic(stt, msg);
if(stt < links.length) {
doTransload(stt, links);
}
else {
responseStatus('Done!');
}
},
error: function(){
alert("Có lỗi, vui lòng thử lại");
}
});
}
function transload() {
clearlist();
var links = getInputLinks();
if(links.length == 0) {
alert('Bạn cần phải nhập đường dẫn ảnh');
return;
}
loading();
doTransload(0, links);
}
下一个PHP页面:我在PHP脚本末尾有echo 'image=' . var_export($_REQUEST, true);
来打印选择要上传的内容后得到的变量,我的变量不在这里。
<?php
error_reporting(E_ALL & ~E_NOTICE);
date_default_timezone_set('Asia/Ho_Chi_Minh');
session_start();
define('DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
include DIR . 'library/ChipVN/Loader.php';
\ChipVN\Loader::registerAutoLoad();
// fiter
$params = array('server', 'resize', 'watermark', 'logo', 'account', 'password');
foreach($params as $param)
{
$name = $param . 'id';
$data = intval($_REQUEST[$param]);
if($data < 0)
{
$data = 0;
}
${$name} = $data;
}
##################### START CONFIG #######################
$sitename = 'website';
/**
* Tạo và CHMOD folder này sang 777
*/
$tempdir = DIR . 'temp/';
// danh sách logo
$logolist = array(
1 => 'logo1.png',
2 => 'logo2.png',
3 => 'logo3.png',
);
// Nếu logo yêu cầu ko có trong danh sách thì dùng logo1.png
$default['logo'] = 'logo1.png';
// vị trí logo (right bottom, right center, right top, left top, .v.v.)
$logoPosition = 'rb';
// kích cỡ resize
$resizelist = array(
0 => 0, // ko resize
1 => 100,
2 => 150,
3 => 320,
4 => 640,
5 => 800,
6 => 1024
);
//$default['resize'] = 800;
$default['resize'] = 0;
##################### END CONFIG #######################
$watermark = $watermarkid > 0 ? TRUE : FALSE;
$logoPath = DIR . 'logo/' . (in_array($logoid, array_keys($logolist)) ? $logolist[$logoid] : $default['logo']);
$resizeWidth = in_array($resizeid, array_keys($resizelist)) ? $resizelist[$resizeid] : $default['resize'];
if($_FILES['Filedata'] AND !$_FILES['Filedata']['error'])
{
move_uploaded_file($_FILES['Filedata']['tmp_name'], $imagePath = $tempdir . $sitename .date('dmY'). '.jpg');
$isUpload = TRUE;
}
else if($url = trim($_POST['url']))
{
$isUpload = FALSE;
\ChipVN\Image::leech($url, $imagePath = $tempdir . $sitename . date('dmY').'.jpg');
}
// resize
if($resizeWidth > 0)
{
\ChipVN\Image::resize($imagePath, $resizeWidth, 0);
}
// watermark
if($watermark)
{
\ChipVN\Image::watermark($imagePath, $logoPath, $logoPosition);
}
switch($serverid)
{
case 1:
$service = 'Imageshack';
break;
case 2:
$service = 'Imgur';
break;
case 3:
$service = 'Picasa';
break;
case 4:
$service = 'Flickr';
break;
default:
$service = 'Picasa';
}
$uploader = \ChipVN\Image_Uploader::factory($service);
switch($service)
{
case 'Imageshack':
/**
* Không bắt buộc đăng nhập
* Có thể đăng nhập hoặc ko. Tuy nhiên nên tham khảo quy định của ImageShack ở đây http://imageshack.us/content.php?page=rules
* Xóa comment "#" ở bên dưới nếu muốn up vào account của bạn
**/
# $uploader->login('your user', 'your pass');
break;
case 'Imgur':
/**
* Không bắt buộc đăng nhập
* Có thể đăng nhập hoặc ko, nhưng ảnh mà ko up vào account thì có thể bị xóa sau 1 thời gian.
* Account thường chỉ up đc 225 ảnh. Xem thông tin upgrade lên PRO tại đây https://imgur.com/register/upgrade
* Xóa comment "#" ở bên dưới nếu muốn up vào account của bạn
**/
# $uploader->login('your user', 'your pass');
break;
case 'Picasa':
/**
* Picasa bắt buộc phải đăng nhập
* AlbumID lấy ở link RSS trong album (ko biết thì tự tìm hiểu ở google)
* Phần albumID có thể set 1 array('id1', 'id2'); Code sẽ tự động lấy ngẫu nhiên 1 album trong số đó để upload vào.
* Nếu ko setAlbumID thì code sẽ up vào album default của picasa
* Giới hạn upload ca Picasa xem tại đây: https://support.google.com/picasa/answer/43879?hl=vi
* Nếu ko dùng AlbumID thì thêm dấu # ở trước
*/
$uploader->login($accountid, $passwordid);
#$uploader->setAlbumID('album id của bạn');
break;
}
if(!$imagePath)
{
die('Mising an image');
}
$url = $uploader->upload($imagePath);
if(file_exists($imagePath))
{
unlink($imagePath);
}
if($isUpload)
{
echo 'image=' . var_export($_REQUEST, true);
}
else
{
echo $url;
}
注意:
感谢您的帮助!
答案 0 :(得分:1)
我猜您想将HTML表单中的帐户用户名和密码输入传递给PHP脚本。这是现在的AJAXing数据的JavaScript:
$.ajax({
data: "id=453&action=test",
url: 'upload.php',
cache: false,
type: "POST",
“data”属性实际上是发布到upload.php文件上的。即使您将AJAX类型标识为POST,您当前的数据传输也会以GET格式显示。
您需要类似以下内容才能遵守POST传输格式:
$.ajax({
data: {username: my_username, password: my_password},
url: 'upload.php',
cache: false,
type: "POST",
我查看了其余的JavaScript,看起来现在还没有抓住用户输入。因此,在您使用上面编辑过的AJAX代码之前,您需要在上述内容之前将以下内容放入JavaScript中。
var my_username = document.getElementById("account").value;
var my_password = document.getElementById("password").value;
上面告诉JavaScript从您的用户名和密码输入中获取值,并将它们设置为“my_username”和“my_password”变量(最终将传递给AJAX调用,然后发送到您的PHP页面)。 / p>
您似乎也缺少PHP文件中用于获取POST值的代码。您可以使用以下格式抓取它们:
$username = $_POST["username"];
$password = $_POST["password"];
然后您可以根据需要使用变量。
看看这个tutorial。它为您提供有关您要完成的任务的分步说明