Jump to content
php.lv forumi

Venom

Moderatori
  • Posts

    1,918
  • Joined

  • Last visited

Everything posted by Venom

  1. Venom

    Simboli

    tiem, kam negribās iet pa augst.min. linku paskaidroju: viena pieeja: sadabūt/nokonvertēt ( sk. php. iconv() ) krievu alfabētu uz &xxx; analogiem un iedzīt to translējuma masīvā $ru_to_coded=array('krievu burts'=>'&xxx; ekvivalents'); un tad katram ziņojumam taisīt strtr('teksts',$ru_to_coded); otrā pieeja (parastāka): ja lapas augšā encodings noteikts kā windows-1257 (vai arī pašā postēšanas formā noteikts accept-encodings), tad pēc submita pats browseris/serveris translē POST/GET datus attiecīgajā kodējumā, resp. ieliek lapas augšā vajadzīgo kodējumu un vairs neuztraucies par spec. konvertēšanu.
  2. varētu būt tā, ka shell_exec atgriež pēdējo rindu, bet tā varētu būt "n" tukšrinda, pamēģini visādus exec(), passthru(), popen(), system(), vai izmanto backtikus (`dir`), un ķer outputu ar output bufferinga (ob_*, īpaši ob_getcontents()) funckijām.
  3. EMS MySQL Manager (īpaši importam) MySQL Front (īpaši eksportam)
  4. $out=shell_exec('dir'); echo $out; $out=`dir`; echo $out;
  5. Venom

    Preg_match

    preg_match('/matchs/iU'); tas "U" nosaka "Ungreedy", t.i. meklēs nevis lielāko sakrītošo stringu, bet gan mazāko (jebšu līdz pirmajam <td>)
  6. nu ir vēl arī tāds mysql_affected_rows() un arī papildus kvērijs nav jāsūta, bet tikai fetčo tālāk ko vajag (ja vien neizmano LIMIT n,m).
  7. pēc pieredzes teikšu, ka teff kaut kur nepabeigts loops stāv, vai nu pirms, vai nu pēc tā query. Uzmet aci saviem for un while un apskaties, vai tik kautr kur mainīgais nekad neiziet aiz to ierobežojumiem, e.g. while(1=1) { //šis te gļukos ilgi-ilgi. } mysql_connect(...); vai arī mēģini likt rindās no augšas uz leju: echo 'šī rinda vēl strādā' :, lai izķertu kur sākas kļūda.
  8. in reply to prev. post: A h.. tur bija! Pilniigi atbalstu: <form action=<?php echo $_SERVER['PHP_SELF'];?> method=POST> jo, noraadot action=' ' (vai vispaar nenoraadot to), tiek lietots action URL nevis _uz sevi_, bet gan uz default scriptu, jebshu index.php, default.php vai kaadu veel tur, bet ja es taisu kaadu formu, kuru peec tam inkluudoshu citos failos droshi jau vien, ka formas datus apstraadaas tas pats skripts, kur ir forma. Ja neieliek action, nostraadaa index.php, kur skripta apstraades nebuus. Ja taisi visu skriptu ieksh index.php bez iipashiem skriptu inkluudiem, tad jau ok.
  9. Venom

    Fwrite()

    gr... print_r($_POST); View>Source un redzēsi kas tieši to nodod. Parasti tas arī ir $_POST. Dažos gadījumos varētu pievienoties, ja raksti fwrite($fp,"$stringa no textareas") resp. iekš dubultiekavām, tāpēc jāliek fwrite($fp,stripslashes($stringa_no_textareas)); man tādiem gadījumiem ir dažas paštaisītas f-jas: //get value from POST by var keyname < key > value function p($reuse,$reuse1=0) { if (!isset($_POST[$reuse])){$_POST[$reuse]='';} if ($reuse1) { if ($_POST[$reuse]=='') return array(); return $_POST[$reuse]; } return trim($_POST[$reuse]); } //check whether a var length is more than 1 character (non-!isset,non-space string) < string > boolean function l($reuse) { return strlen(trim($reuse)); } //prepare 4 query (string inquoting) function < string > string which is safe for putting inside query //if second argument is true, all thml entities are converted to &xxxx; equivalents function p4q($reuse,$reuse1=0) { if ($reuse1) { return mysql_escape_string(stripslashes(htmlspecialchars($reuse))); } return mysql_escape_string(stripslashes($reuse)); } čekojam: if (l(p('textarea'))) { @fwrite($fp,p4q(p('textarea'))); } tas pats arī labi nostrādās priekš $query="SELECT * FROM database WHERE `something` LIKE '%".p4q(p('textarea')).'%";
  10. Nu es cilvēkus nesaprotu: ņem rokās vairākdimensiju masīvus un aidā! Nevari aizdomāties līdz kaut kam līdzīgam? <?php function g($str) //dabū GET mainīgo, jebšu to, kas nodots caur index.php?var=value { if (!isset($_GET[$str])) $_GET[$str]=''; return $_GET[$str]; } $site=$_SERVER['PHP_SELF']; $_GET['m']=intval(g('m')); $_GET['s']=intval(g('s')); $menu=array('main','info','test'); $submenu=array ( ''=array(), 'main'=>array('links','others','counters'), 'info'=>array('about me','about him'), 'test'=>array('test1') ); for($item=0;$item<=count($menu)-1;$item++) { //izvadām visus menu elementus ar parametru m, kas atbilst el-ta indeksam $menu masīvā echo '<a href="'.$site.'?m='.$item.'">'.$menu[$item].'</a><br>'; //ja ir nodots GET m if (g('m')) { //izvadām attiecīgā $submenu elementus for($sub=0;$sub<=count($submenu[$menu[g('m')]]));$sub++) { echo '<a href="'.$site.'?m='.$item.'&s='.$sub.'">'.$submenu[$menu[g('m')]][$sub].'</a><br>'; } } } pēc tam lapā čeko: switch($menu[g('m')]) //nosakām menu elementu { case 'main': //$menu main switch($submenu['main'][g('s')]) { case 'links': echo 'linku sadaļa'; .... break; default: echo 'Izvēlēta MAIN sadaļa, apaķšdaļa nav izvēlēta'; break; } break; case 'info'://$main info switch($submenu['info'][g('s')]) //izvēlamies tā apakšelementu { case 'links': echo 'linku sadaļa'; .... break; } break; } ?> nav pārliecības, ka switch ņēma preti nenoteiktās vērtības,, bet vienkārši vajadzēs papildus variābli. Īr saprotams princips?
  11. Venom

    *.LV/CRYRAT

    Nu, simpātiski ir, arī nepierasti. Čik atceros, if (!in_array($browser,'IE','Opera')) {iframe nestrādā} tāpēc ceru, ka tev notiek kāda čekošana un vajadzības gadījumā ifreims tiek izehots uzreiz lapā. Beidzot arī kāds puisis uzdrīkstējās savu HP padarīt pinku.
  12. uztaisi pašā skripta augšā; <?php echo '<pre>'; print_r($_POST); //dati no formām print_r($_GET); //dati no adreses ?var=value utt print_r($_SERVER); //servera mainīgie print_r($_ENV); // citi servera/lietotāja mainīgie print_r($GLOBALS); //ja nekur citur nebija, te noteikti jābūt echo '</pre>'; ?> palīdz
  13. HTTP_* vecākām php versijām $_SERVER - jaunākām. Vēl der atcerēties: $_POST, $_GET, $_REQUEST, $_SESSION, $_COOKIE, $_GLOBAL, $_ENV, $_FILES
  14. 1ā pieeja: a) excelī sataisi kolumniem tādas pašas kolonnas, kā vajag tabulā > save as > comma delimited (comma separated values (csv)) B) ņem softu, kaut vai MySQL Front > import textfile un baro iekšā to csv. 2ā pieeja: a) Control Panel>ODBC connection pievieno Excela DNS (vienkārši iehavo viņam xls failu) - tad varēsi ar viņu "apspriesties" kā ar datu bāzi - taisi SELECT * INTO FILE ... ar spec. nosacījumiem B) vai nu ar MySQL Frontu atkal iebaro txt failu c) vai nu izmanto to pašu myqsl dzinuli un taisi LOAD * FROM FILE ...
  15. Venom

    Cērtam Urli

    vai nu ar pregiem, explode() vai vienkāršāk ar parse_str(); $vars=parse_str($_SERVER['HTTP_REFERER']); foreach($vars as $key=>$val) { echo $key.' == '.$val.'<br>'; } pirmām $vars arraya sastāvdaļām nenostrādās
  16. Venom

    Redirect

    visefektīgākais: <meta http-equiv="refresh" content="pēc cik sek (0); url=kur (http://)"> ja nav nogriezts output_bufferings (off iekš php.ini), vai pašā lapas augšā: header("Location: http://kur"); un arī ar JS var šo to padarīt: <script>location.href='http://kur';location.reload(); vai location.replace('http://kur');location.reload();</script> tas reloads vajadzīgs dažiem brauzeriem, kuriem nepielec, ka uztaisīts redirekts (it kā pamainīta adrese iekš adressbara, bet naff nospiests ENTERs)
  17. 2K|NG: man šķiet Benvenuto grib zināt par to, kas ir rakstīts manuālī, jebšu vai starp mysql_connect un mysql_pconnect ir liela atšķirībā - abos gadījumos rakstīts, ka ja konekcija tiek atvērta ar vienādiem parametriem, un tāda konekcija jau pastāv, tai nebūtu jāatverās pa jaunu, bet "jāpiekļaujās" iepriekšējai.
  18. a tu uztaisi tā $a=mysql_connect(...); $b=mysql_connect(...); un pēc tam tā: echo '<pre>'; print_r($a); print_r($b); echo '</pre>';
  19. O jā, ar realmu token strādāja.
  20. Venom

    Odbc

    Pēc noklušējuma, jebšu installējot pašu XP viņam ir visādi draiveri msaccessam, SQL, IIS utt, bet MySQL naff - man šķiet iekš NT uzreiz bija par win98 nav ne jausmas. Nokačāju, cerēsim ka tas kas vajadzīgs.
  21. Venom

    Adress Matching

    2K|NG: it kā, bet uz http://localhost jebšu http://127.0.0.1 man stāv apache/htdocs dokumentācija. Ar <VirtualHost> direktīvu apache httpd.confā man salikti "spoguļsaiti" īstiem www saitiem (jebšu mājās tu sev pats var uztaisīt kaut vai www.google.lv, www.mans.domains utt) - tā kā ineta man mājās naff, nerodās konflikšu ar reāliem saitiem. 2Roze: 10x, paskatīšos.
  22. Venom

    Adress Matching

    Kaut kā agrāk nemanīju, bet sanāk, ka uz lokālā servera (Apache 1.3.x) ierakstot adresi, piem. http://start/prev/0227 kura neeksistē, notiek auto pāradresācija uz eksistējošo perv/3227 - bet man no tā vajadzētu izvairīties. Šķiet arī php pārbaudot, vai eksistē vajadzīga direktorija/fails caur fopen saņem nepareizu info. Kur tas noņemams? Varētu būt kāda Apache fīča (mod_rewrite it kā off).
  23. Venom

    Odbc

    Hm, pēc noklusējuma uz XP nepienstalējās MySQL ODBC draiveris - varbūt kādam gājis līdzīgi? Cik saprotu, jāpiemet libmysql32.dll kaut kur, bet kur un kā?
  24. Hm, skat. apspriedi citur - kāpēc nevajadzētu likt mp3 iekš db, ja vien tev nestāv SCSI HDD, 1024Mb RAM un kādi 5000Ghz. Bet ja nu tomēr sagribēsies dikti-dikti apmēram tā: MySQL izveido lauku ar BLOB tipu - kas var pieņemt dažādus garumus un saturēt bināro informāciju. $fp=fopen('fails.mp3','rb'); //atveram failu binārai lasīšanai $inside=fgets($fp,filesize('fails.mp3')); //nolasām visu faila saturu iekš variābles mysql_query("INSERT INTO tabula SET blob_lauks='_".addslashes($inside)."_'_"); //(bez zemsvīrām (_) - tās domātas pēdiņu un apostrofu atšķiršanai) fclose($fp); //slēdzam failu bezjēdzība
  25. Ņu, pats padomā - ja MySQLā glabāsi, nu, piem. mp3 pa tiešo (BLOB laukos): 1) db izaugsies līdz pāris GB (atkarībā cik tev tur to mp3) 2) ne visi provaideri ir ar mieru likt db pat > 50 MB, tas palēnina arī citu db darbu 3) performances ieguvuma naf jo: a) daļai mysql tabulu info (indeksiem utt) jāglabājas RAMā - diez vai teff tā tik daudz B) rakņājoties pa tabulas rindām mysql-engīnim būtu "jāparlec" ļoti lielus bināro datu gabalus - mp3 failu datus - ātrums kritisies krasi 4) atgriežāmās vērtības lielums tiek ierobežots gan no php, gan no mysql - cik atceros, pēc noklusējuma 4066 Kb un 8 Mb attiecīgi - jebšu vienā variāblī ielasīt mp3 pilnīgi ar vienu piegājienu ne vienmēr izdosies 5) kāda jēga failu glabāšanai iekš db, ja vien negribi atrast tās laukos kādas HEX-vērtību sakritības - db jāglabā informācija par mp3 - dziedātājs, nosaukums, bitreits utt - tieši šij info ir interese meklēšanā 6) arī meklējot līdzības failu saturā ir citādi algoritmi - ja gribēsi sameklēt sakritības dziesmās tās nav jādzen db, tos var apstrādāt ar dažādiem algoritmiem (gausa, fibonacci, fourier utt) - un tieši atgriežāmās vērtības saglabāt iekš db un salīdzināt utt
×
×
  • Create New...