Jump to content
php.lv forumi

kasisppr

Reģistrētie lietotāji
  • Posts

    70
  • Joined

  • Last visited

Everything posted by kasisppr

  1. Neesmu pārliecināts, bet, ja mainiji SQL, tad $id = mysql_result(mysql_query("SELECT id FROM registretie_lietotaji WHERE niks = $user AND parole = $pass"),0,'id'); //vai tikai nav japamaina kas vairak??? $id = mysql_result(mysql_query("SELECT niks FROM registretie_lietotaji WHERE niks = $user AND parole = $pass"),0,'niks'); Paskaties ko isti dara mysql_result() 3-ais parametrs.
  2. Skaties cītīgāk, iespējams, kaut kāda atšķirība failu nosaukumā, nepareizas tiesības vai kļūdaina atrašanās vieta tomēr ir. Neapvainojies xfr33, bet tādu dizainu mājas lapām es pēdējo reiz redzēju, kad sāku studēt universitātē un tas bija ~10 gadus atpakaļ.
  3. kasisppr

    PHP Lattelecom

    Kā man nepasen stāstīja sens darba kolēģis (pietiekami pieredzējis), ja cilvēks vairs negrib neko jēdzīgu darīt vai arī viņam ir apnicis strādāt, tad viņš kļūst par konsultantu.
  4. Vēl viens ieteikums, kurš te ļoti bieži tiek pieminēts, saistībā ar aizsardzību pret SQL injekcijām. Nepadod pa tiesho $_POST, $_GET mainīgo uz datubāzi bez jebkādas apstādes, vismaz mysql_real_escape_string() vai mysql_escape_string() izmanto stringiem un intval() veseliem skaitlļem.
  5. kasisppr

    cookies

    Nja xfr33, palasijos tavus PHP piedzīvojumus. Mans ieteikums, pirms sāc ko jēdzīgu/nopietnu programmēt, palasi kaut kādu grāmatu vai plīdz kādu gudrāku tev izstastīt neskaidrās lietas. Jo tavas pieļautās kļūdas ir diezgan vienkāršas(pat sintaktiskas) un tev šķiet tomēr nav īstas nojēga par dažiem PHP programēšanas pamatprincipiem. Vienkārši var apnikt tev bakstīt katrā nāmajā sekojošajā kodā ar pirkstu, kur tu pielaid kļūdas.
  6. kasisppr

    WEB lapas

    Ja godīgi, tad pēdējā laikā ne normālu dizaineri, ne normālu koderi tik viegli atrast nevar. Manuprāt uz izķeršanu ir abi.
  7. Skatos hostinga saits joprojam nav pacelies.
  8. Mazliet precizēšanai! Gribi, lai pēc jaunuma ievadīšanas parāda visas tēmas un iekavās teksts, ja ievadītais jaunums ir pie šīs tēmas vai vispār jebkurš jaunums ir pie šīs tēmas??? Ja pirmais gadījums, tad: //pienemu, ka jaunums nav vairakas reizes pievienots vienai temai SELECT title, IF(it.id IS NULL, 0, 1) AS tema_izveleta FROM thema t LEFT JOIN izveletas_temas it ON t.id = it.tema_id AND it.jaunums_id = 'svaigi ievadita jaunuma id'; PHP skripta nocheko, ja 'tema_izveleta' == 1 pieliec klat tekstu. Ja otrais SELECT id, title FROM thema t ; //visas temas SELECT DISTINCT(tema_id) FROM izveletas_temas; //temas kuram ir jaunumi Tālāk PHP scriptā samet abus rezultātus masīvā un veido ko līdzīgu: foreach($title_rezultati AS $values) { if(in_array($values["id"], $izveletas_temas_rezultati)) $iekavas = " (tema izveleta)"; else $iekavas = ""; echo $values["title"].$iekavas; } Nu kaut kā tā.
  9. Ja piegādāsi kristāla bumbas, varbūt arī pateiksim kā.
  10. Pieņemu, ka visas pēdiņas tiešām esi salicis, tāpēc tās kļūdas neapspriedīšu. if(isset($_GET['page']) && $_GET['page'] == 'results) {..} elseif(isset($_GET ) && $_GET == 'results' and $_GET[info]){..} Neredzu iemeslu, lai tev vispār kaut reizi izpildītos elseif nosacījums, ja $_GET['page'] = 'result' un pat ir kaut kāda $_GET['info'] vērtība. Nostrādās IF nosacījums un viss. Vai nu maini elseif ar if vietām, vai būvē citu loģiku.
  11. Pats esmu veidojis ko līdzīgu. Problēma kā jau minēja ir ar IE, jo tas neatbalsta onmouse eventu option elementiem. Diemžēl vienkāršu risinājumu šai problēmai nav. Variants ir vai nu tu viltīgi pārveido selectu par tabulu vai div elementiem, kuriem onmouse events IE ir atļauts, un operē ar tiem. Izdomā vai tu to tiešām tik ļoti gribi?
  12. Nu lūk, dzīvs piemērs, kāpēc dažreiz labāk izmantot INSERT INTO table (col1, col2, ...) VALUE (col1_value, col2_value, ....); nevis INSERT INTO table (col1_value, col2_value, ....); Pirmajā gadījumā pastāv iespēja, ka kods nav jāmaina, ja pieliec papildus kolonas, taču otrā bez izmaiņām kverijā neiztiksi.
  13. Nu tā: 1) NEKAD pa tiešo bez apstrādes nepadod _POST, _GET, _REQUEST mainīgos MySQL querijam, it sevišķi, ja tie ir "stringi" tipa. Tas ir ļoti nedroši, vismaz apstrādā ar mysql_escape_string(); Uzmini, kas notiks, ja es Tev $_POST['meklet'] padošu, piemēram, kā "xxx'; DROP TABLES; SELECT 'A tabulu vairs nav!!!"??? 2) centies izvairīties no LIKE '%'xxx%' sintakses. Tas strādās ilgāk un pie liela datu apjoma tas būs jūtams. Varbūt kādā no taviem gadījumiem der arī LIKE 'xxx%', jo tad var arī noindeksēt attiecīgo tabulas kollonu, kas paātrina meklēšanu. 3) ja tev ir vairāk par 2 scenārijiem uz 1 vērtību, varbūt ir vērts padomāt izmatot nevis IF .. ELSEIF .. ELSE .., bet switch sintaksi. switch $tabula { case 'lietotajs': { //kods break; } case 'komanda': { //kods break; } default: { //kods break; } } 4) vienā vietā kodā tu nodefinē mainīgos $kas un $kas2, bet kur tu tos izmanto, jo tālāk kodā tie neparādās?
  14. Ja MySQL-ā vēlies izpildīt vairākus pieprasījumus vienā piegājienā, tos jāatdala ar semikolu; ... ) ENGINE=MYISAM DEFAULT CHARSET=latin1; CREATE TABLE ...
  15. Kā jau Vebers teica, ērtāk ir izmantot CSS first-letter pseido elementu. http://www.w3schools.com/CSS/pr_pseudo_first-letter.asp
  16. Nu bet linki tak tev kāreiz ari ved uz lang.php, par ko brīnies? Ja vien pašos lang.php failos nav kods, kas noved atpakaļ uz lapu, no kuras klikšķināji, tad tā tam jābūt.
  17. Es nekad neesmu manījis, ka forma vispār nosubmito zem $_post[] arī pati savējo <form> tagu vērtības. Ieliec kaut ko tādu kā <input type="hidden" name='dzeest_sevi' value="...(tava vertiba)...." /> P.S. Andrisp jau pasteidzas ar skaidrojumu.
  18. Ko tad Tev īsti vajag galu galā?
  19. kasisppr

    Neliels

    Esi pārliecināts, ka tiec līdz dzēšanas kodam? Esi mēģinājis izdrukāt to SQL kveriju un palaist uz datubāzes? P.S. Maz ticams, ka tā varētu būt, bet iespējams. Ja nu tomēr viss ir PAREIZI, bet ieraksts nepazūd. Man ir gadījies, ka pie vainas ir MySQL menedžeris, kurā ir atvērta attiecīgā tabula, kuru mēģinu caur aplikāciju rediģēt. Bet maz ticams.
  20. Izskatās pēc "Iedod gatavu kodu" tēmas. Bet kas tev nepatīk sortēšanā izmantojot masīvu, turklāt tu sortē tikai pēc viena parametra - datuma. Nezinu pat citu variantu, jo failus nolasi no direktorijas. $arrFiles = array(); if ($handle = opendir($demodir)) { while (false !== ($file = readdir($handle))) { if(stristr($file, $shodienaa4) !== FALSE) { $dat = strstr($file , '-'); $datums = substr($dat, 3); // taa, kaa nepacenties iedot failu nosaukumus, pieņemu ka datums ir kaut kur te plus ar vel kaut kaadu drazu gala $arrFiles[$datums] = $file; } } closedir($handle); if(!empty($arrFiles)) { ksort($arrFiles); foreach($arrFiles AS $dat1 => $text) { $laiks = substr($dat1, 5, 4); $karte = substr($dat1, 10, -5); $st = substr($laiks, 0, 2); $min = substr($laiks, 2, 2); echo "<tr><td>".$st.":".$min."</td><td style='text-transform:lowercase'>".$karte."</td>"; echo"<td><a href='http://clan.lv/demos/".$text."'>Novilkt</a></td></tr>"; } } Nu tāds ir mans ķep-ļep ātrais variants. Ideja skaidra??
  21. Mana nīstākā poga ir browser "Back", jo tas ir praktisks ekvivalents history.back() funkcijai. Lai tā nostrādātu saglabājot iepriekšējās vērtības, jāpievieno PHP hederis: header("Cache-Control: private"); vai ari meta tags HTML koda <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="PRIVATE"> Bet principa labāk glabāt tos sessijās ka jau piedāvāja iepriekš.
  22. Mjaa, nostrādāja tas "freek" variants. Nezinaju, kaut ko tādu MySQL spēj sagremot
  23. Nu nez "problēma" varētu būt tur, ka rezultāti tabulā "cw_rezultati" ir jāsaskaita, tie tam 2x. Diemžēl topika autors nav pacenties izskaidrot kāda ir tabulas struktūra un kā tajā tiek glabāti dati, bet kristāla bumbas tagad dārgas un deficīts. Varbūt Tev ir idejas kā dabūt tos atbilstošo komandu "punktus" (piedevām apstrādātus pēc tām formulām) klāt tai vienā kverijā kā kolonu SELECT id, komandas_valsts, komandas_nosaukums, komandas_tags FROM komandas ORDER BY 'id' DESC Ja jā, tad tiešām nav problēma izmantot tavu piemēru. Taču es šobrīd ātrāko variantu redzu glabāt visu masīvos un operēt ar tiem.
  24. Nu tad labo! Bet ideju vismaz saprati, kāpēc nestrādāja un kā vajadzētu veidot?
  25. Pag, nu ja tu esi nomainījis kveriju uz SELECT user_level FROM users WHERE login='$_POST['login']' , tad spiežot uz to tavu linku, kas aizved uz logout.php, aplikācija atgriežas index.php ar tukšu $_POST['login'] vērtību. un ja vien tev datubāzē nav kāds lietotājs ar login lauka vērtību '' (tukšums) , SQL kverijs tev atgriezis 0 rindas un nekas no tava while(){} ciklā esošā koda neizpildīsies. Drīzāk raksti kaut ko līdzīgu $user_login = !empty($_POST['login']) ? $_POST['login'] : $_SESSION['login']; $result = mysql_query("SELECT * FROM users WHERE login='$user_login'"); $row = mysql_fetch_array($result) if($row) { while($row) { if($row['user_level'] == 2) { // ja pakaape2 - tad ir moderators} else if($row['user_level'] == 3) { // ja pakaape 3 - tad ir administrators} else { // ja pakaape 1 - tad ir lietotaajs} //kaut kadu pakapi varbut tomer vajag iedot by default } } else { // te nak tava login forma } P.S. tu $_POST['login'] rakstīji "login" pēdiņās??? Jo parādītajā SQL kverija piemērā tādu nav. P.S.S. par koda sintaksi neesmu drošs, jo esu pieradis izmantot ADODB SQL pieprasijumiem.
×
×
  • Create New...