1

我是一个相当新手的网站管理员,正在努力为我的用户设置分类广告。(我基本上是在重建一个写得不好的分类广告)

我买了一个便宜的分类广告程序,所以我有一些东西可以学习 PHP,我已经走了很长一段路,但我距离理解如何将所有内容与现有的图像上传功能联系在一起还有很长的路要走,如果任何人都不会介意帮助我,我将不胜感激。

请允许我解释一下;

在这个分类广告的早期,访问者必须添加他们的列表(这是一个婊子)然后访问者必须去寻找他们可以上传他们的图像的地方。不用说,这不是削减它。

快进到现在;现在我在一个页面上有一个带有多个文本输入(即文本、选择、文本区域和一个复选框)的表单,并且在这个表单上我有 4 个图像上传按钮,如下所示。

<form id="generalform" class="container" method="POST"  action="addlistingprocess.php" autocomplete="on" enctype="multipart/form-data" >

        <div class='field'>
        <label for='TypeID'>I'm Selling A:</label>
        <select name='TypeID'>
        <option value='42'>Motorcycle</option>
        <option value='43'>New or Used Part</option>
        </select>
        </div>

        <div class="field">
        <label for="Year">* Year:</label>
        <input type="number" class="input" name="Year" maxlength="5" min="1963" max="2013" value="2013">
        </div>

        <div class="field">
        <label for="fatherID">* Make:</label>
        <select name='fatherID'>
        <option>-- Select Manufacturer --</option>
        <option value='10'>Honda</option>
        <option value='35'>Husqvarna</option>
        <option value='36'>Kawasaki</option>
        <option value='37'>KTM</option>
        <option value='38'>Suzuki</option>
        <option value='39'>Yamaha</option>
        <option value='40'>Other</option>
        <option value='46'>It's Vintage or Evo</option>
        </select>
        </div>

        <div class="field">
        <label for="Model">* Model:</label>
        <input type="text" class="input" name="Model" maxlength="20" value="<?php if(isset($_POST['Model'])) echo $_POST['Model']; ?>" placeholder="(i.e. CRF450F, KX 450F...)">
        </div>

        <div class="field">
        <label for="Description">* Details About It:</label><br>
        <textarea name="Description" rows="10" cols="60"><?php if(isset($_POST['Description'])) echo $_POST['Description']; ?></textarea>
        </div>

        <div class="field">
        <label for="Vin">VIN:</label>
        <input type="text" class="input" name="VIN" maxlength="30" value="<?php if(isset($_POST['VIN'])) echo $_POST['VIN']; ?>" placeholder="Optional">
        </div>

        <div class="field">
        <label for="Price">* Asking Price ($):</label>
        <input type="number" class="input" name="Price" maxlength="10" min="0" value="<?php if(isset($_POST['Price'])) echo $_POST['Price']; ?>">
        </div>
        <!--
        <h4>Upload Up To 4 Images</h4>

        <div class="field">
        <label for="Image">Image 1</label>
        <input type="file" class="fileuploadinput" name="Image1">
        <label for="Image">Image 2</label>
        <input type="file" class="fileuploadinput" name="Image2">
        <label for="Image">Image 3</label>
        <input type="file" class="fileuploadinput" name="Image3">
        <label for="Image">Image 4</label>
        <input type="file" class="fileuploadinput" name="Image4">
        </div>
                -->
        <br>
        <hr style="width:60%">
        <br>

        <h3>Where It's Located:</h3>
        <div class="field">
        <label for="Address">Address:</label>
        <input type="text" class="input" id="Address" name="Address" maxlength="40" placeholder="Optional" />
        <p class="hint">40 Characters Maximum</p>   
        </div>

        <div class="field">
        <label for="City">* City:</label>
        <input type="text" class="input" id="City" name="City" maxlength="20" />
        <p class="hint">20 Characters Maximum</p>   
        </div>

        <div class="field">
        <label for="State">* State / Province:</label>
        <input type="text" class="input" id="State" name="State" maxlength="20" />
        <p class="hint">20 Characters Maximum</p>   
        </div>

        <div class="field">
        <label for="ZIP">* ZIP:</label>
        <input type="text" class="input" id="ZIP" name="ZIP" maxlength="20" />
        <p class="hint">20 Characters Maximum</p>   
        </div>

        <div class="field">
        <label for="Country">* Country:</label>
        <select name="Country">
<option selected="selected" value="United States">United States</option>
<option value="Canada">Canada</option>
<option value="UK">UK</option>
<option value="Zimbabwe">Zimbabwe</option>
</select>
</div>      
        <input type="checkbox" name="Inform" value="1" checked/> Keep Me Dialed In With Site Updates & Specials<br><br>

        <input type="submit" name="submit" id="submit" class="button" value="Submit My Ad"/>
        </form>

现在这是踢球者,(很抱歉创建这么长的帖子)

这个分类已经有一个现有的图像上传功能,我想保留它,因为它可以处理调整大小和显示图像,例如可以在这里看到: http ://classifieds.your-adrenaline-fix.com/detail.php?fatherID =10&TypeID=42&ListingID=7

我想将此功能与上面的表格联系起来,但是,该程序需要很多参数,我已经尝试了数周来理解这些参数,但仍然没有。(但是我已经从代码中清除了 sh^$ 以便理解它)

我将使用所有适用的文件作为代码关闭此线程,如果有人可以帮助我,我将不胜感激,我提前感谢大家。

这是images.php。(这是访问者在创建广告后必须导航到的地方,但它也是访问者可以添加或删除与其列表相关的照片的地方,所以我需要保留这个)

<?php
    include('header.php');  

    if(!$superUser){
        if(!$login){            
            echo "<h2>Please Login to Manage Photos</h2>";
            include('z-login-form.php');
            include('no-ad-footer.php');
            die();
            }
        }

    if($_POST['POrder'] != "") {    
        if (($_FILES['file']['type'] != 'image/jpeg') && ($_FILES['file']['type'] != 'image/jpg') && ($_FILES['file']['type'] != 'image/pjpeg')) {
            echo "<script>alert('Images Must be in jpg format and under 2 Mb');\n";
            echo sprintf("window.location='images.php?TypeID=%s&ListingID=%s'", $_POST['TypeID'], $_POST['ListingID']);
            echo "</script>";
            include('no-ad-footer.php');
            die();
        }

        chdir('admin/photos'); 
        require_once('upload.php');
        chdir('../../');

    if ($up->ValidateUpload()) { 
            $node = new sqlNode();
            $node->table = "photos";
            $node->push("int","POrder",$_POST['POrder']);
            $node->push("text","Location",$new_name);
            $node->push("int","TypeID",$_POST['TypeID']);
            $node->push("int","ListingID",$_POST['ListingID']);

            if(($result = $mysql->insert($node)) === false)
                die('Unable to push POrder, Location, TypeID and ListingID into table photos line 38');         
        } else {
            echo "<font color='red'>Unable to upload image</font>";
            }
    }   

    if(($_REQUEST['TypeID'] != "") && ($_REQUEST['ListingID'] != "")) {     
        if(!$superUser){
            echo "<a href='memberindex.php'>Return to My Listings</a>";
        }       

        $sql = sprintf("SELECT * FROM `types` WHERE ID = %s", intval($_REQUEST['TypeID']));
        $result = $mysql->exSql($sql) or die('Unable to Retrieve Type ID from table types');
        if(mysql_num_rows($result)<1){
            die('Less Than One Result Returned from table types. Line51 images.php');
        }

        if(!$superUser){
            $sql = sprintf("SELECT * FROM `tt_%s` WHERE MemberID = %s AND ID = %s", abs(intval($_REQUEST['TypeID'])), intval($_SESSION['memberID']), intval($_REQUEST['ListingID']));
            $result = $mysql->exSql($sql) or die('Unable to select data from table tt__');
            if(mysql_num_rows($result)<1){
                die("<script>window.location='logout.php';</script>");
            }
        }

        $node = new sqlNode();
        $node->table = "photos";
        $node->select = "*";
        $node->where = "WHERE TypeID = ".intval($_REQUEST['TypeID'])." AND ListingID = ".intval($_REQUEST['ListingID']);
        $node->orderby = "ORDER BY `POrder` ASC";

        if(($result = $mysql->select($node)) === false )
            die('Unable to Retrieve data from table photos');

        $num_of_photos = mysql_num_rows($result);

        echo "<h2>Upload or Delete Photos</h2>";

        $showform = true;

        if($showform) {     
            echo "<form action='images.php' enctype='multipart/form-data' method='POST'>";
            echo "<input type='hidden' name='TypeID' value='".$_REQUEST['TypeID']."'>";
            echo "<input type='hidden' name='ListingID' value='".$_REQUEST['ListingID']."'>";
            echo "<input type='hidden' name='Upload' value='true'>";
            echo "<input type='hidden' name='POrder' value='".($num_of_photos+1)."'>";

            echo "<table border=0>";
            echo "<tr>";
            echo "<td>Image 1</td><td><input type='file' name='file' accept='image/*' id='file'></td>"; 
            echo "</tr>";
            echo "<tr>";
            echo "<td>&nbsp;</td><td><input type='submit' value='Upload File(s)'></td>";
            echo "</tr>";
            echo "</table>";
            echo "</form>";
        } else {
            echo "<font color='red'>Max Number of Photos Reached</font>";
        }

        if($num_of_photos >=1) {
        //Print photo table
        echo "<br>";
        echo "<center><strong>$num_of_photos Photo(s) Associated With This Listing</strong></center>";      
        echo "<table class='subHeader' align='center'>";
        echo "<tr>";
        echo "<td>Photo</td><td>Order&nbsp;|&nbsp;</td><td>Action</td>";
        echo "</tr>";

        //For each photo
        while($photo = mysql_fetch_assoc($result)){
            echo "<tr>";
            echo "<td valign=top align=center>";
            echo "<a target='_blank' href='admin/photos/uploads/".$photo['Location']."' title='Click To View Full Size Photo'><img src='admin/photos/uploads/small_thumbs/tn_".$photo['Location']."' border=0></a>";
            echo "</td>";
            echo "<td>".$photo['POrder']."</td>";
            echo "<td>";
            echo "<a href='deleteimage.php?TypeID=".$photo['TypeID']."&ListingID=".$photo['ListingID']."&PhotoID=".$photo['ID']."'>Delete</a>";
            echo "</td>";
            echo "</tr>";
        }

        echo "</table>";
    }
    }
            echo "</td>";
            echo "</tr>";
            echo "</table>";  


    include('no-ad-footer.php');

?>

这是upload.php

<?php
require_once("UploadFile.class.php");   
$up = new UploadImage($file, 2097152, 3000, 3000,'file',"uploads", $rename_file=true);

if(true) {                                         
    $new_name = $up->CopyFile();
    $imagefolder='.';
    $thumbsfolder='.';
    echo "Creating thumbnail image...<br>";

    function createthumb($name,$filename,$new_w,$new_h) {
        $system=explode(".",$name);
        if (preg_match("/jpg|jpeg/",$system[1])){$src_img=imagecreatefromjpeg($name);}
        if (preg_match("/png/",$system[1])){$src_img=imagecreatefrompng($name);}
        $old_x=imageSX($src_img);
        $old_y=imageSY($src_img);
        if ($old_x > $old_y) {
            $thumb_w=$new_w;
            $thumb_h=$old_y*($new_h/$old_x);
        }
        if ($old_x < $old_y) {
            $thumb_w=$old_x*($new_w/$old_y);
            $thumb_h=$new_h;
        }
        if ($old_x == $old_y){
            $thumb_w=$new_w;
            $thumb_h=$new_h;
        }
        $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
        imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); 
        if (preg_match("/png/",$system[1])){
            imagepng($dst_img,$filename); 
        } else {
            imagejpeg($dst_img,$filename); 
        }

        imagedestroy($dst_img); 
        if(!imagedestroy($src_img)){
            $return = @unlink($filename);
            $return2 = @unlink($name);
            // Return FALSE if not found
            var_dump($return);
            var_dump($return2);
?>
            <script>alert("Unable to resize photos. Please check file/folder permission in admin/photos.");window.location ="index.php";</script>
<?php
        }

    }
    createthumb("uploads/" . $new_name,"uploads/thumbs/tn_" . $new_name,350,350);
    createthumb("uploads/" . $new_name,"uploads/small_thumbs/tn_" . $new_name,150,150);

    function ditchtn($arr,$thumbname){
        foreach ($arr as $item) {
            if (!preg_match("/^".$thumbname."/",$item)){$tmparr[]=$item;}
        }
        return $tmparr;
    }

    function directory($dir,$filters){
        $handle=opendir($dir);
        $files=array();
        if ($filters == "all"){while(($file = readdir($handle))!==false){$files[] = $file;}}
        if ($filters != "all"){
            $filters=explode(",",$filters);
            while (($file = readdir($handle))!==false){
                for ($f=0;$f<sizeof($filters);$f++):
                    $system=explode(".",$file);
                    if ($system[1] == $filters[$f]){$files[] = $file;}
                endfor;
            }
        }
        closedir($handle);
        return $files;
    }
}
?>

这是UpLoadFileclass.php

<?php 
function  RandomFile($pass_len=12) {                   
            $allchar = "abcdefghijklmnopqrstuvwxyz" ; 
            $str = "" ; 
            mt_srand (( double) microtime() * 1000000 ); 
              for ($i=0; $i<$pass_len; $i++) 
                  $str .= substr( $allchar, mt_rand (0,25), 1 ) ; 
                  return $str ;
                  }    

      class UploadImage {         
                   var $image; 
                   var $imagesize; 
                   var $max_file_size; 
                   var $max_file_height; 
                   var $max_file_width; 
                   var $allowed; 
                   var $rename_file; 
                   var $path; 

       function UploadImage($image, $max_file_size, $max_file_height, $max_file_width, $field_name, $path, $rename_file=true) {                     
             $this->image=$image; 
             $this->max_file_size=$max_file_size; 
             $this->max_file_height=$max_file_height; 
             $this->max_file_width=$max_file_width; 
             $this->allowed = array( ".jpg"=>"2", ".jpeg"=>"2"); 
             $this->field_name = $field_name; 
             $this->path = $path; 
             $this->rename_file = $rename_file; 
        } 

        function ValidateUpload() {            
             if ($this->max_file_size <  filesize($this->image)) {                   
                  print("<span style=\"color:red;\">ERROR: Your File: ".$_FILES[$this->field_name]["name"]." is ".filesize($this->image)." KB, The max file size allowed is ".$this->max_file_size."</span>"); 
                    return false;                  
             }              
                $this->imagesize=getimagesize($this->image); 

                if ($this->max_file_width < $this->imagesize[0]) { 
                    print("<span style=\"color:red;\">ERROR:<br />Your File: ".$_FILES[$this->field_name]["name"]." is ".$this->imagesize[0]." pixels wide, the max file width allowed is ".$this->max_file_width."</span>");                     
                    return false;                        
                } 

                 if ($this->max_file_height < $this->imagesize[1]) {                        
                     print("<span style=\"color:red;\">ERROR:<br />Your File: ".$_FILES[$this->field_name]["name"]." is ".$this->imagesize[1]." pixels high, the max file height allowed is ".$this->max_file_height."<span>");                      
                      return false;                        
                }               
                return true; 
        } 

        function PrintForm($max_file_size) {           
              global $PHP_SELF;     
              print("<form action=\"$PHP_SELF\" method=\"POST\" enctype=\"multipart/form-data\"></br>\n"); 
              print("<input type=file name=$this->field_name><br>\n");     
              print("<input type=hidden name=max_file_size value=".$max_file_size."><br>\n"); 
              print("<input type=submit name=submit><br>\n"); 
              print("</form>");                       
            }

        function CopyFile() {
            if($this->rename_file) {
            global $name, $ext;     

      switch($_FILES[$this->field_name]["type"]) { 

       case 'image/gif'; 
       $ext="gif"; 
       break; 

        case 'image/jpeg'; 
       $ext="jpg"; 
       break; 

        case 'image/pjpeg'; 
       $ext="jpg"; 
       break; 

        case 'image/png'; 
       $ext="png"; 
       break; 

        case 'application/x-shockwave-flash'; 
       $ext="swf"; 
       break; 

       case 'image/psd'; 
       $ext="psd"; 
       break; 

       case 'image/bmp'; 
       $ext="bmp"; 
       break; 
     } 

     $name=RandomFile();

         if(!copy($_FILES[$this->field_name]["tmp_name"],$this->path."/".$name.".".$ext)){
               print("<strong>There has been an error while uploading Filename:".$_FILES[$this->field_name]["name"] ."</strong>");                  
           } else {                
               print("Filename: ".$_FILES[$this->field_name]["name"] ." has been uploaded"); 
               //return  new file name
               return $name.".".$ext;                
           } 
           } else { 
           if(!file_exists($this->path."/".$_FILES[$this->field_name]["name"])) {                
                     if(!copy($_FILES[$this->field_name]["tmp_name"],$this->path."/". $_FILES[$this->field_name]["name"])) {
                        print("There has been an error uploading".$_FILES[$this->field_name]["name"]."please try again");                  
                        } else {
                            print("Filename:".$_FILES[$this->field_name]["name"]." has been uploaded");                
                   } 
                   } else { 
                   print("ERROR: A file by this name already exists"); 
                  } 
                 } 
                } 
               } 

?>

再一次,如果有人能帮助我理解这一切,我将不胜感激,我再次感谢大家(提前)

4

1 回答 1

0

您是否尝试将包含添加到您的表单所在的页面?

include_once("upload.php");
include_once("UpLoadFileclass.php");
于 2013-03-26T13:20:57.767 回答