Отправка формы занимает слишком много времени - PHP - PullRequest
0 голосов
/ 30 октября 2019

Когда я отправляю форму публикации, ее отправка занимает до 50 секунд, и это не связано с изображением. Я проверил, что ...

Страница формы roomsforrent.php вызывается на другую страницу какпараметр what_you_have.php?roomsforrent

Не знаю, почему это происходит. Я пробовал слишком много способов, но они не работают. 50 seconds слишком много времени для отправки формы, ни один пользователь не останется так много, чтобы ждать отправленного статуса или нет ...

Вот мой код

roomsforrent.php

<?php

error_reporting(0);   
$name = $type = $price = $for = $address = $city = $outer_image = $outer_img = $rules ="";

$sb_total = $sb_available = $sb_price = $sb_advance = $sb_bill = $sb_image = $db_total = $db_available = $db_price = $db_advance =
$db_bill = $db_image = $tb_total = $tb_available = $tb_price = $tb_advance = $tb_bill = $tb_image = $mb_total = $mb_available =
$mb_price = $mb_advance = $mb_bill = $mb_image = "";

$nameError = $typeError = $priceError = $forError = $addressError = $cityError = $outerImageError = $rulesError = "";


$error = false;

if ( isset($_POST['postroom']) ) {

    // clean user inputs to prevent sql injections
    $name = trim($_POST['name']);
    $name = strip_tags($name);
    $name = htmlspecialchars($name);

    //for pg or hostel
    $type = trim($_POST['type']);
    $type = strip_tags($type);
    $type = htmlspecialchars($type);

    //for flat or home starts.........................................................................................................
    $subtype = trim($_POST['subtype']);
    $subtype = strip_tags($subtype);
    $subtype = htmlspecialchars($subtype);

    //price for flat or home
    $fh_price = trim($_POST['fh_price']);
    $fh_price = strip_tags($fh_price);
    $fh_price = htmlspecialchars($fh_price);

    //price for flat or home
    $fh_advance = trim($_POST['fh_advance']);
    $fh_advance = strip_tags($fh_advance);
    $fh_advance = htmlspecialchars($fh_advance);

    //price for flat or home
    $fh_maintenance = trim($_POST['fh_maintenance']);
    $fh_maintenance = strip_tags($fh_maintenance);
    $fh_maintenance = htmlspecialchars($fh_maintenance);
    //for flat or home ends..............................................................................................................


    //ONLY FOR PG OR HOSTEL...
    $categories = trim(implode(',',$_POST['categories']));
    $categories = strip_tags($categories);
    $categories = htmlspecialchars($categories);
    //data for pg or hostel single bed................................................................................................

    $sb_total = trim($_POST['sb_total_rooms']);
    $sb_total = strip_tags($sb_total);
    $sb_total = htmlspecialchars($sb_total);

    $sb_available = trim($_POST['sb_available_rooms']);
    $sb_available = strip_tags($sb_available);
    $sb_available = htmlspecialchars($sb_available);

    $sb_price = trim($_POST['sb_price']);
    $sb_price = strip_tags($sb_price);
    $sb_price = htmlspecialchars($sb_price);

    $sb_advance = trim($_POST['sb_advance_price']);
    $sb_advance = strip_tags($sb_advance);
    $sb_advance = htmlspecialchars($sb_advance);

    $sb_bill = trim($_POST['sb_bill']);
    $sb_bill = strip_tags($sb_bill);
    $sb_bill = htmlspecialchars($sb_bill);

    $sb_image = trim($_FILES['sb_image']['name']);
    $sb_image = strip_tags($sb_image);
    $sb_image = htmlspecialchars($sb_image);
    //end data for single bed............................................................................................................ 

    //data for pg or hostel double bed................................................................................................
    $db_total = trim($_POST['db_total_rooms']);
    $db_total = strip_tags($db_total);
    $db_total = htmlspecialchars($db_total);

    $db_available = trim($_POST['db_available_rooms']);
    $db_available = strip_tags($db_available);
    $db_available = htmlspecialchars($db_available);

    $db_price = trim($_POST['db_price']);
    $db_price = strip_tags($db_price);
    $db_price = htmlspecialchars($db_price);

    $db_advance = trim($_POST['db_advance_price']);
    $db_advance = strip_tags($db_advance);
    $db_advance = htmlspecialchars($db_advance);

    $db_bill = trim($_POST['db_bill']);
    $db_bill = strip_tags($db_bill);
    $db_bill = htmlspecialchars($db_bill);

    $db_image = trim($_FILES['db_image']['name']);
    $db_image = strip_tags($db_image);
    $db_image = htmlspecialchars($db_image);
    //end data for double bed............................................................................................................ 

    //data for pg or hostel triple bed................................................................................................
    $tb_total = trim($_POST['tb_total_rooms']);
    $tb_total = strip_tags($tb_total);
    $tb_total = htmlspecialchars($tb_total);

    $tb_available = trim($_POST['tb_available_rooms']);
    $tb_available = strip_tags($tb_available);
    $tb_available = htmlspecialchars($tb_available);

    $tb_price = trim($_POST['tb_price']);
    $tb_price = strip_tags($tb_price);
    $tb_price = htmlspecialchars($tb_price);

    $tb_advance = trim($_POST['tb_advance_price']);
    $tb_advance = strip_tags($tb_advance);
    $tb_advance = htmlspecialchars($tb_advance);

    $tb_bill = trim($_POST['tb_bill']);
    $tb_bill = strip_tags($tb_bill);
    $tb_bill = htmlspecialchars($tb_bill);

    $tb_image = trim($_FILES['tb_image']['name']);
    $tb_image = strip_tags($tb_image);
    $tb_image = htmlspecialchars($tb_image);
    //end data for triple bed............................................................................................................ 

    //data for pg or hostel multiple bed................................................................................................
    $mb_total = trim($_POST['mb_total_rooms']);
    $mb_total = strip_tags($mb_total);
    $mb_total = htmlspecialchars($mb_total);

    $mb_available = trim($_POST['mb_available_rooms']);
    $mb_available = strip_tags($mb_available);
    $mb_available = htmlspecialchars($mb_available);

    $mb_price = trim($_POST['mb_price']);
    $mb_price = strip_tags($mb_price);
    $mb_price = htmlspecialchars($mb_price);

    $mb_advance = trim($_POST['mb_advance_price']);
    $mb_advance = strip_tags($mb_advance);
    $mb_advance = htmlspecialchars($mb_advance);

    $mb_bill = trim($_POST['mb_bill']);
    $mb_bill = strip_tags($mb_bill);
    $mb_bill = htmlspecialchars($mb_bill);

    $mb_image = trim($_FILES['mb_image']['name']);
    $mb_image = strip_tags($mb_image);
    $mb_image = htmlspecialchars($mb_image);
    //end data for multiple bed............................................................................................................ 


    $for = trim($_POST['for']);
    $for = strip_tags($for);
    $for = htmlspecialchars($for);

    $address = trim($_POST['address']);
    $address = strip_tags($address);
    $address = htmlspecialchars($address);

    $city = trim($_POST['city']);
    $city = strip_tags($city);
    $city = htmlspecialchars($city);

    $facilities = trim(implode(',',$_POST['facilities']));
    $facilities = strip_tags($facilities);
    $facilities = htmlspecialchars($facilities);

    $rules = trim($_POST['rules']);
    $rules = strip_tags($rules);
    $rules = htmlspecialchars($rules);

    //outside image variable
    $outer_image = trim($_FILES['outer_image']['name']);
    $outer_image = strip_tags($outer_image);
    $outer_image = htmlspecialchars($outer_image);

    // basic name validation
    if(strlen($name) == 0){
        $nameError = "Please enter name for your post";
    }

    //basic mobile validation
    if (empty($for)) {
        $error = true;
        $forError = "Please select for whom the room is.";
    }

    if(empty($type)){
        $error= true;
        $typeError = "Please select type";            
    }

    //basic address validation
    if (empty($address)) {
       $error = true;
       $addressError = "Please enter the Address.";
    }

    //basic city validation
   if (empty($city)) {
       $error = true;
       $cityError = "Please enter the City.";
    }

    if(empty($rules) and $_POST['rules_select'] == "Yes"){
        $error = true;
        $rulesError = "please enter rules";
    }
        $imageFileType = pathinfo($outer_image,PATHINFO_EXTENSION);

        if(empty($outer_image)){
            $error = true;
            $outerImageError =  "Please select image";
        }
        else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif"){
            $error = true;
            $outer_image = "Please choose a valid image";
        }

    // if there's no error, continue to signup
    if( !$error ) {

        if($type == 'Room' or $type == 'Hostel'){

            //IF THE IMAGES OF THIS EXISTS ONLY THEN STORE ADDRESS IN THE DATABASE
            if($sb_image != ''){
                $sb_img = "registered_users/".$userRow['reg_user_username']."/pgandhostel/".$sb_image;
            }
            else{
                $sb_img = "";
            }
            if($db_image != ''){
                $db_img = "registered_users/".$userRow['reg_user_username']."/pgandhostel/".$db_image;
            }
            else{
                $db_img = "";
            }
            if($tb_image != ''){
                $tb_img = "registered_users/".$userRow['reg_user_username']."/pgandhostel/".$tb_image;
            }
            else{
                $tb_img = "";
            }
            if($mb_image != ''){
                $mb_img = "registered_users/".$userRow['reg_user_username']."/pgandhostel/".$mb_image;
            }
            else{
                $mb_img = "";
            }

            $outer_img = "registered_users/".$userRow['reg_user_username']."/pgandhostel/".$outer_image;

            $query = mysqli_query($conn,"INSERT INTO pg_and_hostel (post_id, reg_user_id, post_name, post_type, post_categories,
            sb_total_rooms, sb_available_rooms, sb_price, sb_advance, sb_electric_bill, sb_image, db_total_rooms, 
            db_available_rooms, db_price, db_advance, db_electric_bill, db_image, tb_total_rooms, tb_available_rooms,
            tb_price, tb_advance, tb_electric_bill, tb_image, large_total_rooms, large_available_rooms, large_price, 
            large_advance, large_electric_bill, large_image, post_facilities, address, city, rules, outer_image) VALUES
            ('','".$userRow['reg_user_id']."','$name','$type','$categories','$sb_total','$sb_available','$sb_price','$sb_advance',
            '$sb_bill','$sb_img','$db_total','$db_available','$db_price','$db_advance','$db_bill','$db_img','$tb_total',
            '$tb_available','$tb_price','$tb_advance','$tb_bill','$tb_img','$mb_total','$mb_available','$mb_price','$mb_advance',
            '$mb_bill','$mb_img','$facilities','$address','$city','$rules','$outer_img')
            ");

            if($sb_image != ''){
               move_uploaded_file($_FILES['sb_image']['tmp_name'], $sb_img);
            }
            if($db_image != ''){
               move_uploaded_file($_FILES['db_image']['tmp_name'], $db_img);
            }
            if($tb_image != ''){
               move_uploaded_file($_FILES['tb_image']['tmp_name'], $tb_img);
            }
            if($mb_image != ''){
               move_uploaded_file($_FILES['mb_image']['tmp_name'], $mb_img);
            }
            move_uploaded_file($_FILES['outer_image']['tmp_name'], $outer_img);

        }

        else if($type == 'Flat'){

            $outer_img = "registered_users/".$userRow['reg_user_username']."/flatandhome/".$outer_image;

            $query = mysqli_query($conn,"INSERT INTO flat_and_home (post_id, reg_user_id, post_name, post_type, post_subtype,
            post_price, post_deposit, post_maintenance, posting_for, post_address, post_city, post_facilities, post_rules, post_image)
            VALUES ('','".$userRow['reg_user_id']."','$name','$type','$subtype','$fh_price','$fh_advance','$fh_maintenance',
            '$for','$address','$city','$facilities','$rules','$outer_img')
            ");

            move_uploaded_file($_FILES['outer_image']['tmp_name'], $outer_img);
        }

    if ($query) {
        $errTyp = "success";
        $errMSG = "Successfully posted";
        unset($name);
        unset($type);
        unset($for);
        unset($city);
        unset($address);
        unset($price);
    } 
    else{
        $errTyp = "danger";
        $errMSG = "Something went wrong, try again later...";
    }
    }

}

?>


<?php

if(isset($_GET['roomsforrent'])){

?>

    <h3 align="center"><span class="oi oi-home"></span> Post a Room/Flat/Hostel</h3>                
    <br>

            <?php
            if(isset($errMSG)){
            ?>
                <div class="form-group">
                <div class="alert alert-success">
                <span class="glyphicon glyphicon-info-sign"></span> <?php echo $errMSG; ?>
                </div>
                </div>
            <?php
            }
            ?>    

<form action="<?php $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">

    <div class="form-group">
        <input type="text" class="form-control" name="name" placeholder="Enter Name" />
        <span class="text-danger"><?php echo $nameError;?></span> 
    </div>

    <div class="form-group">
        <select name="type" id="type" class="form-control" onchange="subType()">
            <option value="">Select Type...</option>
            <option value="Room">Room (Paying Guest)</option>
            <option value="Flat">Flat</option>
            <option value="House">House</option>
            <option value="Hostel">Hostel</option> 
        </select>
        <span class="text-danger"><?php echo $typeError;?></span>
    </div>

<!--.........................................................................................................................................
                Sub types script
.........................................................................................................................................-->     

    <script>

        function subType(){

            type = document.getElementById("type").value;
            type.innerHTML = "";

            if(type == "Room" || type == "Hostel"){
                document.getElementById("showSubType").innerHTML = "\
                <div class='form-group'>\
                <small><font color='grey'>Select categories (size of rooms) you have</font></small><br>\
                <input type='checkbox' name='categories[]' value='single_bed' id='singleBed' onclick='hasSingleBed()'> Single Bed Rooms<br>\
                <input type='checkbox' name='categories[]' value='double_bed' id='doubleBed' onclick='hasDoubleBed()'> Double Bed Rooms<br>\
                <input type='checkbox' name='categories[]' value='triple_bed' id='tripleBed' onclick='hasTripleBed()'> Triple Bed Rooms<br>\
                <input type='checkbox' name='categories[]' value='multiple_bed' id='multipleBed' onclick='hasMultipleBed()'> Multiple Bed Rooms<br>\
                </div>";
            }

            else if(type == "Flat" || type == "House"){

                document.getElementById('showSingle').innerHTML = '';
                document.getElementById('showDouble').innerHTML = '';
                document.getElementById('showTriple').innerHTML = '';
                document.getElementById('showMultiple').innerHTML = '';
                document.getElementById("showSubType").innerHTML = "\
                <div class='form-group'>\
                <select class='form-control' name='subtype' id='subtype' required>\
                <option value = ''>Select SubType</option>\
                <option value = '1 BHK'>1 BHK</option>\
                <option value = '2 BHK'>2 BHK</option>\
                <option value = '3 BHK'>3 BHK</option>\
                </select>\
                </div>\
                <div class='form-group'>\
                    <input class='form-control' name='fh_price' placeholder='Enter Price' required>\
                </div>\
                <div class='form-group'>\
                    <input class='form-control' name='fh_advance' placeholder='Enter Deposit' required>\
                </div>\
                <div class='form-group'>\
                    <input class='form-control' name='fh_maintenance' placeholder='Enter Maintenance cost' required>\
                </div>\
                <div class='form-group'>\
                    <input class='form-control' name='fh_water_bill' placeholder='Enter Water bill cost' required>\
                </div>\
                ";            

            }
            else{
                document.getElementById("showSubType").innerHTML = "";
                document.getElementById('showSingle').innerHTML = '';
                document.getElementById('showDouble').innerHTML = '';
                document.getElementById('showTriple').innerHTML = '';
                document.getElementById('showMultiple').innerHTML = '';
            }
        }        

    </script>

 <!--End sub type-->     

    <div id="showSubType" ></div>

    <div id="showSingle"></div>
    <div id="showDouble"></div>
    <div id="showTriple"></div>
    <div id="showMultiple"></div>

    <div class="form-group">
        <select name="for" class="form-control">
            <option value="">Posting For...</option>    
            <option value="Boys">Boys</option>
            <option value="Girls">Girls</option>
            <option value="Any">Any</option>
        </select>
        <span class="text-danger"><?php echo $forError;?></span>
    </div>

  <div class="form-group">
    <input type="text" class="form-control" name="address" placeholder="Enter Address">
    <span class="text-danger"><?php echo $addressError;?></span>
  </div>

  <div class="form-group">
    <input type="text" class="form-control" name="city" placeholder="Enter City">
     <span class="text-danger"><?php echo $cityError;?></span>
  </div>

     <span class="text-secondary">Select Facilities provided:</span>
     <div class="form-group">
         <div class="row">
             <div class="col-md-6">
                 <input type="checkbox" name="facilities[]" value="Parking" /><span class=""></span> Parking<br>
                 <input type="checkbox" name="facilities[]" value="Bed" /><span class=""></span> Bed<br>
                 <input type="checkbox" name="facilities[]" value="AC" /><span class=""></span> AC<br>
                 <input type="checkbox" name="facilities[]" value="Cooler" /><span class=""></span> Cooler<br>
                 <input type="checkbox" name="facilities[]" value="Water Filter" /><span class=""></span> Water Filter<br>
             </div>
             <div class="col-md-6">
                 <input type="checkbox" name="facilities[]" value="Cupboard" /><span class=""></span> Cupboard<br>
                 <input type="checkbox" name="facilities[]" value="Table" /><span class=""></span> Table<br>
                 <input type="checkbox" name="facilities[]" value="Chair" /><span class=""></span> Chair<br>
                 <input type="checkbox" name="facilities[]" value="Shoe Rack" /><span class=""></span> Shoe Rack<br>
             </div>
         </div>
     </div>

    <div class="form-group">
        <select class="form-control" name="rules_select" id="rules_select" onchange="rulesBox()">
            <option value=""><span class="text-secondary">Do you have any rules</span></option>
            <option value="Yes">Yes</option>
            <option value="No">No</option>
        </select>
   </div>

     <div id="rulesBox"></div> 

    <div class="form-group">
        <small><font color="grey">This image should be your outside section.</font></small>
        <input type="file" class="form-control" name="outer_image">
        <span class="text-danger"><?php echo $outerImageError;?></span>
    </div>

        <button type="submit" name="postroom" class="btn btn-success">Post</button>
       <button type="reset" name="reset" class="btn btn-danger">Reset</button>

    </form>
        <br><br>

    <script>

       function rulesBox(){
            var rulesSelect = document.getElementById("rules_select");
            var rulesBox = document.getElementById("rulesBox");
            if(rulesSelect.value == "Yes"){
                rulesBox.innerHTML = "<textarea id='rules' name='rules' class='form-control' rows=5 placeholder='Enter the rules...' required></textarea>\
                <span class='text-danger'><?php echo $rulesError;?></span>\
                <br>";
            }
           else{
               rulesBox.innerHTML = "";
           }
       }        

    </script>

<?php    
}
?>

Это происходит из-за JavaScript или как? Любой совет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...