gyors php kérdés

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?

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

Szervusztok !

a file kezdetén ott kell lennie a " < ? php" -nek.

CSZ

$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?

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.

rakj ele egy global-t ott ahol hivatkozol ra
szoval ilyen global $sqlHost, $sqlUser;...

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...

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?

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 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.