За последние 24 часа нас посетили 21712 программистов и 1045 роботов. Сейчас ищут 690 программистов ...

Parse error: syntax error, unexpected T_ELSE,

Тема в разделе "PHP для новичков", создана пользователем Tom_as, 10 авг 2010.

  1. Tom_as

    Tom_as Активный пользователь

    С нами с:
    10 авг 2010
    Сообщения:
    3
    Симпатии:
    0
    Parse error: syntax error, unexpected T_ELSE, expecting T_WHILE in Y:\home\test1.ru\www\index.php on line 660

    Привожу код:

    Код (PHP):
    1. $sel = isset( $_POST['sel'] ) ? $_POST['sel'] : isset( $_GET['sel'] ) ? $_GET['sel'] : "";
    2. if ( $sel != "logoff" )
    3. {
    4.     do
    5.     {
    6.         if ( isset( $_COOKIE['dp_login'], $_COOKIE['dp_pass'] ) )
    7.         {
    8.             $strSQL = "SELECT id FROM ".USERS_TABLE." WHERE login='".addslashes( $_COOKIE['dp_login'] )."' AND password='".addslashes( $_COOKIE['dp_pass'] )."' ";
    9.             $rs = $dbconn->execute( $strSQL );
    10.             if ( 0 < $rs->fields[0] )
    11.             {
    12.                 sess_write( session_id( ), $rs->fields[0] );
    13.                 $user = auth_index_user( );
    14.             }
    15.         }
    16.         else
    17.         {
    18.             $user = auth_index_user( );
    19.             if ( !headers_sent( ) )
    20.             {
    21.                 if ( !isset( $_POST['remember_me'] ) )
    22.                 {
    23.                     break;
    24.                 }
    25.                 else
    26.                 {
    27.                     setcookie( "dp_login", $_POST['login_lg'], time( ) + 7200 );
    28.                     setcookie( "dp_pass", md5( $_POST['pass_lg'] ), time( ) + 7200 );
    29.                 }
    30.             }
    31.         }
    32.     }
    33.     else  
    34.     {
    35.         setcookie( "dp_login", "", time( ) - 7200 );
    36.         setcookie( "dp_pass", "", time( ) - 7200 );
    37.     } while ( 0 );
    38. }
    39.  
    40.  
    660 строка это последнее else между фигурными скобками. Не особо я понимаю чет в чем дело. если там должно быть while по тексту ошибки, то ошибка не исчезает.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. WildZero

    WildZero Активный пользователь

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    Скобка перед последним else должна быть перед while.
     
  3. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    с вложенностью разберись, у тебя получилось do ... else
     
  4. Tom_as

    Tom_as Активный пользователь

    С нами с:
    10 авг 2010
    Сообщения:
    3
    Симпатии:
    0
    я убрал сейчас из кода

    else
    {
    setcookie( "dp_login", "", time( ) - 7200 );
    setcookie( "dp_pass", "", time( ) - 7200 );
    }

    вот эту часть кода и все заработало....так я и не понял в смысле должна быть перед while

    ток потом правда еще одна ошибка появилась: Parse error: syntax error, unexpected '}', expecting T_WHILE in Y:\home\test1.ru\www\include\functions_index.php on line 85

    85я строчка это $id_lang_by_ip = $IpInfo->id_lang; после первого if

    Код (PHP):
    1. function indexpage( )
    2. {
    3.     global $smarty;
    4.     global $lang;
    5.     global $config;
    6.     global $dbconn;
    7.     global $config_index;
    8.     global $user;
    9.     global $multi_lang;
    10.     global $field_name;
    11.     global $settings;
    12.     $file_name = isset( $_SERVER['PHP_SELF'] ) ? afterlastslash( $_SERVER['PHP_SELF'] ) : "index.php";
    13.     $IpInfo = new ipinfo( $dbconn, $config );
    14.     if (!isset($_COOKIE["language_cd"]) && GetSiteSettings('lang_ident_feature')){
    15.         $id_lang_by_ip = $IpInfo->id_lang;
    16.         if ($id_lang_by_ip > 0 && $config["default_lang"] != $id_lang_by_ip){
    17.             header("location: index.php?language_code=".$id_lang_by_ip);
    18.         }
    19.     }
    20.  
    21.  
    22.     $elements = elementsforquicksearch( );
    23.     $smarty->assign( "elements", $elements );
    24.     banners( getrightmodulepath( __FILE__ ) );
    25.     indexhomepage( );
    26.     $smarty->assign( "lang_link", getlangs( ) );
    27.  
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  5. Roomlife

    Roomlife Активный пользователь

    С нами с:
    6 авг 2010
    Сообщения:
    34
    Симпатии:
    0
    там где у вас две скобки } (перед $elements = elementsforquicksearch( ); ) надо поставить третью, чтобы закрыть функцию
     
  6. Tom_as

    Tom_as Активный пользователь

    С нами с:
    10 авг 2010
    Сообщения:
    3
    Симпатии:
    0
    Блин точно, чет я даже и не заметил этого...спасибо огромное. эх...тяжело чужой код редактировать блин....
     
  7. WildZero

    WildZero Активный пользователь

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    Дак установи себе какой нибудь notepad++, и не мучайся ты со скобками.
     
  8. T0n

    T0n Новичок

    С нами с:
    13 окт 2015
    Сообщения:
    1
    Симпатии:
    0
    Господа, та же проблема с "PHP Parse error: syntax error, unexpected T_ELSE" родилась при переезде на другой VPS. Код не менялся, а функционал закончился ((, причем хостер ссылается именно на эту ошибку при попытках разобраться. Итак, речь идет о подбросе фотки и последующем ее редактировании. Суть первого файла заключается в следующем:
    Код (PHP):
    1. <?php
    2. if (isset($log_user))
    3. {print <<<HERE
    4. <p><strong>Выбирите файл для загрузки (до 5 MБ , с расширением jpg или gif):</strong></p>
    5.         <FORM ENCTYPE="multipart/form-data" ACTION="zagruzka_obrabotka.php" METHOD=POST>
    6. <p><INPUT NAME="myfile" TYPE="file"  size="40" size="5Mb" class="inputField"><br><br>
    7. <INPUT class="dobav" TYPE="submit" name="button" VALUE="Загрузить"></p>
    8. </FORM>
    9. HERE;}
    10. else
    11. {echo "<strong>По такому запросу страница не сконфигурирована</strong>";}
    12. ?>
    13.  
    14. Обработка во втором файле выглядит так:
    15.  
    16. <?php
    17. ini_set('memory_limit', '128M'); 
    18. if (isset($log_user))
    19. {
    20.  
    21. if (isset($button))
    22. {
    23.     
    24. $dir = "foto/$a/"; 
    25. //chmod($dir, 0777);
    26.  
    27. //print_r();
    28. // права на папку посмотреть:
    29. //echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
    30.  
    31.      //echo $_SERVER['DOCUMENT_ROOT'].$dir;
    32.  
    33.  if (!is_dir($_SERVER['DOCUMENT_ROOT'].'/'.$dir)){
    34. mkdir($dir);
    35. } else {
    36. //chmod($_SERVER['DOCUMENT_ROOT'].$dir, 0777);
    37. //chmod($dir, 0777);
    38. }
    39.  
    40. //umask($oldmask); 
    41.  
    42. if (is_uploaded_file($_FILES["myfile"]["tmp_name"])) {
    43.     $res = move_uploaded_file($_FILES["myfile"]["tmp_name"], $dir.$_FILES["myfile"]["name"]);
    44.     
    45.     }
    46.     
    47.         $src=$dir.$_FILES["myfile"]["name"];    
    48.     $dest="foto/$a/ava.jpg" ;
    49.         $width=225;
    50.         $height=300;  
    51.  
    52.       function img_resize_real($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=83)
    53.      {
    54.          if (!file_exists($src)) return false;
    55.   
    56.          $size = getimagesize($src);
    57.   
    58.          if ($size === false) return false;
    59.   
    60.          // Определяем исходный формат по MIME-информации, предоставленной
    61.          // функцией getimagesize, и выбираем соответствующую формату
    62.          // imagecreatefrom-функцию.
    63.          $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
    64.          $icfunc = "imagecreatefrom" . $format;
    65.          
    66.          if (!function_exists($icfunc)) return false;
    67.   
    68.          /* alg */
    69.          $src_w = intval($size[0]);
    70.          $src_h = intval($size[1]);
    71.          $set_w = abs(intval($width));
    72.          $set_h = abs(intval($height));
    73.          $src_x = $src_y = 0;
    74.   
    75.          if ($set_w == 0 && $set_h == 0) { $set_w = $src_w; $set_h = $src_h; }
    76.          if ($set_w > 0 && $set_h == 0)  { $set_h = ceil($src_h*$set_w/$src_w); }
    77.          if ($set_h > 0 && $set_w == 0)  { $set_w = ceil($src_w*$set_h/$src_h); }
    78.          $prc_w = ceil($src_w*$set_h/$src_h);
    79.          $prc_h = ceil($src_h*$set_w/$src_w);
    80.          if ($prc_h >= $set_h)
    81.          {
    82.              $out_w = $set_w; $out_h = $prc_h;
    83.          }
    84.          else
    85.          {
    86.              $out_w = $prc_w; $out_h = $set_h;
    87.          }
    88.          if ($out_w > $set_w)
    89.          {
    90.              $xw = ceil($set_w*$src_h/$set_h);
    91.              $src_x = ceil(($src_w-$xw)/2);
    92.          }
    93.          if ($out_h > $set_h)
    94.          {
    95.              $xh = ceil($set_h*$src_w/$set_w);
    96.              $src_y = ceil(($src_h-$xh)/2);
    97.          }
    98.   
    99.          if ($out_w > $set_w || $out_h > $set_h)
    100.          {
    101.              if ($out_w > $set_w)
    102.              {
    103.                  $h = ceil($out_h*$set_w/$out_w); $w = $set_w;
    104.              }
    105.              if ($out_h > $set_h)
    106.              {
    107.                  $w = ceil($out_w*$set_h/$out_h); $h = $set_h;
    108.              }
    109.          }
    110.          else
    111.          {
    112.              $w = $out_w; $h = $out_h;
    113.          }
    114.          $src_x = $src_y = 0;
    115.          $set_w = $out_w = $w;
    116.          $set_h = $out_h = $h;
    117.          /* alg */
    118.   
    119.          // Создаем новое изображение
    120.          $idest = imagecreatetruecolor($set_w, $set_h);
    121.          
    122.          $isrc = $icfunc($src);
    123.   
    124.          // Копируем существующее изображение в новое с изменением размера:
    125.         $bbb=imagecopyresampled(
    126.          $idest,  // Идентификатор нового изображения
    127.          $isrc,  // Идентификатор исходного изображения
    128.          0,0,      // Координаты (x,y) верхнего левого угла
    129.          // в новом изображении
    130.          $src_x,$src_y, // Координаты (x,y) верхнего левого угла копируемого
    131.          // блока существующего изображения
    132.          $out_w,    // Новая ширина копируемого блока
    133.          $out_h,    // Новая высота копируемого блока
    134.          $size[0], // Ширина исходного копируемого блока
    135.          $size[1]  // Высота исходного копируемого блока
    136.          );
    137.      
    138.          $aaa=imagejpeg($idest, $dest, $quality);         
    139.          
    140.          //
    141.          //
    142.          //
    143.          if ($aaa<>true) {echo "<strong>Произошла ошибка! Попробуйте еще раз</strong>";} 
    144.   
    145.          imagedestroy($isrc);
    146.          imagedestroy($idest);
    147.   
    148.          return array('width' => $out_w, 'height'=> $out_h);
    149.   
    150.      }
    151.   
    152.     if (img_resize_real("$src","foto/$a/ava.jpg",240, 320))
    153.     {echo '<strong>Фото успешно загружено</strong>';
    154.     unlink ("$src");
    155.     }
    156.   else
    157.     {echo '';      }
    158.     printf('<p>[url="kabinet.php?a=%s"]Мой кабинет[/url]</p><br>',$danie88["id"]);
    159.         }  
    160.         else                          ---------------------- МЕСТО УКАЗАНИЯ НА ОШИБКУ СИНТАКСИСА
    161.         {echo "<strong>По такому запросу страница не сконфигурирована</strong>";}          -------- ПОСЛЕДНИЙ ВЫВОД
    162. }
    163. else {echo "<strong>По такому запросу страница не сконфигурирована</strong>";}
    164. ?>
    Итак, два вопроса:
    1.Почему один и тот же код на разных серверах работает по-разному?
    2.Для обеспечения работоспособности продолжать пинать хостера или действительно, что-то подправить в скрипте?

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  9. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    фигурную скобку HERE;} надо перенести на новую строку :)