Delfins
-
Posts
3,746 -
Joined
-
Last visited
Posts posted by Delfins
-
-
nu jau kaadu laiku censhos dazhas funkcijas postgresql uzrakstiit, bet bez sekmeem. Vai kaads vareetu uzrakstiit piemeeram funkciju - "update tabula2 set laiks = tabula1.laiks where id = tabula1.id", respektiivi trigeris izsauks sho funkciju on update tabula1.laiks un funkcija sho pashu laiku ierakstiis arii tabula2 laukaa laiks.
(date, integer)
ai cik daudz piemēru internetā.
pat dokumentācijā tas viss ir...
CREATE OR REPLACE FUNCTION flights_update_trg_fnc() RETURNS "trigger" AS $BODY$declare begin INSERT INTO flights_changes(id,new_destination,old_destination,time) VALUES( old.id, new.destination, old.destination, now() ); RETURN new; end;$BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION flights_update_trg_fnc() OWNER TO some_user; CREATE TRIGGER flights_update_trg AFTER UPDATE ON flights FOR EACH ROW EXECUTE PROCEDURE flights_update_trg_fnc();
-
Paldies par atbildeem ieprieksheejaa manaa topikaa - nodereeja! :)
Vaardu sakot lieta taada, ka man teiksim fails index.php inkluudo failu detailView.php,
es gribu paarbaudiit ieksh detailView.php vai ssis fails ir inkluudots vai tiiri tikai pats atveerts!
Es kaut kad kaut kur pa miglai atceros, ka redzeeju vienu paarbaudes kodu, kur tajaa pashaa index.php failaa vienam mainiigam tiek pieskjirts buljons ,piemeeram $VAR = true; un tad ieksh detailView.php to paarbauda. Ja izraadaas, ka tas ir atveerts pa taisno, tad: die("bla, bla"). Bet iisti neatceros un arii nesaprotu kaa to vareetu panaakt!
Dotajaa gadiijumaa register_globals = Off;
1.) secured failus likt zem direktorijas, kur ielikts .htaccess ar Deny from All (uz php-include tas neattieksies :))
2.) iekš tādiem failiem pārbaudīt, vai URL nav izsaukts tieši ar šo failu (QUESRY_STRING)
3.) pārbaudīt vai tekošais fails nav ar indeksu `0` iekš get_included_files() atgriežamā masīva
if ( $includedFiles[0]==__FILE__) die('mazafaka');
PS: par trešo neesmu pārliecināts, bet uz windows tas strādās... :)
-
Normaali ir glabaat includojamos failus Arpus WEB direktorijas
tobish tur kur var piekljuut tikai no locaalaas mashinas :)
Skripts pats par sevi ir kaa Locals Useris :)
tobish ja arii kaads tiks pie Web failiem - config failam vinsh klat netiks
- Ja tiks - tad jau buus pilniibaa uzlauzis visu serveri .. un tad vairs nav svariigi kaadaa formaataa tiek glabaatas paroles :(
vienīgais veids, kas pašlaik ienāca prātā enkodēt php failu ar konekcijas funciju + ar statisku stringu
<?php $dbConn = DBIO::connect( 'useris', 'parole' ); ?>
jākodē būs arī DBIO klases fails.
vienīgais tad pazūd konfigurācijas fīča
Bet te atkal problēma, hakeris vai admins var pārkompilēt PHP/db ext tā lai funkcija kaut kur dumpo iekšā failā padotos parametrus :)
tā kā, variantu te daudz un neviens nebūs 100% drošs
-
-
jebkurā gadījumā - paroles ieteicams NEGLABĀT iekš plaintext - labāk tās šifrēt:
function cyph($parole){ return md5(md5($parole).'saltsaltsalt'); }, piemēram.
Tad pievienojot jaunu lietotāju viņa paroli failā/datubāzē ielikt šādi šifrētu, un pie katra ielogošanās mēģinājuma salīdzināt to ar šifrētu paroles lauciņā ievadīto paroli.
Pirms kāda laika tika drūmi 'hakots' eclub.lv - cilvēki brouzēja kaimiņu direktorijas un lasīja un tālāk izmantoja login/pass citu administrācijas sistēmām no failiem.
Jebkādā pietiekami sarežģitā veidā tās kriptējot varētu tādus gadījumus novērst.
bet ja tev vajag parole konekcijai pie DB ? kā tu atkodēsi ? (tavs variants ir vienvirziena kriptēšana)
-
Paroles vajag glabāt tajos pašos .php failos, proti teiksim nevis taisīt config.inc (vai jebkādu citu failu kas netiek pārsēts ar php) un tad to includēt bet config.php un tad ja glabāsi šādā formātā
<? $parole = 'superduper'; ?> tad no pārlūka atverot config.php nekas izvadīts netiks.
Protams tas nepasargā no tā ka kāds kuram ir pieeja pie servera paroles var aplūkot - taču tas jau ir cita līmeņa drošības jautājums (proti vai vieta/hostings kur .php skripti ir atrodas ir pietiekami droša un serviss profesionāls).
Taču arī šim ir risinājums - kriptēt jebšu encodēt .php failus. Līdz ar to ja arī kādam izdodas fiziski piekļut failiem, tad tie principā ir neizmantojami.
Šim gan nepieciešamas papildus instalēt dažus moduļus webserverī.
Populārākie encodētāji varētu būt - Zend Encoder (maksas produkts) http://www.zend.com/store/products/zend-encoder.php un uz servera lai šādus encodētus failus apstrādātu nepieciešams Zend Optimizer kas gan ir bezmaksas http://www.zend.com/store/products/zend-optimizer.php
Tad ir arī IonCube http://www.ioncube.com/
Pilnīgs bezmaksas verķis kas ir reizē arī labs accelerators ir eAccelerator http://eaccelerator.net
arii encoders nepalīdzēs ...
1. es inkludoju ekodētu config.php
2. izvadu print_r($GLOBALS);
3. atrodu mainīgo kas man ir interesants
manuprāt nav nevienas metodes kas pasargātu 100%
-
-
viss kas tev ir jāizdara :
C:\>cd usr/local/mysql/bin C:\usr\local\mysql\bin>mysql.exe -uroot Welcome to the MySQL monitor. Commands end with; or \g. Your MySQL connection id is 2 to server version: 4.1.2-alpha-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use mysql Database changed mysql> show tables; +-----------------+ | Tables_in_mysql | +-----------------+ | columns_priv | | db | | func | | help_category | | help_keyword | | help_relation | | help_topic | | host | | tables_priv | | user | | user_info | +-----------------+ 11 rows in set (0.00 sec) mysql>
esn esaprotu, kur nu var tik čakarēties <_<
-
Nu i oftopiks mazliet panesies... atgiezamies pie muusu auniem :)
cmd> mysql -uroot -p use mysql show tables
ja neaizej lidz pedejam posmam, tad mysql ir nepareizi uzlikts
Aizejot uz atbilstošo dir: (C:/Apache2/mysql/bin):
>mysql dod atbildi
"welcome to mysql monitor... utt."
paareejaas komandas (use u.c.) neko nedara - nekaadas reakcijas.
PHP skripti rāda kļūdu:
No Database Selected
Vai tad tas nav rakstiits filee "C:\WINDOWS\my.ini"?
No turienes jau arii man ir citaats:
datadir=C:/Apache2/mysql/data
Kā es vēl varu mēģināt pielauzt savu kasti darboties?
kāds vēl `welcome to mysql monitor` ???
__palaid__ mysql.exe no konsoles !
-
Hmm, esmu uz php ari iesaaceejs, bet nu savajadzeejaas juusu paliidziibu!
Taatad, man vajadzeetu scriptinju, kas nolasa no attieciigaas web lapas tabulas shuunas informaaciju, palasot ieprieksheejos topikus, sapratu, ka ar to tagu izvilkshanu un nolasiishanu liidz attieziigam tagam neder, jo lapas saakumdalja tachu arii mainaas, un ne visiem <td> vai u.c. tagiem ir lietots atribuuts name. Neder arii noraadiit vienk. <td><tr> ...<tr> jo taadi varianti lapaa var buut neskaitaami.
Nav gadiijumaa kaut kas taads, kas vareetu it kaa caur iframe noskrolleet lapu uz vidu vai kkur citur kur apm ir un kopeet to tekstu, kas raadaas tajaa, tipa simuleet peles ieziimeeshanu, vai ko tml.?
Kaadam ir kaadas idejas? Plz, uzmetiet kaadus scriptu piemeerus, buutiibaa jau vispaar arii nav svariigi vai tas ir php, vai javascripts, vai cita valoda, galvenais, ka rukaatu :)
vot tieši te slēpjās tā ideja, ja būtu pareizi būvēta lapa (XHTML) tad varētu bez problēmām izdabūt ārā.
bet ja tavai lapai ir kaut kas līdzīgs šim <td class="news_header">...
tad varētu ar pregiem izvilkt ārā
-
-
ja esi redzējis C/C++ progu sources linuxiem (winam!?), tad tur bieži vien iekš main()
tiek izmantots viens un tas pats kods šito opciju iegūšanai
C++
int c; static char optstring[] = "abs:"; opterr=0; while ((c=getopt(argc, argv, optstring)) != -1) { switch(c) { case 'a': cout << "Found option a" << endl; break; case 'b': cout << "Found option b" << endl; break; case 's': cout << "Found option s with an argument of " << optarg << endl; break; case '?': cout << "Found an option that was not in optstring" << endl; } }
Un man ir tādas aizdomas ka visi OS projekti izmanto šo shēmu un tāpēc jamos daudzreiz vieglāk nodot parametrus (pierastāk) nekā native Windows pergām... ( /nXX /yZZ /FORCE)
-
-
Sekojot mūsdienīgām tendencēm, bija jāizder pārs kastes alus, kamēr dabūju CSS karkasu
-
-
-
nu cmukāk būtu
$day = date('w'); $file = sprintf( 'index%d.htm', $day ); if ( file_exists($file) ) { include_once( $file ); } else { include_once( 'default.htm' ); }
-
Lietoju WinLAMP v3.1. (paku ar Apache, MySQL, PHP)
Problēma ir tāda, ka nevaru piekļūt datiem.
my.ini viss ir rakstīts it kā pareizi:
datadir=C:/Apache2/mysql/data
Dati fiziski tur arī atrodas (atbilstošie folderīši, un viss).
Bet ne phpMyAdmin, ne mani skripti netiek klāt pie datu bāzēm.
Vai kādam būtu padoms?
cmd> mysql -uroot -p use mysql show tables
ja neaizej lidz pedejam posmam, tad mysql ir nepareizi uzlikts
-
saskaaros ar taadu probleeminju, respektivi, uzmeistaroju lapu un ar pozicioneshanas palidzibu textu nopozicioneeju, bet nejau tur taa problema- probleema tada, ka uz IE raada kaa vajag, tachu uz Operas, FF raada kaadus 20px aukstaak.... kaa varetu sho te probleminju izlabot? paldies
uztaisit lai raada Opera un FF, un nelietot IE (lai rādās kā ir)
-
Kādi ir varianti, lai no php scripta palaistu fona procesu, kas kaut ko darītu atkabinājies no tā scripta kuru useris izsauc (pieņemism, šamais varētu salasīt un updeitot datus smaga reporta `starptabulām`). Prātā nāk spēlēšanās ar exec() un ar `&` meģināt atkabināt kā jebkuru parastu procesu. cron`a izmantošana ar īsti neder, jo gribas, atkabinātos scriptus pielaist tad kad formā tiek kaut kas nospiests un tajā dabūt iekšā kaut ko no sessijā esošajiem datiem. Varbūt ir kaut kādi gatavi scripti šādām vajadzībām vai labāki varianti. Labi būtu ja atkabinātie skripti izpildītos ar zemāku prioritāti, bet pavisam ideāli, ja viņus varētu salikt rindā vienu aiz otra un izpildītu pa vienam no rindas.
thnx jau avansā!
Mh... var jau ari savu sheduleri taisīt. teksim JOB-us ielikt kā parastus failus iekš foldera, kur iekšā būtu ierakstīta komanda... un tad ar sheduler.php laist jobus.
sheduler.php
$pidFile = 'sheduler.php.pid'; $jobDir = '/path/to/jobs'; if ( file_exists($pidFile) ) { die( 'already running' ); } fwrite( fopen($pidFile,'w'), '1' ); $dh = opendir($jobDir); while ( ($file=readdir($dh)) !== false ) { // .. check files $files[] = $file; } $files = sort( $files ); foreach ( $files AS $file ) { exec( $file ); // Vai exec( file_get_contents($jobDir.'/'.$file ) ); } unlink( $pidFile );
sheduler.php palaižam tā kā teica `pnp`... bet pirms tam uztaisam job failu
$jobCmd = '/usr/local/php/bin/php /path/to/any/file.php and any arguments'; $priority = 100; $jobFile = $priority.'_php.job'; fwrite( fopen($jobDir.$jobFile,'w'), $jobCmd );
iisumaa viss... rakstīju bez jebkādām datu pārbaudēm
-
http://lv.php.net/ nomainiijis logo.
arii jauki ka izlaida jaunas reliizes ar diezgan palieliem fix-listiem
-
"Find in Files" ??
-
-
unix file permissions
in PHP un PHP :)
Posted
a ko paziņo ? ja mape nepieder tev, tad diezvai izdosies piešķirt tiesības
turklāt ir jāraksta 0777 nevis 777