Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] dziwny błąd
Forum PHP.pl > Forum > Przedszkole
kanonier
Witam,

Problem może być ciężki do rozwiązania ponieważ skrypt o który chodzi ni jest popularny a ja sam nie znam się wystarczająco na php aby potrafić zrobić i wyłumaczyć niektóre rzeczy, przejde jednak do sedna bo uważam że warto spróbować.

Chodzi mi o skrypt taki sam jak na stronie tavern.pl

Mam wszystkie pliki oraz baze, komplet który działa u innych. Razem z nim jest instrukcja do instalacji. Skrypt próbowałem uruchomić na dwóch różnych serwerach i w obydwóch nie działa z tym samym problemem.

Wedle instrukcji mam wgrac pliki na serwer, dodac kropki przed htaccessami, zrobic import bazy i zmienic baze, usera i hosta w jednym z plikow. Wszystko to robie.

Kiedy otiweram przegladarka index.php pojawia sie blad:

Parse error: syntax error, unexpected T_NEW in /home/sqallpl/domains/sqallpl.exh.pl/public_html/libs/adodb/adodb-exceptions.inc.php on line 78

Linia 78 w tym pliku wyglada tak:

  1. <?php
  2. throw new $errfn($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection);
  3. ?>


Ten sam błąd występuje wtedy kiedy podaje błędne dane do bazy więc nie chodzi tutaj o nią.

Mogę podać o wiele więcej szczegółów jeżeli będzie taka potrzeba. Zdaje sobię sprawe że to mało, ale nie mam pojecia jakie informacje moga sie przydac. Jezeli ktos ma chociaz maly pomysl co moze byc nie tak, prosze o odpisanie. Z gory dziekuje za checi.


-------------------------
proszę poprawić temat na zgodny
z Regulaminem pktIV.2.b
inaczej wątek zostanie zamknięty
~Cienki1980
Kicok
Jaka wersja PHP? 4? Bo throw działa dopiero od PHP5
kanonier
Cytat
Serwer EXtremeHost obsługuje obie wersje PHP. Standardowo pliki z rozszerzeniem .php obsługuje PHP4, natomiast pliki z rozszerzeniem .php5 obsługuje kompilator PHP5.
Aby ustawić interpreter PHP5 na wszystkie pliki .php, należy w panelu administracyjnym DirectAdmin utworzyć nowy Apache Handler dla wybranej domeny z następującymi wartościami:

* Handler: application/x-httpd-php5
* Rozszerzenie: .php


Ustawiłem ten handler i błąd cały czas się pojawia.
Kicok
Na pewno to ten sam błąd?
1. Wklej trochę więcej kodu, a nie tylko 1 linijkę.
2. Wrzuć na serwer pliczek php:
  1. <?php
  2.  
  3.  
  4. ?>

odpal go w przeglądarce i sprawdź, czy aby na pewno działasz na PHP 5
kanonier
chyba wszystko jest ok?

phpinfo: http://www.sqallpl.exh.pl/info.php

A tutaj trochę więcej kodu:

index.php

  1. <?php
  2. $basePath=dirname(__FILE__);
  3. $frameworkPath=$basePath.'/libs/prado/prado.php';
  4. $assetsPath=$basePath.'/assets';
  5. $dataPath=$basePath.'/protected/data';
  6. $configFile=$basePath.'/protected/data/settings.xml';
  7. $runtimePath=$basePath.'/protected/runtime';
  8. $tmpPath=$basePath.'/protected/tmp';
  9. $uploadPath=$basePath.'/upload/';
  10. $htaccessFile=$basePath.'/.htaccess';
  11. $GLOBALS['uploadPath']=$basePath.'/upload/';
  12. // $GLOBALS['urlParts']=2;
  13. $GLOBALS['urlParts']=0;
  14. $GLOBALS['modRewrite']=true;
  15.  
  16. // ADOdb
  17. require_once($basePath.'/libs/adodb/adodb-exceptions.inc.php');
  18. require_once($basePath.'/libs/adodb/adodb.inc.php');
  19.  
  20. if(!is_writable($assetsPath))
  21. die("Upewnij sie, czy folder <b>$assetsPath</b> ma prawa do zapisu dla wszystkich.");
  22. if(!is_writable($runtimePath))
  23. die("Upewnij sie, czy folder <b>$runtimePath</b> ma prawa do zapisu dla wszystkich.");
  24. if(!is_writable($tmpPath))
  25. die("Upewnij sie, czy folder <b>$tmpPath</b> ma prawa do zapisu dla wszystkich.");
  26. if(!is_writable($dataPath))
  27. die("Upewnij sie, czy folder <b>$dataPath</b> ma prawa do zapisu dla wszystkich.");
  28. if(!is_writable($uploadPath))
  29. die("Upewnij sie, czy folder <b>$uploadPath</b> ma prawa do zapisu dla wszystkich.");
  30. if(!is_writable($configFile))
  31. die("Upewnij sie, czy plik <b>$configFile</b> ma prawa do zapisu dla wszystkich.");
  32. if(!file_exists($htaccessFile))
  33. die("Upewnij sie, czy istnieje plik <b>$htaccessFile</b>");
  34.  
  35. require_once($frameworkPath);
  36.  
  37. $application=new TApplication;
  38. $application->run();
  39.  
  40. ?>




----------




adodb-exceptions.inc.php

  1. <?php
  2.  
  3. /**
  4.  * @version V4.90 8 June 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
  5.  * Released under both BSD license and Lesser GPL library license.
  6.  * Whenever there is any discrepancy between the two licenses,
  7.  * the BSD license will take precedence.
  8.  *
  9.  * Set tabs to 4 for best viewing.
  10.  *
  11.  * Latest version is available at <a href="http://php.weblogs.com" target="_blank">http://php.weblogs.com</a>
  12.  *
  13.  * Exception-handling code using PHP5 exceptions (try-catch-throw).
  14.  */
  15.  
  16.  
  17. if (!defined('ADODB_ERROR_HANDLER_TYPE')) define('ADODB_ERROR_HANDLER_TYPE',E_USER_ERROR); 
  18. define('ADODB_ERROR_HANDLER','adodb_throw');
  19.  
  20. class ADODB_Exception extends Exception {
  21. var $dbms;
  22. var $fn;
  23. var $sql = '';
  24. var $params = '';
  25. var $host = '';
  26. var $database = '';
  27.  
  28. function __construct($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection)
  29. {
  30. switch($fn) {
  31. case 'EXECUTE':
  32. $this->sql = $p1;
  33. $this->params = $p2;
  34. $s = "$dbms error: [$errno: $errmsg] in $fn("$p1")n";
  35. break;
  36.  
  37. case 'PCONNECT':
  38. case 'CONNECT':
  39. $user = $thisConnection->user;
  40. $s = "$dbms error: [$errno: $errmsg] in $fn($p1, '$user', '****', $p2)n";
  41. break;
  42. default:
  43. $s = "$dbms error: [$errno: $errmsg] in $fn($p1, $p2)n";
  44. break;
  45. }
  46.  
  47. $this->dbms = $dbms;
  48. if ($thisConnection) {
  49. $this->host = $thisConnection->host;
  50. $this->database = $thisConnection->database;
  51. }
  52. $this->fn = $fn;
  53. $this->msg = $errmsg;
  54.  
  55. if (!is_numeric($errno)) $errno = -1;
  56. parent::__construct($s,$errno);
  57. }
  58. }
  59.  
  60. /**
  61. * Default Error Handler. This will be called with the following params
  62. *
  63. * @param $dbms the RDBMS you are connecting to
  64. * @param $fn the name of the calling function (in uppercase)
  65. * @param $errno the native error number from the database
  66. * @param $errmsg the native error msg from the database
  67. * @param $p1 $fn specific parameter - see below
  68. * @param $P2 $fn specific parameter - see below
  69. */
  70.  
  71. function adodb_throw($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection)
  72. {
  73. global $ADODB_EXCEPTION;
  74.  
  75. if (error_reporting() == 0) return; // obey @ protocol
  76. if (is_string($ADODB_EXCEPTION)) $errfn = $ADODB_EXCEPTION;
  77. else $errfn = 'ADODB_EXCEPTION';
  78. throw new $errfn($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection);
  79. }
  80.  
  81.  
  82. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.