Jump to content
php.lv forumi

Direktorijas


Zoom

Recommended Posts

dir1oj.th.png

 

Seit ir bilde uz manu direktoriju strukturu.

Tatad man ir mapa ir adminfails. Es vina inkludoju ../db.php un db skripta ../db_config.php tad viss aiziet. Kad skatos lasisanas skriptu izmet erroru pa nedefinetiem mainigajiem. Ja es nonemu tur to "../" no db_config.php, tad lasisana iet, bet adminskripts nee. Ko man darit ?

 

DB.PHP
<?php
error_reporting(E_ALL);
$xfile = @file("config_db.php");
$cnt = count($xfile);
$udata = explode('::', $xfile[0]);
$dbname =     trim($udata[0]);
$server =     trim($udata[1]);
$user_name =  trim($udata[2]);
$pasw =       trim($udata[3]);

$data = @mysql_connect($server, $user_name, $pasw) or die (mysql_error());
@mysql_select_db($dbname, $data) or die ('nevar atvert DB :(('.mysql_error());
//echo "viss strada";
?>

 

 

Notice: Undefined offset: 1 in C:\Program Files\Apache Group\Apache2\htdocs\priv\serveris\macibu\mans gbook\vgramata\db.php on line 8

Notice: Undefined offset: 2 in C:\Program Files\Apache Group\Apache2\htdocs\priv\serveris\macibu\mans gbook\vgramata\db.php on line 9

Notice: Undefined offset: 3 in C:\Program Files\Apache Group\Apache2\htdocs\priv\serveris\macibu\mans gbook\vgramata\db.php on line 10
nevar atvert DB :((No Database Selected

Sis error ir identisks ja ielike citadaku inkludu cita apaksdirektorijas faila. Jocgi ka 7 rindina darbojas !

Edited by Zoom
Link to comment
Share on other sites

nu a ja džeks grib paroles glabāt citā failā? :)

 

Starp citu, tas paroļu fails webā būs kā plain-text,... tā kā tomēr labāk glabāt mainīgajos

un nokodēt to failu ar kādu atslēgu, kura glabājas kā static teksts iekš vēl viena nokodētā faila :)

 

PS: tas ir ja grib dabūt pilnīgāko security

Link to comment
Share on other sites

kaapee njemties ar db parolju drausmigu aizsardzibu - lieks overkills katru reizi tikt pie paroles. imo pietiek mysql`aa uztaisiit uzeri ar select/insert/update[nu varbut veel kadam, ja tiesam vajag tiesibam uz vienu db kas var piesleegties tikai no web servera ip. - paroli liec ieks kaut kaada *.php kaa mainiigo, konstanti, masiiva elementu vai objekta propertiju -kaa nu pasam labaak patiik.

Link to comment
Share on other sites

DB.PHP
<?php
error_reporting(E_ALL);
$xfile = @file("config_db.php");
$cnt = count($xfile);
$udata = explode('::', $xfile[0]);
$dbname = ////////////////////////////////////noņem atstarpes    trim($udata[0]);
$server = ////////////////////////////////////noņem atstarpes     trim($udata[1]);
$user_name =  trim($udata[2]);
$pasw = ////////////////////////////////////noņem atstarpes       trim($udata[3]);
[...]

beidz žēloties, un papēti sīkāk :P

(žēl ka nevar iedalīt - reģistrēts lietotājs, un reģistrēts idiots)

 

....

TĀTAD:

DB.PHP
<?php
error_reporting(E_ALL);
$xfile = @file("config_db.php");
$cnt = count($xfile);
$udata = explode('::', $xfile[0]);
$dbname = trim($udata[0]);
$server = trim($udata[1]);
$user_name = trim($udata[2]);
$pasw = trim($udata[3]);
$data = @mysql_connect($server, $user_name, $pasw) or die (mysql_error());
@mysql_select_db($dbname, $data) or die ('nevar atvert DB :(('.mysql_error());
//echo "viss strada";
?>

 

..... sists kaķis --> o_X

Edited by SkaKri
Link to comment
Share on other sites

varbūt kaut ko neizlasīju kā vajag, bet kāpēc mysql lietotājs, parole, adrese un db_vārds ir jāliek iekšā kaut kadā masīvā, kurš atrodas citā failā un pēc tam vēl visiem viņiem jālieto trim(), kur ir jēga ?

tirm() vispār vajag lietot tikai tad ja apstrādā lietotāja ievadītos datus,

masīvam arī šeit nav vietas, tev ko tur glabājas

 

mysql_konekti = array (

conect1 => array (user , pasword, db),

conect2 => array (user2 , pasword2, db2),

.................

)

 

kapēc neraksti vienkārši:

$link = mysql_connect("servers", "mazins_useriitis", "maza_userisa_paroliite")

or die ("neviena nav darbaa :)");

utt...........

Link to comment
Share on other sites

(žēl ka nevar iedalīt - reģistrēts lietotājs, un reģistrēts idiots)

Šo tagad būtu jāsaka par tevi...

php skripta sourcē var tak būt atstarpes cik uziet (vienas vietā). Neko tas nemaina.

Edited by bubu
Link to comment
Share on other sites

nu nezinu, nezinu kādas tur atstarpes, imo visu laiku bija ka ir vienalga cik atstarpes ir starp `=` un mainiigo/f-ju, atstarpes netiek pieskaitiitas klaat.

 

kaa jau Delfins teica, vaina ir liiki aprakstiitaa config_db.php, vai ieks `etc etc` bet ne scriptaa. nokopeeju doto scriptu un ieksh config_db.php ierakstiiju

test::localhost::user::password

piekonekteejaas pie mysql un db izveeleejas.

Link to comment
Share on other sites

visdrīzāk kodera kļūda ir tur, ka tiek pielietots `@` pie file()

Un tas nemaz neredz, ka ir kāds paziņojums, ka tāds fails neeksistē...

 

Jo nu parasti jau ieliek konfigu citā dirā un tad caur N-inkludiem mēģina includēt no dažādām direktorijām.

 

karoče

$xFile = 'db_config.php';
if (!file_exists($xFile)) {
   die( 'Kādam līkas rokas...' );
}

[...]

Link to comment
Share on other sites

par paroleem ... vai glabaa kaa mainiigo vai uzreiz mysql_connect() padod, citaadi kko kodeet mistiski nau jeega. jo ja tiek pie servera failiem tad kadoee kaut 10x un kaut vismistiskaakaa veidaa. taa pat jau tew parole jaatshketina ... so nau tur ko sleept :)

Link to comment
Share on other sites

×
×
  • Create New...