duanfuxing2212 2014-03-12 19:47
浏览 32
已采纳

PHP空白页但每隔一页都有效

Here's the error I'm getting in my error log

[Wed Mar 12 15:54:04.809152 2014] [:error] [pid 6111] [client] PHP Parse error:  syntax error, unexpected 'else' (T_ELSE) in /home/toolplas/public_html/main/new_incoming.php on line 354, referer: https://toolplas.com/post_file.php?job_num=1000

Its weird because this exact page works on my dev server.

Code:

<?php
$page = 'New Incoming Data';
$renamed = false;
$post_array = array('folder' => null);
require_once('includes/config.php');
require_once('includes/auth.php');
if($loggedin) {
require_once('includes/header.php');

if(isset($_SESSION['new'])){
   $post_json = $_SESSION['post'];
   $new_json = $_SESSION['new'];
   unset($_SESSION['post']);
   unset($_SESSION['new']);
   $post_array = jsonDecode($post_json);
   $new_files_array = json_decode($new_json);
   if($debug){
      echo '<div style="margin-left:201px"><pre>';
         print_r($new_files_array);
      echo '</pre></div>';
      echo '<div style="margin-left:201px"><pre>';
         print_r($post_array);
      echo '</pre></div>';
   }
   $renamed = true;
   $url = stripcslashes($post_array['url']);
   require_once('/home/toolplas/public_html/Twig/Autoloader.php');

   Twig_Autoloader::register();
   $loader = new Twig_Loader_String();
   $twig = new Twig_Environment($loader);
}

?>
<script type='text/javascript'>
   $(document).ready(function(){
      $('#folder').html('');
      $('#folder').append('<option>Select</option>');
      $.ajax({
         url: 'phplib/list_folder.php',
         type: 'post',
         data: { date: $('#date').val()<?php

            /*if($renamed){
               echo ", current: '" . $post_array['folder'] . "'";
            }*/

            ?> },
         dataType: 'json',
         success: function(data){
            $.each(data, function(){
               if(this === '<?php echo $post_array['folder'] ?>'){
                  $('#folder').append('<option selected="selected" value="' + this + '">' + this + '</option>');
               } else {
                  $('#folder').append('<option value="' + this + '">' + this + '</option>');
               }
            })
         }
      });
      var parts = [ <?php echo getparts($dbc3); ?> ];
      //$('.part_input').autocomplete({ source: "phplib/json_search.php?table=indata_part_type&field=name" });
      $('#program').autocomplete({ source: "phplib/json_search.php?table=view_program&field=program" });
      $('#contact').autocomplete({ source: "phplib/json_search.php?table=indata_contacts&field=name" });
      $('#source').autocomplete({ source: "phplib/json_search.php?table=data_source&field=name" });
      $('#date').change(function(){
         $('#folder').html('');
         $('#folder').append('<option>Select</option>');
         $.ajax({
            url: 'phplib/list_folder.php',
            type: 'post',
            data: {
               date: $(this).val()
            },
            dataType: 'json',
            success: function(data){
               $.each(data, function(){
                  $('#folder').append('<option value="' + this + '">' + this + '</option>');
               })
            }
         });
      });
      $('#fetch').click(function(){
          $.ajax({
            url: "phplib/get_infiles2.php",
            type: "POST",
            data: {
                cust: $('#source').val(),
                date: $('#date').val(),
                folder: $('#folder').val(),
                intype: $('[name^=in_type]').serializeArray(),
                outtype: $('[name^=out_type]').serializeArray()
            },
            dataType: "html",
            success: function(data){
                $('#files').html(data);
            }
        });
      });
      $('.add_type').live('click',function(){
         $html = $(this).parent().html();
         $(this).parent().parent().append('<p>' + $html + '</p>');
      });
      /*$('#add_fease').live('click',function(){
         $.ajax({
            url: 'phplib/get_feases.php',
            type: 'post',
            data: {
               job_num: $('[name^=file]')
            },
            dataType: 'html',
            success: function(data){
               alert(data);
            }
         });
      });*/
      $('form').validate();
   });
</script>
<div id="content">
   <h2>New Incoming Data</h2>
   <form action='phplib/new_incoming.php' method='post'>
   <div id='indata'>
      <div id='formhead'>

         <div id='left' style='width:400px;'>
            <p>
               <label>Autogenerated Q Number</label>
               <input name='q_num' value="<?php if($renamed) echo $post_array['q_num']; else echo getnextqnum($dbc3); ?>" />
            </p>
            <p>
               <label>Data Source</label>
               <input name='source' id='source' value="<?php if($renamed) echo $post_array['source']; ?>" />
            </p>
            <p>
               <label>Date Received</label>
               <input name='date' id='date' class='datepicker' value="<?php if($renamed) echo $post_array['date']; else echo date(INPUT_DATE_FMT, strtotime('NOW')) ?>" />
            </p>
            <p>
               <label>Media</label>
               <select name='media' required>
                  <option value=''>Select</option>
                  <?php
                      $sql = "SELECT * FROM media";
                      $result = mysqli_query($dbc3, $sql);
                      while($row = mysqli_fetch_assoc($result)){
                          echo "<option";
                         if($renamed) if($post_array['media'] == $row['id']) echo " selected='selected'";
                          echo " value='" . $row['id'] . "'>" . $row['name'] . "</option>";
                      }
                  ?>
               </select>
            </p>
            <p>
               <label>Program</label>
               <input name='program' id='program' value="<?php if($renamed) echo $post_array['program']; ?>" />
            </p>
            <p>
               <label>Contact</label>

               <input name='contact' id='contact' value="<?php if($renamed) echo $post_array['contact']; ?>" />
            </p>
            <p>
               <label>Filename/PKG</label>
                    <?php if($renamed){
                  echo "<input type='text' name='folder' id='folder' readonly='readonly' value='" . $post_array['folder'] . "' />";
               } else { ?>
               <select name='folder' id='folder'>
                  <option>Select</option>
               </select>
                    <? } ?>
            </p>
         </div>
         <div id='right' style='margin-left:400px;'>
            <?php if($renamed){
               $in_type = $post_array['in_type'];
               $out_type = $post_array['out_type'];

               $intype = array();
               foreach($in_type as $key => $value){
                  $intype[] = $value['value'];
               }
               $outtype = array();
               foreach($out_type as $key => $value){
                  $outtype[] = $value['value'];
               }

               foreach($intype as $key => $value){
               ?>

               <p>
                  <label>In Type</label>
                  <select name='in_type[]'>

                     <?php
                         $sql = "SELECT * FROM datatype";
                         $result = mysqli_query($dbc3, $sql);
                         while($row = mysqli_fetch_assoc($result)){
                           echo "<option";
                             if($renamed) if($value == $row['id']) echo " selected='selected'";
                             echo " value='" . $row['id'] . "'>" . $row['name'] . "</option>";
                         }
                     ?>
                  </select>
                  <label>Out Type</label>
                  <select name='out_type[]'>

                     <?php
                         $sql = "SELECT * FROM datatype";
                         $result = mysqli_query($dbc3, $sql);
                         while($row = mysqli_fetch_assoc($result)){
                           echo "<option";
                             if($renamed){ if($outtype[$key] == $row['id']) echo " selected='selected'"; }
                             else{ if($row['name'] == 'Iges') echo " selected='selected'"; }
                             echo " value='" . $row['id'] . "'>" . $row['name'] . "</option>";
                         }
                     ?>
                  </select>
                  <a href='javascript:void()' class='add_type'>Add</a>
               </p>

               <?php }
            } else { ?><p>
               <label>In Type</label>
               <select name='in_type[]'>

                  <?php
                      $sql = "SELECT * FROM datatype";
                      $result = mysqli_query($dbc3, $sql);
                      while($row = mysqli_fetch_assoc($result)){
                        echo "<option";
                          if($renamed) if($post_array['data_type'] == $row['id']) echo " selected='selected'";
                          echo " value='" . $row['id'] . "'>" . $row['name'] . "</option>";
                      }
                  ?>
               </select>
               <label>Out Type</label>
               <select name='out_type[]'>

                  <?php
                      $sql = "SELECT * FROM datatype";
                      $result = mysqli_query($dbc3, $sql);
                      while($row = mysqli_fetch_assoc($result)){
                        echo "<option";
                          if($renamed){ if($post_array['data_type'] == $row['id']) echo " selected='selected'"; }
                          else{ if($row['name'] == 'Iges') echo " selected='selected'"; }
                          echo " value='" . $row['id'] . "'>" . $row['name'] . "</option>";
                      }
                  ?>
               </select>
               <a href='javascript:void()' class='add_type'>Add</a>
            </p>
            <?php } ?>

         </div>
         <div style='clear:both'></div>
         <input type='button' id='fetch' value='Fetch All The Things' />
      </div>
      <div id='files'>
      <?php if($renamed){ ?>
      <h2>Files</h2>
      <?php
         $indatatype = array();
   $sql = "SELECT * FROM datatype_extension";
   $result = mysqli_query($dbc3, $sql);
   while($row = mysqli_fetch_assoc($result)){
      if(in_array($row['datatype'], $intype)){
          $indatatype[] = $row['ext'];
      }
   }

   $datatype = array();
   foreach($in_type as $key => $value){
      $datatype[] = array('in' => $value['value'], 'out' => $out_type[$key]['value']);
   }
   //print_r($datatype);
   //echo $url;
   $files = array();
   if ($handle = opendir($url)) {
      $num = 0;
      while (false !== ($file = readdir($handle))) {
         if ($file != '.' && $file != '..' && $file != 'Thumbs.db' && !is_dir("$url/$file")){
            if(in_array(strtolower(pathinfo("$url/$file", PATHINFO_EXTENSION)), $indatatype)){
               foreach($intype as $key => $value){
                  if(getfileext($value) == strtolower(pathinfo("$url/$file", PATHINFO_EXTENSION))){
                     $in = $value;
                     $out = $outtype[$key];
                  }
               }
               $files[] = array('o_name' => $file, 'outtype' => $out, 'intype' => $in, 'size' => number_format(filesize("$url/$file")));
            }
         }
      }
   }

   $part_type = array();
   $sql = "SELECT * FROM indata_part_type";
   $result = mysqli_query($dbc3, $sql);
   while($row = mysqli_fetch_assoc($result)){
       $part_type[] = array('name' => $row['name'], 'id' => $row['id']);
   }

$html = <<<EOF
   <table class='fancy'>
      <thead>
         <tr>
            <th></th>
            <th>Job Number</th>
            <th>New File Name</th>
            <th>Original File Name</th>
            <th>File Size</th>
            <th>Part</th>
            <th>Part Number</th>
            <th>Description</th>
         </tr>
      </thead>
      <tbody>
         {% for item in files %}
            <tr>
               <td style='text-align:center;'><input type='checkbox' name="file[{{ loop.index }}][active]" value='YES' checked='checked' style='width:20px;'  /></td>
               <td><input style='width:100%;' name="file[{{ loop.index }}][job_num]" value='{{ item.job_num }}' /></td>
               <td><input style='width:100%;' class='unique' name="file[{{ loop.index }}][n_file]" value='{{ item.n_file }}' /></td>
               <td>{{ item.o_file }}<input type='hidden' name="file[{{ loop.index }}][o_file]" readonly='readonly' value='{{ item.o_file }}' /></td>
               <td>{{ item.size }}<input type='hidden' name="file[{{ loop.index }}][size]" readonly='readonly' value='{{ item.size }}' /></td>
               <td><select name="file[{{ loop.index }}][part]">
                  <option value=''>Select</option>
                  {% for part in parts %}
                  <option value='{{ part.id }}'{% if item.part == part.id %} selected='selected'{% endif %}>{{ part.name }}</option>
                  {% endfor %}
               </select></td>
               <td><input style='width:100%;' name="file[{{ loop.index }}][part_num]" value='{{ item.part_num }}' /></td>
               <td><input style='width:100%;' name="file[{{ loop.index }}][desc]" value='{{ item.desc }}' /></td>
               <input type='hidden' name='file[{{ loop.index }}][outext]' value='{{ item.outext }}' />
               <input type='hidden' name='file[{{ loop.index }}][inext]' value='{{ item.inext }}' />
               <input type='hidden' name='file[{{ loop.index }}][version]' value='{{ item.version }}' />
            </tr>
         {% endfor %}
      </tbody>
   </table>
   <input type='hidden' name='url' value='{{ url }}' /><input type='submit' name='rename' value='Rename' /> <input type='submit' name='add_fease' id='add_fease' value='Add Fease' /> <input type='submit' name='submit' id='submit' value='Submit' />
EOF;

   echo $twig->render( $html, array('files' => $new_files_array, 'parts' => $part_type, 'url' => $url) );

       } ?>
      </div>

   </div>
   </form>
</div>
<?php
  require_once('includes/footer.php');
  } else echo showlogin();
?>

Sorry its pretty long. The Else its complaining about is at the very end of the file. Anyone have a clue ?

  • 写回答

1条回答 默认 最新

  • doubian6241 2014-03-13 14:56
    关注

    Your problem is on line 170:

                    <? } ?>
    

    Note that you've got a short open tag there: <? rather than <?php. I can reproduce your parse error and eliminate it by replacing the open tag with a full <?php open tag.

    I'd therefore deduce that your production server doesn't have short_open_tag turned on. You should make sure short_open_tag is disabled on your development server if you're going to have it disabled on production.

    I'd also recommend looking into more structured PHP development practices -- probably by checking out a few of the top frameworks that are around -- to see if you get some hints as to how to reduce the complexity of this code. The intermingling of PHP, HTML, jQuery, Mustache, and styling attributes that might be better handled with CSS, all in the one big file, seems quite unwieldy to be dealing with.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?