Jump to content
php.lv forumi

Aikss

Reģistrētie lietotāji
  • Posts

    120
  • Joined

  • Last visited

Posts posted by Aikss

  1. Ir juridisku pakalpojumus sniedzošs uzņēmums, kas vēlas sev vizītkartes tipa mājas lapu, kura satur trīs sadaļas: par mums, pakalpojumi, kontakti un rekvizīti.

     

    Tā kā veidojam statisku vizītkartes tipa vietni ar maziņu saturu, tad visu kodu liksim vienā failā. Izveidojam index.php failu teksta redaktorā (piemēram, notepad++) un saglabājam uz servera.

     

    Sākam rakstīt kodu. Pašā sākumā ieslēdzam kļūdu paziņošanu un sākam rakstīt html struktūru: iekopējam xhtml strict doctype un html rindiņu, uzrakstām head un body tagus.

     

     

    <?php
    
    //  Error Reportning (E_ALL - all error, 0 - turn off error reporting)
    error_reporting(E_ALL);
    
    ?>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="lv" lang="lv">
    
     <head>
     </head>
    
     <body>
     </body>
    
    </html>

     

    Lai varētu darboties tālāk ir jāzina kura lappuse tiek skatīta un, ja ir neatbilstoša lappuse, tad pārmest uz sākumu.

     

     

    // Init $page. Redirect if wrong page.
    $page = '';
    if (isset($_GET['page'])) {
     if (in_array($_GET['page'], array('pakalpojumi', 'kontakti-un-rekviziti'))) {
       $page = $_GET['page'];
     } else {
       header('Location: http://localhost/');
     }
    }

     

    Piezīme. Pārmešana uz sākumu nepareizas adreses gadījumā, nav tas labākais variants, jo tas var samulsināt apmeklētāju. Tā vietā būtu jāizmanto kļūdas paziņojums. Vietnei, kurai ir trīs lappuses, neredzu īsti jēgu un nepieciešamību taisīt kļūdas paziņojumu. Ja nu tomēr ļoti gribās, tad var pārmetot pielikt atzīmi galā un sākuma lappusē parādīt nelielu kļūdas paziņojumu.

     

    ...
    } else {
     header('Location: http://localhost/?error=404');
    }
    ...
    if (isset($_GET['error']) AND (int)$_GET['error'] == 404) {
     echo '<p class="error">Jūs tikāt pārmests uz sākumu, jo jūsu pieprasīta adrese ir nepareiza!</p>';
    }

     

    Tālāk inicializējam un atbilstoši lappusei piešķiram vērtību vietnes nosaukumam un meta datiem. Piezīme. Ir dažādi viedokļi par meta keywords/dercription tagu nozīmi. Cik nu ir izskanējis, tad google vispārīgi vairs neskatās meta tagus, tomēr citi, piemēram, Yahoo, lielākā vai mazākā mērā viņus skatās.

     

    // Init $title, $meta_key, $meta_desc
    $title = 'Test title, fusce elementum ...';
    $meta_key = 'Test keywords, habitant, morbi tristique ...';
    $meta_desc = 'Test description, placerat nec pulvinar ...';
    if ($page == 'pakalpojumi') {
     $title = 'Test title for pakalpojumi, fusce elementum ...';
     $meta_key = 'Test keywords for pakalpojumi, habitant, morbi tristique ...';
     $meta_desc = 'Test description for pakalpojumi, placerat nec pulvinar ...';
    } else if ($page == 'kontakti-un-rekviziti') {
     $title = 'Test title for kontakti, fusce elementum ...';
     $meta_key = 'Test keywords for kontakti, habitant, morbi tristique ...';
     $meta_desc = 'Test description for kontakti, placerat nec pulvinar ...';
    }

     

    Aizpildām head daļu ar informāciju par vietni (title, meta data), kā arī norādām favicon un css failus. Norādītos failus arī ieliekam (icon) vai izveidojam (CSS). Base tags norāda noklusēta adresi visām saitēm, kas ir vietnē. Mape "c-side" ir domāta kā client-side, jeb mape, kas satur clienta puses lietas, kā bildes, css un js failus, flash un tā tālāk. Par konkrētu tagu un to atribūtu lietošanu sīkāk lasiet kādā uzziņā ("(x)HTML Reference").

     

     

      <head>
    
       <title><?php echo $title; ?></title>
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
         <meta name="description" content="<?php echo $meta_desc; ?>" />
         <meta name="keywords" content="<?php echo $meta_key; ?>" />
       <base href="http://localhost/" />
         <link rel="shortcut icon" type="image/x-icon" href="c-side/favicon.ico" />
         <link rel="stylesheet" type="text/css" href="c-side/general.css" />
    
     </head>

     

    Tālāk tad ir jāaizpilda body daļa, iesākumā sadalīsim visu blokos: augša (top), vidus (middle) un apakša (bottom). Augša saturēs navigāciju, vidus saturu, apakšā atsauci. Ierakstām augšas daļā sarakstu ar saitēm, kas kalpos kā galvenā navigācija.

     

      <body>
    
       <div id="top">
    
         <ul>
           <li><a href="/">Sākums</a></li>
           <li><a href="?page=pakalpojumi/">Pakalpojumi</a></li>
           <li><a href="?page=kontakti-un-rekviziti/">Kontakti un Rekvizīti</a></li>
         </ul>
    
       </div>
    
       <div id="middle">
       </div>
    
       <div id="bottom">
       </div>
    
     </body>

     

    No šīs vietas tad var sākt skatīties un testēt uzrakstīto kodu. Uzspiežam uz pakalpojumiem (pēc tam arī uz kontaktiem) un paskatāmies vai vietnes nosaukums un "page source" redzamie meta dati mainās atbilstoši adresei. Pēc tam no adreses lodziņa nodzēšam no beigām kādu burtu un paskatāmies vai mūs aizmet uz sākumu. Garumzīmes nerāda kā nākas? Head daļā mums ir meta tags, kas norāda kodējumu. Vēl bez tā pirms html ieliekam rindiņu, kas aizsūtīs pārlūkam ziņu par satura kodējumu. Kā arī neaizmirstam, ka failam jābūt saglabātam "UTF-8 without BOM". (Notepad++ reizēm mēdz formatējumu pārslēgt pats, tā kā, ja pēkšņi nerāda garumzīmes/mīkstinājuma zīmes, vajag paskatīties, ko rāda "Format".)

     

     

    ...
    //  Charset Header
    header('Content-Type: text/html; charset=utf-8');
    
    ?>

     

    Izveidojam if struktūru un liekam saturu starp atbilstošiem html tagiem iekšā.

     

        <div id="middle">
    
    <?php if ($page == '') { ?>
    <h1>SIA "Mauris egestas"</h1>
     <p>SIA "<strong>Mauris egestas</strong>" aliquam ut est et odio
       consequat lacinia [...] faucibus</p>
     <p>Orci luctus [...] odio posuere  <strong>Vestibulum Ante</strong>
     dignissim nulla sodales vitae.</p>
    
    <?php } else if ($page == 'pakalpojumi') { ?>
    <h1>Pakalpojumi</h1>
     <h2>Scelerisque semper pakalpojumi:</h2>
       <ul>
         <li>Aliquam ut est et odio consequat lacinia.</li>
         [...]
       </ul>
     <h2>Praesent fringilla convallis molestie:</h2>
       <ul>
         [...]
       </ul>
    
    <?php } else if ($page == 'kontakti-un-rekviziti') { ?>
    <h1>Kontakti un Rekvizīti</h1>
     <h2>Kontakt informācija</h2>
       <table>
         <col span="1" />
         <col span="2" />
         <tr>
           <td>Tālruņi</td>
           <td>12345678; 12345678;</td>
         </tr>
         <tr>
           <td>E-pasts:</td>
           <td>test@localhost, info@localhost</td>
         </tr>
         [...]
       </table>
     <h2>Asistente</h2>
       <table>
         [...]
       </table>
     <h2>Rekvizīti</h2>
       <table>
         [...]
       </table>
    
    <?php } ?>
    
       </div>

     

    Apakšējā blokā ieliekam, lai rāda no kaut kāda gada līdz esošajam gadam un "Copyright".

     

        <div id="bottom">
    
         <p>2002 - <?php echo date('Y', time() + 60*60*2); ?> SIA "Mauris egestas"<br />
           Copyright © All right reserved!</p>
    
       </div>

     

    Vēl būtu jāizveido divi faili: robots.txt un sitemap.xml. Sīkāk par viņiem nerakstīšu, bet kā tādiem viņiem būtu jābūt, kaut arī šī ir ļoti, ļoti maza vietne un ieguvums no viņiem konkrēti šinī gadījuma tik pat kā nav.

     

    Pilns faila kods: paste.php.lv.

     

     

    Gribējās uzzināt vai kādam kas šāds būtu noderīgs un vai man turpināt ko šādu rakstīt. Kā arī gaidu jūsu ieteikumus, par ko rakstīt (iztiksim bez ar spēļu/trakeru saistītām lietām) un ko uzlabot rakstīšanas stilā. Pamatā doma ir nevis rakstīt visādus "niknos" rakstus kā tādus (nav tādu iemaņu), bet vairāk iet uz koda fragmenti + norādes/skaidrojumi.

  2. Saistībā ar Ziediņa jautāto.

     

    ffmpeg.php un fails tranzits.mp3 ir vienā vietā. Kļūdu ziņošana ir E_ALL.

     

    exec('ffmpeg -i tranzits.mp3 -acodec libmp3 -ab 128k -f flv tranzits.flv', $output = array(), $status);
    print_r($output); // array()
    print_r($status); // 1
    
    exec('/usr/bin/ffmpeg -i tranzits.mp3 -acodec libmp3 -ab 128k -f flv tranzits.flv', $output = array(), $status);
    print_r($output); // array()
    print_r($status); // 1
    
    exec('/usr/local/cpffmpeg/bin/ffmpeg -i tranzits.mp3 -acodec libmp3 -ab 128k -f flv tranzits.flv', $output, $status);
    print_r($output); // array()
    print_r($status); // 1
    
    echo exec('ls -l /usr/bin/ffmpeg'); // lrwxrwxrwx 1 root root 30 Mar 18 2009 /usr/bin/ffmpeg -> /usr/local/cpffmpeg/bin/ffmpeg
    echo exec('ls -1 /usr/local/cpffmpeg/bin/ffmpeg'); // /usr/local/cpffmpeg/bin/ffmpeg

     

    Flv fails neparādās. Ir kādas idejas, kas ir pa lietu? Kā vispārīgi var testēt exec ierakstītās komandas?

    Kaut kur lasīju, ka "libmp3" it kā ir jāpieliek pie ffmpeg un tad viņš jāliek augšā (jānokompilē?), kā var uzzināt vai viņš ir klāt esošajam ffmpeg vai nav?

     

    Tas viss notiek uz ārzemēs esoša hostinga.

  3. Kāds ir iemesls, ka tu realizē to ar klasēm? Vai vienkārši liekot pliku kodu failos un veidojot funkcijas nebūtu vienkāršāk? Vispārīgi, lai tiešām būtu jēga no OOP iespējām, nebūtu nepieciešams kas specifiskāks, nopietnāks? Vienkārši liekot php kodu klasē, tu zaudēsi uz ātrumu un ieguvums būs niecīgs vai nekāds. (Mana pieredze ar OOP ir neliela.)

     

    Man liekās, ka visādas validācijas izvirtības, kļūdu paziņojumi būtu jāliek klienta pusē, php puses validāciju atstājot koda ziņā vienkāršu. Vari uzmest aci jquery validācijas pluginam.

     

    Lietotāju autentifikācijai izmantoju vienkāršu failu ar pliku php kodu, ko ielādēju un viss. Pieslēgšanās forma parasti sanāk, ka ir augšā vai sānā, tas ir, viņai nav savas lappuses.

     

    Ar to reģistrēšanos varētu būt interesantāk. Ja ir kādas striktas prasības no pasūtītāja, tad jāpielāgojas. Vispārīgi pie reģistrēšanās lieku tikai pašu nepieciešamāko, to, kas lielos vilcienos ir visur. Papildus informāciju lieku atsevišķi un kā neobligātu. Reģistrējas un tad, ja vēlas, var aizpildīt savu tukšo profilu. Kā rezultātā reģistrācija vienāda visur, bet profilu var taisīt individuālu.

     

    Ja tu pamatosi, kāpēc OOP pieeja, kādas OOP nianses gatavojies izmantot, tad varētu arī būt, ka kādam rodas interese tev palīdzēt izdomāt klašu struktūru. Palīdzēt salikt vienkārši php kodu klasē, man nav intereses. Tā pat kā tu, es arī ceru, ka veidosies diskusija.

  4. Augšuplādē mp3, kuru uzreiz var noklausīties jaunizveidotā lapā, uz kuru automātiski tiek izveidots links.

    Ir divas daļas.

    Vienā padodot kaut kādu ID (.lv/muzika/?fileid=1234) tiek sameklēts atbilstošais fails, tā izpildītājs, nosaukums utt., tiek parādīta informācija un atskaņots fails.

    Otrā daļa ir failu augšupielāde. Tiek augšupielādēts fails un tā dati ielikti tabulā, pēc ielikšanas tiek pie ID (mysql_insert_id) un sūta lietotāju uz .lv/muzika/?fileid=mysql_insert_id().

     

    Lai nu kā, ir mazliet neskaidri, ko tu centies panākt, atvaino, ja neesmu sapratis pareizi.

  5. Uztaisi lappusi, kur tiek padots kaut vai fileID (.lv/muzika/fileID-iet-seit/) un kur tad, izejot no tā fileID, atskaņo atbilstošu failu. Augšupielādējot failu, tiec pie ID no tabulas (mysql_insert_id) un pārsūti viņu uz to lappusi, pieliekot galā atbilstošu fileID (.lv/muzika/1/).

    Lietas būtībai vajadzētu būt skaidrai.

  6. Interesanti, tikai cik no visām tīmekļa vietnēm tas viss (mega utt.) ir nepieciešams? Cik ilgā laikā līdz tādam līmenim var nonākt un ko darīt kamēr nonāk?

    Web Developer tu laikam darbojies šajā lauciņā ilgi, es tev pārtraukuma brīžos ieteiktu iet laukā pastaigāties (pats eju), nevis rakstīt divdomīgas tēmas. Tas ir tikai ieteikums, tavām tēmām ir arī gaišā puse, reizēm kāds uzraksta arī ko, kas ir saistošs jaunajiem darboņiem.

  7. Uztaisa masīvu ar burtiem un izmanto tikai ciparus vai ciparus papildus burtiem. Nedomāju, ka pliki burti URL kaut ko kādam tai skaitā googlei izsaka. Bet varu arī kļūdīties, neesmu SEO speciālists. Kas tev tas pa katalogu, ka dali pēc burtiem, nevis vārdiem. Kategorija kā vārds būtu tā kā labāk. Tad pārlūkošanu pēc burtiem var kā papildus elementu likt. Vēl jau vari pie 'a' rādīt gan 'a', gan 'ā'. Mazums, kas tev tur pa katalogu un vai varēs visi tikt pie 'ā' burta. Tā kā dalīts tiek pēc burtiem, tad jau ...

     

    Vispār es te ne to rakstu. Tu kategorijas, nevis lietas, gribi pēc alfabēta burtiem? Man tas kaut kā jocīgi izklausās, laikam pieredze par mazu. Padalies ar zināšanām, kas par kategorijām un kāds ir iemesls tam, ka viņas tiek dalītas pēc burtiem?

  8. Vispārīgi tas, kur un kā saturs novietojas, atbild HTML un CSS.

    Vai visi raksti augstumā ir vienādi? Kā tu esi iztēlojies, ja viens ir ļoti īss, bet blakus viņam ļoti garš, kas notiks apakšā? Kā tiks dizains pieskaņots?

    Vispārīgi ieskatam: liekot katru rakstu divā un liekot divam, atkarībā no apstākļiem, 40 - 50 % platumu un float (left vai right).

  9. Plašāk raksti, ko gribi panākt. Lai vienkārši "ieinkludotu lapu iekš index.php faila", ajax nav paredzēts. Palīdzēt var, tikai nāc ar konkrētu problēmu. Iesākumā tev būtu jāsaprot, kā tas viss process notiek. Ieskata gūšanai, vari paskatīties manu paša rakstīto failu: http://yy.lv/download.php?f=46169. Tikai ņem vērā, ka viņš ir rakstīts pasen, kad vēl JS zināšanas bija ļoti niecīgas.

  10. Mēģini background-position: 50px right;

    Lieto lūdzu referenci (w3schools.com).

     

    Vispār jau apmainot tos abus vietām man viss strādā: background-position: right 50px;

    Izskatās, ka w3schools.com ir kļūda (citur tas pats). W3c ir, ka [ left | center | right ] [ top | center | bottom ].

  11. CSS - background-image var likt tikai 'url'. Izmanto background: transparent url(/template/waplet/img/back_05.jpg) repeat-y 0 50px

    Lieto kādu reference - google => css reference.

    Paspēlējies ar html koda height, tiešām tev tur tie 100% strādā? Īsti neatceros, bet kaut kas bija ar tiem 100% augstuma.

    Par kādu līniju vispār iet runa (laikam esmu mazāk gudrs)? Atver paint un pagriez bildi par 180 grādiem?

  12. Eksperimentē. Uztaisi vienkāršu, kas iet, un kabini pamazām klāt visu pārējo.

    Iepēti, ko sevī ietver (.*). Man liekās, ka Delfina variants nestrādā, jo tur ir (.*), kā rezultātā pirmais paņem visu, kas ir aiz '?'.

    RewriteRule ^skripts.php\?([a-z0-9-]+)$ index.php?first=$1 [QSA,L]
    RewriteRule ^skripts.php\?([a-z0-9-]+)=([a-z0-9-]+)$ http://lapa.lv:777/$2/$1 [QSA,L]

  13. Ja tavs, tad tavs, neuzmanīgi paskatījos change_log.php.

     

    Pārsūtīšana servera pusē jāveic PIRMS jeb kāda output, tas ir, ne kādi echo un tamlīdzīgi nevar būt. Sīkākai informācijai pameklē te pat vai googlē to savu kļūdas paziņojumu.

    Ja gribi parādīt kaut kādus errorus un tad pēc kādām pāris sekundēm pārsūtīt, lieto html meta refresh (iemet googlē) vai veic kļūdu pārbaudi ar javascript un izvadi uzreiz, un tad servera pusē tikai pārbaudi, bez kļūdu paziņojumu izvades. Varēs headeri normāli pielietot.

     

    Paskaties google par sql injection, php good or bad global un darbojies, viss nāk ar laiku.

     

    Pamēģini vienkārši izvākt tos <?php ?>, kas ir 4-6 rindiņā, lai nav tukšums.

  14. Manas domas!

    Labāk sāc no nulles, ne kā izmanto, ko šādu. Tur ir paliels sviests. Šāda pamācīšanās php praksē novedīs pie īpatnējiem kodiem, ko retais sapratīs. Mēģināt kaut kādu gatavo risinājumu, kas neiet, piedabūt pie strādāšanas, es gluži par "pamācītos PHP praksē" es nesauktu. Lielākoties, lai to varētu darīt ir jau jābūt kādai praksei - jābūt skaidrām pamata lietām.

     

    Lai nu kā, ja darbosies tālāk ar šo pašu, tad būs pagrūti tev ko palīdzēt, jo nāksies tev teikt pārtaisīt ļoti daudz ko, lai "tas errors tur nebūtu".

    Sāc ar pamācībām, kur soli pa solim veido kādu scriptu un stāsta kas ir kas, bez angļu valodas būs pašvaki, ir arī materiāli krieviski un citās valodās.

  15. Ja tev rāda kļūdu, kurā rakstīts, ka fails nav atrasts, tad ceļu neesi pareizi norādījis. Beidz rakstīt uz dullo, bet saproti, kas ir kas

     

    No such file or directory in /home/symbianf/public_html/4tus.lv/home/inc/latest_posts.php on line 79
    Kas ir ar to 'home/inc'? Kādēļ, ja ir foruma sastāvdaļa, 'latest_posts' stāv tur? Tev ir tāda direktorija 'forums' un viss ar forumu saistītais arī tur stāv vai kur citur?

     

    echo $_SERVER['DOCUMENT_ROOT']; // Šis izvada '/home/symbianf/public_html/4tus.lv/'?

  16. Sāc ar to, ka izlabo neuzmanības kļūdu: $restult un $result.

    1) Nerāda, jo $result parādās kaut kur iepriekš, tas ir, tāds mainīgais eksistē.

    2) Paskaties ar mysql_num_rows cik ieraksti tiek atgriezti, vai vispār ir ko rādīt. (Tabulā ir kāds ieraksts, $connection ir uz īsto datubāzi utt.)

×
×
  • Create New...