Helló,
nem jövök rá hogy mért nem működik a dolog ezért ha valaki ránézésre tudja akkor légyszi szóljon.
Van egy php-file, a következő képpen fest:
<?php
$sqlHost = "localhost";
$sqlUser = "cms";
$sqlPass = "cms";
$sqlDB = "cms";
$defaultSite = " test.php";
?>
Ezt beincludolom egy másik php-fájba majd onna el szeretném érni a $defaultSite értékét de egyszerűen valamiért nem tudom.
Mit csinálok rosszul?
- 1325 megtekintés
Hozzászólások
1: nem történik meg az include -> rossz elérési útvonal, hibás file név, hibás jogok
2: elírod a változó nevét
nézegesd a hiba naplót, segíteni fog
- A hozzászóláshoz be kell jelentkezni
Apachenaka hibanaplóját? Vagy hol találom?
- A hozzászóláshoz be kell jelentkezni
php beállítás... előszöris legyen log_errors v. display_errors bekapcsolva
aztán vagy képernyőn, vagy mondjuk /var/log/apache2/error.log de ez disztró + vhost beállítás függő
- A hozzászóláshoz be kell jelentkezni
Szervusztok !
a file kezdetén ott kell lennie a " < ? php" -nek.
CSZ
- A hozzászóláshoz be kell jelentkezni
ott van a kacsacsőr+kérdőjel+php csak elfelejtettem ide bemásolni
- A hozzászóláshoz be kell jelentkezni
$defaultSite = " test.php";
Az a szóköz biztos kell oda?
include ('fájlnév');
a $defaultSite-ot nem írtad máshogy (CaseSensitive)?
Semmit hiba, warning?
- A hozzászóláshoz be kell jelentkezni
nemhiszem de azért bemásolom a megfelelő részeket:
cms_settings.inc.php:
$sqlHost = "localhost";
$sqlUser = "cms";
$sqlPass = "cms";
$sqlDB = "cms";
$defaultSite = "test.php";
-----------------------------------------
cms_sqlConnection.inc.php:
Adatbázis kapcsolatot hoz létre ha még nincsen
*/
include_once "cms_settings.inc.php";
$_SESSION['sqlConnection'] = mysql_pconnect($sqlHost,$sqlUser,$sqlPass) or die(mysql_error());
-----------------------------------------
transaction_user.php:
<?php
include "cms_sqlConnection.inc.php";
[...]
}else {
header("Location: " . $defaultSite);
}
Nem irányít át sehova henme marad a transaction_user.php lapon. Ha meg így írom:
header("Location: index.php");
akkor mükszik.
- A hozzászóláshoz be kell jelentkezni
rakj ele egy global-t ott ahol hivatkozol ra
szoval ilyen global $sqlHost, $sqlUser;...
- A hozzászóláshoz be kell jelentkezni
global csak akkor kell ha nem az include -al egy szinten akarja használni, tehát ha pl php file elején megtörténik az include, de a file-on belül egy külön fv-ben van szükség a változóra
- A hozzászóláshoz be kell jelentkezni
igen ez így van külön függvényben hazsnálom a változót. Hol kell a globalt elé írni és pontosan miért?
- A hozzászóláshoz be kell jelentkezni
mondjuk igy:
function alma()
{
global $sqlUser, $sqlIze;
echo $sqlUser;
}
- A hozzászóláshoz be kell jelentkezni
global $defaultSite;
header("Location: " + $defaultSite);
Most így van. Viszont még mindig nem küldte el erre az oldalra, viszont ha ezt írom:
global $defaultSite;
echo $defaultSite;
Akkor faszánkiírja a lapra.
- A hozzászóláshoz be kell jelentkezni
akkor mar: header("Location: ".$defaultSite);
szerk: es semmi hibat nem ir ki? engedelyezz minden hibauzenetet php.ini-ben:
error_reporting = E_ALL | E_STRICT
- A hozzászóláshoz be kell jelentkezni
Az volt amit az első sorban írtál, köszi.
- A hozzászóláshoz be kell jelentkezni
Használat előtt:
global $defaultSite;
Egyébként azt is nézd meg, hogy van-e olyan oldal, amire hivatkozol, mert írtál index.php-t is, meg test.php-t is. De ha függvényből használod, a global lesz a ludas. Ezt érdemes átnyálazni: PHP-doksi, változók hatásköre
Szerk:
- de sokan rákattantunk. :)
- ja, mint látod, a GLOBALS tömb is működik, de a global kulcsszó szerintem kényelmesebb.
- És igen, elfelejtettem, de már írták, fejlesztéskor a hibajelzés mindig legyen bekapcsolva. Én nem php.ini-ben szoktam, hanem a forrásban:
error_reporting (E_ALL | E_STRICT);
de ini-ben is jó ötlet, talán rugalmasabb - fejlesztő gépen így, élesben úgy...
- A hozzászóláshoz be kell jelentkezni
Bocs, már elébb írták
- A hozzászóláshoz be kell jelentkezni
Amivel a threadet nyitottamaz márszerencsére megoldódott de van még egy, valszinű ez is hasonló szituáció.
Erre a sorra:
if(!isset($_SESSION('user_name')) or (strcmp($_SESSION('user_name') , "guest") != 0) ){
ezt írja ki:
Fatal error: Can't use function return value in write context in /var/www/cms/login.php on line 28
ez mitöl lehet?
- A hozzászóláshoz be kell jelentkezni
,,Can't use function return value in write context''
tehát függvényhívások értékét nem tudja írni, ez jogos. Nyilván a $_SESSION() nevű függvényre gondol. :)
$_SESSION('user_name') helyett $_SESSION['user_name'] szerintem sokat javíthat a dolgon. :)
- A hozzászóláshoz be kell jelentkezni
fúú régen phpéztam de nekem is volt bajom az includal...
szerintem ne includ helyett van valami más asszem csak nem tom miaz
valami más de ugyan
gy beágyaz de másképp??? :D:D valami rémlik ?D
talán
require()
--
Xiluka
- A hozzászóláshoz be kell jelentkezni
Engem is érdekelne hogy mi a require és az include közti külömbség, mert igazság szerint ahány könyvben néztem felváltva hazsnálják de különösebben nincsen megmagyarázva hogy miért.
- A hozzászóláshoz be kell jelentkezni
A nevéből ki lehet találni. Az egyik esetén leáll a program végrehajtása hibával, mivel kötelezően kell a file a másiknál pedig megy tovább csak jóval később kapsz egy hatalmas error (warningot mindenképp ha nincs meg a file), ha hivatkozol a fileban levő valamire.
Egyébként a PHP az egyik legjobban dokumentált opensource cucc, szóval érdemes lapozgatni a manualját.
- A hozzászóláshoz be kell jelentkezni
Mármint a manuálját
- A hozzászóláshoz be kell jelentkezni