Javascript CropBox唯一编号作为订单参考PHP

Javascript CropBox唯一编号作为订单参考PHP,javascript,php,jquery,Javascript,Php,Jquery,我正在使用CropBox上传一张裁剪过的图像,以便打印。 我需要一个由.txt文件生成的唯一编号,但我无法使用相同的订单号保存该文件。无论我怎么做,订单号都会不断增加,只是在订单号不存在的情况下才增加订单号。这个脚本使用了我不习惯的javascript,我似乎无法让它做我需要的事情 <?php session_start(); $imgW = 200; $imgH = 300; if(isset($_SESSION['OrNo'])){ $counter

我正在使用CropBox上传一张裁剪过的图像,以便打印。 我需要一个由.txt文件生成的唯一编号,但我无法使用相同的订单号保存该文件。无论我怎么做,订单号都会不断增加,只是在订单号不存在的情况下才增加订单号。这个脚本使用了我不习惯的javascript,我似乎无法让它做我需要的事情

<?php

    session_start();    


$imgW = 200;
$imgH = 300;


if(isset($_SESSION['OrNo'])){
    $counter = $_SESSION['OrNo'];

    echo $counter;
}else{

$counter = file_get_contents(strtolower("orderno.txt")) + 1;
file_put_contents("orderno.txt", $counter);
$_SESSION['OrNo'] = $counter;

}
 $filename =  'custupload/'.$counter. '.png';



if(isset($_REQUEST['doAction']) && $_REQUEST['doAction']== 'submit'){
    
    if(isset($_FILES['image'])){

        $output_file = $filename;
        //$Globals ['outputfile'];
        move_uploaded_file($_FILES["image"]["tmp_name"], $output_file);
        $ret['status'] = true;
        $ret['msg'] = "Your file has been added to the product! $output_file";
        echo json_encode($ret);
        
        exit;
        
               
    }
}
?>

<center>
<?php 
  $Productid = $_REQUEST["Productid"]; 
  $ImgTemplate = $_REQUEST["ImgTemplate"]; 
  $pic = $_REQUEST["ImgTemplate"]; 
?>


<link type="text/css" media="screen" rel="stylesheet" href="jquery.cropbox.css">
<form id="formbanner" action="" method="post" enctype="multipart/form-data">
    <input type="file" name="banner" class="upImage" >
    <input type="hidden" name="photo" value="" id="fileinp">
    <br>
    <br>
    <img class="cropimage" id="myImg" src="#" alt="" />
    <br>
    <br>
    <div class="form-group" >
        <input type="submit" class="btn btn btn-primary" name="submit" id="save_banner" value="Submit">
                        <img class="loadingimage" style="display: none;" src="loading.gif" width="64" height="20"/>
    </div>
    <br>
    
</form>
</div>

<?php echo "$Productid";?>&ImgTemplate=<?php echo "$ImgTemplate";?>&filename=<?php echo "$filename";?>

 <script src="jquery.js"></script>
   <script type="text/javascript" src="jquery.mousewheel.js"></script>
  <script type="text/javascript" src="jquery.cropbox.js"></script>
  
  <script type="text/javascript">
var myImage = '';   
$(function () {
   
    $(".upImage").change(function () {
       
        var ext = $(this).val().split('.').pop().toLowerCase();
        if($.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
           alert('Please select a valid image [ jpg | jpeg | gif | png ]');
            $(this).val('');
            myImage= '';
            clearImage();
       
        }else{   
       
            if (this.files && this.files[0]) {
                var reader = new FileReader();
                    reader.onload = imageIsLoaded;
                reader.readAsDataURL(this.files[0]);
            }
        }
    });
    
    function imageIsLoaded(e) {
        $('.cropCont').show();
        $('#myImg').attr('src', e.target.result);
        $('#myImg').show();
        $( '.cropimage' ).cropbox( {width: <?php echo $imgW; ?>, height: <?php echo $imgH; ?>, showControls: 'auto' } ).on('cropbox', function( event, results, img ) {
            myImage = img.getDataURL();
        });
    }
    
    function clearImage(){
        $('.cropCont').hide();
        $("#banner").val('');
        $("#myImg").removeAttr('src');
        $('#myImg').hide();
    }
    
    $('#formbanner').submit(function(e){
        
        e.preventDefault();
        $('#save_banner').attr('disabled',true);
        $('.loadingimage').show();
        var form = $('#formbanner')[0]; 
        var fd = new FormData(form);
        if(myImage != ''){
            var block = myImage.split(";");
            var contentType = block[0].split(":")[1];// In this case "image/gif"
            var realData = block[1].split(",")[1];// In this case "R0lGODlhPQBEAPeoAJosM...."
            var blob = b64toBlob(realData, contentType);
            fd.append("image", blob);
        }
        $.ajax({
          url: '?doAction=submit',
          data: fd,
          processData: false,
          contentType: false,
          type: 'POST',
          dataType : 'json',
          success: function(data){
             alert(data.msg);
             if(data.status){
                window.location='test.php?Productid=<?php echo "$Productid";?>&ImgTemplate=<?php echo "$ImgTemplate";?>&ONo=<?php echo "$counter";?>';
            }else{
                $('#save_banner').attr('disabled',false);
                $('.loadingimage').hide(3000);
            }


          }
        });

    });
});






function b64toBlob(b64Data, contentType, sliceSize) {
        contentType = contentType || '';
        sliceSize = sliceSize || 512;

        var byteCharacters = atob(b64Data);
        var byteArrays = [];

        for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
            var slice = byteCharacters.slice(offset, offset + sliceSize);

            var byteNumbers = new Array(slice.length);
            for (var i = 0; i < slice.length; i++) {
                byteNumbers[i] = slice.charCodeAt(i);
            }

            var byteArray = new Uint8Array(byteNumbers);

            byteArrays.push(byteArray);
        }

      var blob = new Blob(byteArrays, {type: contentType});
      return blob;
}


    </script>
             ```

If anyone could point me in the right direction I would be grateful. 
I have tried using session variables as well as creating the variable within the page.






&ImgTemplate=&filename= var myImage=''; $(函数(){ $(“.upImage”).change(函数(){ var ext=$(this.val().split('.').pop().toLowerCase(); if($.inArray(ext、['gif'、'png'、'jpg'、'jpeg'])==-1){ 警报('请选择有效图像[jpg | jpeg | gif | png]'); $(this.val(“”); myImage=''; clearImage(); }否则{ if(this.files&&this.files[0]){ var reader=new FileReader(); reader.onload=imagesisload; reader.readAsDataURL(this.files[0]); } } }); 函数imageIsLoaded(e){ $('.cropCont').show(); $('myImg').attr('src',e.target.result); $('#myImg').show(); $('.cropimage').cropbox({width:,height:,showControls:'auto'}).on('cropbox',函数(事件,结果,img){ myImage=img.getDataURL(); }); } 函数clearImage(){ $('.cropCont').hide(); $(“#banner”).val(“”); $(“#myImg”).removeAttr('src'); $('#myImg').hide(); } $('#formbanner')。提交(函数(e){ e、 预防默认值(); $('save#u banner').attr('disabled',true); $('.loadingimage').show(); var form=$('#formbanner')[0]; var fd=新表格数据(表格); 如果(myImage!=''){ var block=myImage.split(“;”); var contentType=block[0]。拆分(“:”[1];//在本例中为“image/gif” var realData=block[1]。拆分(“,”[1];//在本例中为“R0lGODlhPQBEAPeoAJosM…” var blob=b64toBlob(realData,contentType); fd.append(“图像”,blob); } $.ajax({ url:“?doAction=submit”, 数据:fd, processData:false, contentType:false, 键入:“POST”, 数据类型:“json”, 成功:功能(数据){ 警报(data.msg); if(数据状态){ window.location='test.php?Productid=&ImgTemplate=&ONo='; }否则{ $('save#u banner').attr('disabled',false); $('.loadingimage').hide(3000); } } }); }); }); 函数b64toBlob(b64Data、contentType、sliceSize){ contentType=contentType | |“”; 切片大小=切片大小| | 512; var byteCharacters=atob(b64Data); var ByteArray=[]; 对于(变量偏移量=0;偏移量
在此之前的某个地方是否有
会话\u start
(在包含此会话或其他内容的文件中)?如果不是,那么
isset($\u SESSION['OrNo'])
将永远不会是真的…(这听起来不是一个很好的方法,因为多个用户同时使用它,您可能会在某个时候遇到问题…)是的,有一个用于数据库连接等的include文件。我删除了该链接以尝试简化code@CBroe乐意接受关于更好方法的任何建议,始终寻求尝试和改进:首先,如果您已经在项目中使用数据库,那么您也应该使用该数据库来存储此类计数器,而不是纯文本文件。数据库至少具有处理已内置的并发访问所需的所有机制,而对于文本文件,这总是有点冒险。