Snazim sa rozbehat si doma na localhoste server tak ako je na hostingu kde spravujem jeden nemenovany portal ( aby som mohol otestovat na mojom serveri presnu verziu portalu a potom ju bezproblemovo v priebehu par sekund hodit na net, to je snad pochopitelne ).
Povolil som si funkcie, triedy atd.. odkomentoval mysql.so mysqli.so a dalsie, no stale to nejde a neviem preco, zda sa mi, ze problem bude inde.
Mam /lib/Sql.php, ktory obsahuje :
<? function connection() { $host="localhost"; $uziv_db="user"; $heslo_db="pass"; $db="db"; $port=0; $soket=""; global $mysqli; @$mysqli=new mysqli($host,$uziv_db,$heslo_db,$db,$port,$soket); if (mysqli_connect_errno()) { @$mysqli=new mysqli("localhost", "user", "pass", "db"); } if (mysqli_connect_errno()) { die ("Could not connect db! Is mysqld turned on ? :) "); } return $mysqli; } ?>V indexe volam na zaciatku toto:
<?php date_default_timezone_set('Europe/Bratislava'); define('DS',DIRECTORY_SEPARATOR); define('APPROOT', realpath(dirname(__FILE__)) . DS); set_include_path(APPROOT . 'lib' . PATH_SEPARATOR . get_include_path()); require_once('Loader.php'); include('Sql.php'); $mysqli = connection(); ?>
/lib/Loader.php obsahuje toto:
<?php function __autoload($class) { $file = str_replace('_', DS, $class) . '.php'; if(!file_exists(APPROOT . 'lib' . DS . $file)) die("File '$file' not found within 'lib' directory!"); include_once($file); if(!class_exists($class, false)) die("Class '$class' not defined in file '$file'!"); } ?>
Loader mi sluzi na to, ze ked zavolam triedu dajme tomu $Pes = new $Pes(); , tak mi to automaticky urobi toto :
include_once('/lib/Pes.php');
$Pes = new $Pes();
A mam pokoj.. Mozem volat akukolvek funkciu bez toho aby som sa musel srat s include, staci, ak existuje v /lib/
Je tu ale problem. Index mi hlasi:
File 'mysqli.php' not found within 'lib' directory!
A neviem co s tym mam urobit a tak prosim o radu. Na hostingu vsetko ide ako ma.
php.ini som sa pokusal editovat prvy krat a zda sa mi ze som si pomocou dokumentacie vsetko zapol tak ako mam, len ta mysqli.so nejak nejde.
Dakujem za odpovede
<?php
phpinfo();
?>
a porovnaj si ich....
tazko sa hlada chyba, ked su tu vytrhnute iba kusky kodu
Cannot load session extension. Please check your PHP configuration.
pritom tam mam
extension=session.so
:(
Co s tym? prvy krat editujem php.ini
2. restartovat apache
3. kuknut ci to funguje
4. ak nie, pozri apache logy
5. ak tam bude chyba, tak googlis podla erroru
6. ak tam nebude chyba, tak si kontroluj, ci nemas nahodou viac php.ini a ci editujes to spravne
2. restartoval som
3. nefunguje
4. kde su logy? ( googlil som ale neviem najst umiestnenie popr. ako ich vypisat )
5. -
6. nemam, je tam iba php.ini a php.ini.save
; | bitwise OR
; & bitwise AND
; ~ bitwise NOT
; ! boolean NOT
neviete preco mi to robi problem?
A zadalsie, kde mam problem, ked neviem zavolat funkciu connection(); ?
; disable_functions =
; disable_classes =
som odkomentoval a zmenil na * = FALSE , v logu nieje ziadna chyba, ale stale mi to pise Fatal error: Call to undefined function connection() in /srv/http/projekt/index.php on line 8 , aj ked som zadal uplnu cestu include-u ku suboru, v ktorom funkcia connection(); je definovana.
A ako mozem povolit v php.ini, aby som mohol pouzivat set_include_path a pod. ? teda aby som pomocou php mohol dodatocne pre urcitu stranku menit urcite nastavenia php.ini?
Dakujem
Mohol by si aj mne, ale nechcem publikovat svoj email :)
php.ini: http://pastebin.sk/sk/11673/
; | bitwise OR
; & bitwise AND
; ~ bitwise NOT
; ! boolean NOT
Fatal error: Call to undefined function connection() in /srv/http/portal/index.php on line 8 ( aj ked som zadal uplnu cestu ku Sql.php teda /lib/Sql.php )