Jump to content
php.lv forumi

Jackal

Reģistrētie lietotāji
  • Posts

    215
  • Joined

  • Last visited

Posts posted by Jackal

  1. Nu apmēram tā var pārbaudīt vai datubāzē ir pieprasītais ieraksts un ja nav tad redirektēt uz video sākumlapu

     

    $video_id = $_GET['video_id'];
    $query = mysql_query("SELECT * FROM tabula WHERE id = '$video_id'");
    if(mysql_num_rows($query) > 0){
    //parādam ierakstu
    } else {
    header("Location: index.php?id=video"); // Aiz "Location:" jāraksta saite uz video sākumlapu
    }

     

    Vēl jau vajadzētu pārbaudīt arī $_GET['video_id'], laikam ar is_nummeric varēja

  2. Kā ir ar include() un require once() ātrdarbību. Ir vajadzība automātiski inklūdot php klases. Tie varētu būt ~ 30 php faili katrā lapas pārlādes reizē.

    Man jau sāk likties, ka tā darīt nav labi, bet gribētu zināt cik daudz tas ietekmē lapas ielādes laiku un servera noslodzi pie liela lietotāju skaita?

  3. Problēma tāda, ka dēļ escape() (skatīt funkciju serialize()) funkcijas visi burti "ēūīāšģķļžčņ" tiek pārvērsti par %xx, tikai xx vietā kaut kādi cipari un burti. Ja noņem escape(), sākas citas problēmas, ja tekstā ir dubultās pēdiņas, tad viss teksts, kas atrodas aiz pēdiņām tiek norauts.

     

    Atradu tādu funkciju kā - encodeURIComponent(), kuru varētu izmantot escape vietā, bet nekādas izmaiņas nebija.

     

    Ir kāds jēdzīgs risinājums tam?

     

    //izveidojam xmlhttp objektu
    function object(){
      var xmlHttp;
      try{
         xmlHttp = new XMLHttpRequest();
      } catch(e) {
         try{
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
         } catch(e) {
            try{
               xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
               alert("Your browser does not support AJAX!");
               return false;
            }
         }
      }
    
      return xmlHttp;
    }
    

     

    //funkcija tiek izmantota ajax pieprasijumiem
    function request(method, url, field, string){
      var xmlHttp = object();
      xmlHttp.open(method, url, false);
    
      if(string){
         xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
      } else {
         string = null;
      }
    
      xmlHttp.send(string); 
    
      if(field){
         if(xmlHttp.readyState == 4){
            var element = document.getElementById(field);
    
            if(element){
               element.innerHTML = xmlHttp.responseText;
            } else {
               alert("Id " + field + " does not exist!");
            }
         }
      }
    
      xmlHttp = null; 
    }
    

     

    //pārvēršam masīvu par stringu - 'title=aaa&val=bbb'

    function serialize(array){
      var string = "";
    
      for(var i in array){
         if(string != ""){
            string += "&";
         }
    
         string = string + i + "=" + escape(array[i]);
      }
    
      return string;
    }

     

    //ajax pieprasijums
    
    var element = document.getElementById("category");
    
            var values = new Array();
    values["title"] = element.title.value;
            values["lang"] = element.lang.value;
    
            request("post", "index.php?aaa=aaa", false, serialize(values));

  4. Šis vairāk vai mazāk ir programmētāju forums, kur tiek apspriests par mājas lapu tehnisko uzbūvi un to izveidi nevis tā dizainu neskaitot CSS, JS, u.c. Citos forumos, kuri ir vairāk tendēti uz web dizaneriem tu atradīsi labākus kandidātus. Ka, piemēram, http://gfx-dream.lv/forums/.

     

    Jā, zinu, piereģistrējos šajā forumā (http://gfx-dream.lv/forums/), bet nez kāpēc nevaru veidot nevienu jaunu tēmu un adminiem arī nevar nosūtīt ziņu. Vai nu admini nav apstiprinājuši manu useri, vai kas. Pie usera statusa jau divas dienas rāda "validating", kaut arī vairākas reizes esmu pārsūtijis apstiprināšanu, bet nekāda reakcija nav. Varbūt ir vēl kāds sakarīgs dizaineru forums?

  5. Šajā forumā atradu pavisam vienkāršu skriptu, nedaudz pielaboju, un tagad tas izskatās šāds:

     

    kods

     

    Lieta tāda, ka pareizi rāda tikai pirmos 2 līmeņus.

    Varbūt kāds apskaidros kā iziet cauri visiem līmeņiem. Zinu, ka ar rekursiju, bet ko padot funkcijai, izsaucot to rekursijā?

     

    Paldies jau iepriekš!

  6. Paldies! Tagad sapratu, kur bija problēma.

     

    Bet radās vēl viena problēma, nosūtot ar ajax post datus tiek saņemti dati nepareizā kodējumā

     

    Pirms send tiek nosūtīts hederis, bet vienalga nestrādā. Kur varētu būt problēma?

    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");

     

    PHP koda sākumā arī nosūtiju hederi, bet vienalga neiet

    header('Content-type: text/html; charset=utf-8');

  7. Ar ajax tiek atgriezts HTML kods. HTML koda beigās <script> tagā tiek definēti js mainīgie un izsaukta js funkcija (funkcija tiek definēta failā, kurā tiek izsaukta šī ajax funkcija, kura atgriež HTML). Problēma tāda, ka funkcija pati neizsaucās un definētie mainīgie uzrādās kā nedefinēti (šie mainīgie tiek izmantoti šajā pašā funkcijā). Ja šo funkciju pēc tam mēģinu izsaukt ar onclick="funkcija()", tad funkciju attrod, bet mainīgie vienalga paliek nedefinēti. Kāpēc tas tā ir? Un ko varētu darīt lietas labā?

     

    HTML kods kuru atgriež ajax:

     

    Ja izsaucu šadi nekas nestrādā

    <script>
    langs = new Array('lv','en','ru');
    changeLang('');
    </script>

     

    Ja izsaucu šadi funkcija izsaucās, bet langs mainīgais uzrādās nedefinēts

    langs = new Array('lv','en','ru');
    <a href="#" onclick="changeLang('')">links</a>

  8. function show($parent){
      $query = mysql_query("SELECT id, parent, kautkas FROM tabula WHERE parent='$parent' ORDER BY sort ASC");
    
      if(mysql_num_rows($query) > 0){
    	 $out .= ($parent == 0 ? '<ul class="mktree">' : '<ul>');
    	 while($row = mysql_fetch_array($query)){
    		$out .= '<li>'.$row['kautkas'];
    		$this->show($row['id']);
    		$out .= '</li>';
    	 }
    	 $out .= '</ul>';
      }
    
    return $out; 
      }

     

    Šis tiek likts temleitā:

    $klase->show(0);

     

    Problēma ir tāda, ka neizvada pareizi html'u, ja $out .= vietaa lietoju echo, tad viss ir pareizi, bet es nevaru lietot echo, jo izmantoju templeitu sistēmu.

    return šaja funkcijā it kā nevar lietot, jo tad nestrādā rekursija, bet lai ar šo $klase->show(0); varētu izvadīt html'u ir vajadzīgs return. Ir kādi risinājumi?

  9. .css

     

    body{

    margin: 0;

    padding: 0;

    }

    .container{

    position: relative;

    margin-left: auto;

    margin-right: auto;

    width: 800px;

    border: 1px solid #000;

     

    }

    .left{

    border: 1px solid #000;

    position: absolute;

    left: 0;

    bottom: 0;

    top: 0;

    width: 10px;

    }

    .right{

    border: 1px solid #000;

    position: absolute;

    top: 0;

    bottom: 0;

    right: 0;

    width: 10px;

    }

    .content{

    border: 1px solid #000;

    margin-left: 20px;

    margin-right: 20px;

    }

     

     

    .html

     

    <div class="container">

    <div class="left"></div>

    <div class="content">

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    </div>

    <div class="right"></div>

    </div>

     

    Problēma tāda, ka uz IE left, un right neizplešas vertikāli pa visu container, kāpēc tā un kā šo problēmu varētu risināt?

  10. function rollover(img_name, img_src){

    document[img_name].src = img_src;

    }

     

    <li><a href="index.php?id=5" onmouseover="rollover('id5', 'css/images/menu_5r.gif')" onmouseout="rollover('id5', 'css/images/menu_5.gif')"><img id="id5" src="css/images/menu_5.gif" /></a></li>

     

    Esmu vairākas reizes pārbaudijis arī iztīrijis cache, bet uz IE un Operas neiet. Kas varētu būt par problēmu?

    Firebug errorus arī neparāda.

  11. Ir šāds skripts:

     

    index.php

    $tmpl = new tmpl();
    include('class1.php');
    $class1 = new class1($tmpl);
    $class->aaa();

     

    class1.php

    class class1{
     var $tmpl;
     function class1($tmpl){
    	  $this->tmpl = $tmpl
     }
    
     function aaa(){
    	  $this->tmpl->bbb();
    	  include('class2.php');
    	  $class2 = new class2($tmpl);
    	  $class2->ccc();
     }
    }

     

     

    class2.php

    class class2{
     var $tmpl;
     function class2($tmpl){
    	  $this->tmpl = $tmpl
     }
    
     function ccc(){
    	  $this->tmpl->bbb();
     }
    }

     

    Lieta tāda, ka funkcijā ccc rāda, ka nav definēts objekts $tmpl, bet funkcijā aaa viss strādā. Ko es esmu nepareizi izdarijis?

  12. Ir skripts:

     

    setcookie("cookie", "aaa");

    echo $_COOKIE['cookie'];

     

    Ieejot lapā pirmajā reizē neko neizvada, bet pēc lapas refreša parādās "aaa". Kāpēc "aaa" netiek izvadīts ārā jau pirmajā reizē?

     

    Pašlaik izmantoju šādu risinājumu:

     

    setcookie("cookie", "aaa");

    echo $_COOKIE['cookie'];

    header('location: index.php');

     

    Ir kādi citi risinājumi?

  13. Ir vajadzība uztaisīt automātiski jaunus objektus, bet problēma ir tāda, ka eval funkcijā ir ielikts $tmpl objekts un tādēļ izmet erroru

     

    Catchable fatal error: Object of class TemplatePower could not be converted to string in C:\Program Files\www\index.php on line 21

     

    eval("$".$row['module']." = new ".$row['module']."(".$tmpl.");");

     

    Kā varētu izlabot šo kļūdu?

  14. Nu lūdzu te tev būs kods:

     

    .css

     

    td{

    vertical-align: middle;

    }

     

     

    .html

     

    <table>

    <tr>

    <td>

    <a href="#"><img src="bildes/bilde.gif" /></a>

    </td>

    </tr>

    </table>

     

     

    Izlaboju!

×
×
  • Create New...