Jump to content
php.lv forumi

Login, register, gallery, ect.


Māris Skrīvelis

Recommended Posts

Man ir doma uztaisīt beidzot vienu lielu, nopietnu lapu, taču pirmīt ar PHP nekad neņēmos, domāju uzjautāt palīdzību, precīzāk, pajautāt, vai manas domas ir kaut cik pareizas.
Lai dabūtu lietotāju info, man ir ap 10 ailēm, kurām ir savi name un viss, kā vajag, respektīvi, man ir :

Vārds, uzvārds, pilsēta, rajons, pasta indekss, lietotājvārds, parole, atkārtotas paroles lauki

Pirmais, ko daru, ir izveidot mysql tabulu, priekšgalā vēl nolieku primary key, auto_increment id aili.

Tagad domāju, kas tālāk notiksies...
Katrā lapas sākumā jābūt sesijas sākumam, cik noprotu.
Register lapā man ir forma ar post metodi, ar visiem name un pārējo, kā vajag.
Tagad man ir grūti iedomāties, kā tas viss tur savā starpā dalās ar informāciju.
Es pieņemu, ka man iekš php ir jānodefinē, piemēram $username atbilstoši username lauka name.
Tad nolasītie lielumi ar php scriptu jāpievieno mysql tabulai kā ieraksts.

Nākamais ir jautājums par ielogošanos...
Cik noprotu, man nāksies vēlreiz kārtīgi izstudēt kas ar tām sesijām un cepumiem notiek.
Bet ideja tāda, ka ievadot datus, datubāze atrod konkrētu lietotāju un ielaiž viņu sistēmā.
( Līdz ko esi pierkastījis, man ir nepieciešams enable`ot "mans profils" dropdown ikonu, kurā ir iespējams atkal apskatīt citas datubāzes ierakstus, piemēram, pirkumu vēsture)
Kā tas notiksies, man pagaidām nav ne jausmas, noderētu kāds padoms no jūsu puses uz ko man skatīties.

Āķīgi arī būs izveidot admin paneli.
Es pieņemu, ka tai jābūt atsevišķai lapai, kura navbara lapu sarakstā parādās tikai tad, ja ielogotais useris ir ar admin privilēģijām ( pievienot user tabulā boolean aili, kas default ir false ? )
Būs nepieciešams dzēst/pievienot/rediģēt pakalpojumu sarakstu un galerijas item sarakstu. Tātad arī tur apakšā laikam jābūt datubāzēm.

-) Pievienošana notiks ievadot paneļa lapā ailēs ievadot informāciju un pievienojot attachment. Pēc tam ar script pievieno datubāzē ierakstu. Jautājums kā mājaslapa uzrādīs visus ierakstus ?
Piemēram, ir 20 galerijas datubāzes ieraksti ( nosaukums, apraksts un pati bildes adrese(?) ) Lapa kaut kādā ciklā izvada katru ierakstu, ievietojot katru ierakstu iepriekš sagatavotā html kodā?

Pagaidām vairāk neplānošu uz priekšu, paskatīšos, ko varat tik tālu ieteikt man, pilnīgam iesācējam.

Plānots izmantot Bootstrap 3.3.7, HTML5, CSS3, par PHP versijām esmu neziņā, pieņemu, ka septīto versiju.
 

Link to comment
Share on other sites

Pa lielam domu gājiens šķiet pareizs. Ieteiktu sākumā nelauzīt galvu par CSS versijām, bet koncentrēties uz kopējo vietnes struktūru un funkcionalitāti. Sākumā izveidot primitīvu strādājošu prototipu bez kādiem CSS, neglītu pēc velna, lai ļauj izprast tieši šīs lietas, par kurām Tu runā. Smukumu pietaisīt pēc tam. Galvenais atceries atdalīt funkcionalitāti no stila, ja sajauksi formatējumu kopā ar kodu, būs praktiski neiespējami bez 90% pārtaisīšanas ko pamainīt.

Visi kā aptrakuši pēc Bootstrap, bet nelielam projektam tas ir overkill, dabūsi vairāk laika cīnoties ar nesavietojamībām, nekā darot lietderīgu darbu. Var mēģināt kādu no minimālistu freimworkiem, kā Foundation vai Skeleton. Arī jQuery, kas tagad skaitās pats par sevi saprotams, tāds nemaz nav, un kādreiz labāk izmantot pliko JavaScript. Savādāk vienai mazai štrunta lapai ar diviem paragrāfiem teksta mūsdienās velkas līdzi vagons ar bibliotēkām, kas ļauj šos divus paragrāfus atainot precīzi tādā pašā veidā kā divi miljoni citās lapās ... pēc 5 minūšu ielādes.

Sāc tik programmēt un rocies pa Google. Tur ir atbildes uz visiem jautājumiem ar jau gataviem piemēriem. Galvenais ir piešauties ātri meklēt un izšķirot lielu informācijas daudzumu, paturot derīgās kripatas.

Tā vienkārši forumā neviens to nevarēs izstāstīt. Sāc tik darīt un būs.

Edited by Leotard
Link to comment
Share on other sites

54 minutes ago, Leotard said:

Pa lielam domu gājiens šķiet pareizs. Ieteiktu sākumā nelauzīt galvu par CSS versijām, bet koncentrēties uz kopējo vietnes struktūru un funkcionalitāti. Sākumā izveidot primitīvu strādājošu prototipu bez kādiem CSS, neglītu pēc velna, lai ļauj izprast tieši šīs lietas, par kurām Tu runā. Smukumu pietaisīt pēc tam. Galvenais atceries atdalīt funkcionalitāti no stila, ja sajauksi formatējumu kopā ar kodu, būs praktiski neiespējami bez 90% pārtaisīšanas ko pamainīt.

Visi kā aptrakuši pēc Bootstrap, bet nelielam projektam tas ir overkill, dabūsi vairāk laika cīnoties ar nesavietojamībām, nekā darot lietderīgu darbu. Var mēģināt kādu no minimālistu freimworkiem, kā Foundation vai Skeleton. Arī jQuery, kas tagad skaitās pats par sevi saprotams, tāds nemaz nav, un kādreiz labāk izmantot pliko JavaScript. Savādāk vienai mazai štrunta lapai ar diviem paragrāfiem teksta mūsdienās velkas līdzi vagons ar bibliotēkām, kas ļauj šos divus paragrāfus atainot precīzi tādā pašā veidā kā divi miljoni citās lapās ... pēc 5 minūšu ielādes.

Sāc tik programmēt un rocies pa Google. Tur ir atbildes uz visiem jautājumiem ar jau gataviem piemēriem. Galvenais ir piešauties ātri meklēt un izšķirot lielu informācijas daudzumu, paturot derīgās kripatas.

Tā vienkārši forumā neviens to nevarēs izstāstīt. Sāc tik darīt un būs.

Es samērā nesen sāku mācītes visu to Bootstrap padarīšanu un OOCSS stilu pēc lielas pauzes no pamatskolas zināšanām. Sāku bakstīties ar bootstrapu, iepatikās, aizgāja lēnām, pielietoju, kur vajag. Saprotu arī tavu domu par tām milzīgajām bibliotēkām, kas velkas visur līdzi un bremzē pagastu. Bet no domas par to, ka koledžas galadarbu taisīšu Bootstrapā, laikam neatkāpšos. Plānā ir taisīt lapu, kura nebūs baigi milzīgā, kurai nebūs arī milzīga lietotāju plūsma cauri ikdienā. max 100 cilvēki dienā izietu cauri, tā kā noslodze nebūs kritiska.. ja vien nebūs DDOSošana vai kas tamlīdzīgs.Bet pret to pie hosta var paķert kā papildpaketi aizsardzību. 

Toties tīri css rakstīt bez bootstrapa aizņems lielu daļa laika. Vismaz man ir tāda nojausma. Man tīri labi patīk container-row-col ideja, jo viss ir ļoti viegli saprotams kodā un ātri uztaisams un savā būtībā jau uzreiz ir responsīvs pats par sevi. Vai arī es vienkārši vēlos pie viņa pieturēties, jo tad man kodā nevalda tik liels bardaks, bet jau konkrēta secība gan uzbūvē, gan nosaukumos ir arī loģika.

Vienīgi es sāku vēl domāt - ja man Kontaktos būs forma, kur jebkurš lietotājs var nosūtīt epastu adminam ( pieņemsim, uz privātu mikrouzņēmuma gmailu ), kā notiks tā nosūtīšana ? Lapa jau nevar no zila gaisa nosūtīt uz tavu epastu ziņu, tātad vajadzēs apakšā kaut kādu adresi zem pašas lapas palikt, lai ir no kurienes sūta, ne ?

P.s. man bija doma taisīt galadarbā spēlīti c++`ā, kas man arī pagiadām ir spēcīgākā zināšana, bet atteicos no idejas un nolēmu mēģināt lapu, jo ja taisītu, bija doma unreal enginā. es 2 mēnešu laikā pa pāris stundiņām nedēļā iemācījos vien uztaisīt rotējošu objektu spēles dzinējā, jo lielākā daļa pamācības negāja atšķirīga engine versijas dēļ. Un tur tie visi konstruktori, bibliotēkas, klases, mantošanas, superklases un pārējais ir tāds murgs. + līdz ko tev izmainās engine versija kaut par simdaļu no tā, kas ir pamācībā, tev ofc kkas neies. Tādēļ es padevos spēlīšu idejai, bet Unity nepievilka :D

P.s.s. Paldies par tavu info :) Mēģināšu darīties brīvajā laikā.

EDIT : Es sāku domāt par MySQL databse useriem. Ir kādi ieteikumi, cik jābūt garam INT id ailei ? Parasti visiem ir 10-12, bet es šaubos, ka man tik daudz būs nepieciešams, ja plānoju veidot mājaslapu mikrouzņēmuma prezentēšanai un pakalpojumu uzrādīšanai. ( tās visas datubāzes nepieciešams tīri tādēļ,  lai koledžā galadarbu pieņemtu, citādi ir tīrs vizuālais bez programmēšanas. ) . Es pieļauju, ka ar kkādu 6nieku vai 7nieku iekavās pietiks, ne ? Citādāk lieki atmiņu noēdīs.

Edited by Māris Skrīvelis
Link to comment
Share on other sites

Varbūt labak uzinstalet Yii2 (http://www.yiiframework.com/doc-2.0/guide-start-installation.html ) un pielikt vajadzīgos moduļus. Vienā ziņā no jauna ir izgudrot velosipēdu ir ļoti labi pieredzes uzkrāšanai, bet tajā pašā laikā jāmācas izmantoto un pielāgot esošos risinājumus.

Edited by l27
Link to comment
Share on other sites

9 minutes ago, l27 said:

Varbūt labak uzinstalet Yii2 (http://www.yiiframework.com/doc-2.0/guide-start-installation.html ) un pielikt vajadzīgos moduļus. Vienā ziņā no jauna ir izgudrot velosipēdu ir ļoti labi pieredzes uzkrāšanai, bet tajā pašā laikā jāmācas izmantoto un pielāgot esošos risinājumus.

Doma jau nav slikta. Ņemšu vērā ieteikumu, papētīšu.

Link to comment
Share on other sites

turpmākie soļi:

- izdomāt vai tas 3.5 gadus senais Yii 2.0 ir īstais FW,
- izvēlēties Symfony vai Laravel,
- saprast, ka eksistē gatavi CMS,
- izvēlēties leģendāro WordPress un mazliet vairāk par bezgalību tā moduļus

ja nopietni, tad noteikti nekoncentrējies uz tik lielu mikrodetalizāciju kā 6-7 vai 10-12 mainīgā garumu (vismaz kamēr projekts nav izaudzis līdz tam)

 

 

Link to comment
Share on other sites

Symfony galvenās problēmas:

  • YAML
  • Doctrine
  • Twig
  • Anotation

Kad pastradāts ar Symfony un Yii, ļoti labi var saprast, kapēc Yii tieši tā taisīts. Ar Lavaral neesmu strādājis un atturēšos komentēt.

Yii2 nav nemaz tik vecs, jo ir regulāri labojumi, bet nav revolūcijas (laikam sanācis uzreiz labs). Ja vajag ilgspelējosu projektu (piemēram gadi 5), tad ir ļoti labi, ka nav ntās revolucionāras versijas.

Edited by l27
Link to comment
Share on other sites

Man vienkārši ir funkcionālās un nefunkcionālās prasības uz lapām sadrukātas rokrakstā, ja ir vēlme, varēšu vēlāk te iemest. Uz WordPresu nav dižā vēlme pāriet, jo tomēr man vajag pašam programmēt visas datubāzes utt, man vajag, lai ir pēc iespējas vairāk kas manis rakstīts. Galadarba noteikums bija, ka jābūt vismaz 1000 savām rindiņām kodā, kas nav html vai css, jo tā nav programmēšana. Ar Wordpresu vienreiz pabagstījos, viss likās tik ļoti nesaprotams, kaut gan gadu laikā varbūt ir daudz kas mainījies. Kādreiz viņš man likās vāks. Bet tā kā man vajag savākt 150 no 200 maksimālajiem punktiem par galadarbu, kurš sastāv no koda un dokumentācijas, esmu nolēmis drukāt pēc iespējas vairāk pats. Labāk apgūšu php daļēji, kopējot no interneta un citādi, nekā ņemšos vēl ar WordPress iepazīšanu, sazin vēr radīsies nervu bojājumi no tiem visiem pluginiem un vēl sazin kā. 

Par to Yii vai kā tur. Es viņam uzmetu aci, liekas  paveca fīča. It kā jau skan labi - OO PHP. Bet no otras puses - vai tas neradīs liekus sarežģījumus nekā atvieglojumus ?
Šoreiz man ir svarīgi uztaisīt funkcionējošu mājaslapu tīri kā priekš sevis, nevis kā milzīgu projektu. Es pieņemu, ka es gribēšu pēc iespējas mazāk visādus addonus, pluginus, bibliotēkas un visu citu. It kā tas Yii esot viegls un kruts, bet es baidos viņam pieskarties :D Man pašlaik ir doma tikt sveikā cauri ar Html , css, mysql, php un js valodām. Tad jau redzēs, kas notiks tālāk, jo man laiks ir limitēts - līdz jūnijam visam jābūt gatavam, tā kā tagad viss notiek uz degošām kājām.. Ja būs pēc tam vēlme un laiks, es noteikti ielūkošos visādos brīnumos, bet pašlaik man tikai liekas, ka tie ir situācijas sarežģījumi.
 

Edited by Māris Skrīvelis
gramatika
Link to comment
Share on other sites

12 hours ago, Māris Skrīvelis said:

Vienīgi es sāku vēl domāt - ja man Kontaktos būs forma, kur jebkurš lietotājs var nosūtīt epastu adminam ( pieņemsim, uz privātu mikrouzņēmuma gmailu ), kā notiks tā nosūtīšana ? Lapa jau nevar no zila gaisa nosūtīt uz tavu epastu ziņu, tātad vajadzēs apakšā kaut kādu adresi zem pašas lapas palikt, lai ir no kurienes sūta, ne ?

Nu, saprotams. Lai ņem admina adresi no konfigurācijas faila vai datutubāzes, bet sūtītājs lai savu ieraksta kontaktformas lodziņā.

Pati sūtīšana jau ir vienkārša. No konteksta izrauts apgraizīts piemērs zemāk. Atceries tik, ka subjektā latviešu burti lai visiem rādītos, subjekts ir atbilstoši jākodē, kā te redzams.

$message = "Viens, viens...";

$to = "[email protected]";

$headers = "From: [email protected]" . "\r\n";
$headers .= "Bcc: [email protected]" . "\r\n";
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8" . "\r\n";

$subject = "Šī ir pārbaude žšč";
$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';

mail($to, $subject, $message, $headers) or die("Error. Mailing request failed.\n");

Reference: https://secure.php.net/manual/en/function.mail.php

Edited by Leotard
Link to comment
Share on other sites

11 hours ago, Māris Skrīvelis said:

EDIT : Es sāku domāt par MySQL databse useriem. Ir kādi ieteikumi, cik jābūt garam INT id ailei ? Parasti visiem ir 10-12, bet es šaubos, ka man tik daudz būs nepieciešams, ja plānoju veidot mājaslapu mikrouzņēmuma prezentēšanai un pakalpojumu uzrādīšanai. ( tās visas datubāzes nepieciešams tīri tādēļ,  lai koledžā galadarbu pieņemtu, citādi ir tīrs vizuālais bez programmēšanas. ) . Es pieļauju, ka ar kkādu 6nieku vai 7nieku iekavās pietiks, ne ? Citādāk lieki atmiņu noēdīs.

:D Ja vien Tev nav 1 000 000 useri, nedomāju, ka mūsu laikos tas kādu varētu īpaši uztraukt. Koledžā gan Tev var laikam pasniedzējs principa pēc piesieties par pārmērigi gara id izmantošanu, jo teorētiski tā ir izšķērdība, nezinu.

Vispār, ja id Tev ir INT, tad runa ir nevis par ailas platumu, bet par mainīgā tipu. SMALLINT UNSIGNED varētu reālistiski būt Ok: 0..65535. Nu labi, ņem MEDIUMINT UNSIGNED, lai ir drošs, tas ir max 16777215 - visās trīs Baltijas valstīs kopā nav tik daudz iedzīvotāju, vajadzētu pietikt... :D 

Reference: https://dev.mysql.com/doc/refman/5.7/en/numeric-type-overview.html

Link to comment
Share on other sites

7 hours ago, Leotard said:

:D Ja vien Tev nav 1 000 000 useri, nedomāju, ka mūsu laikos tas kādu varētu īpaši uztraukt. Koledžā gan Tev var laikam pasniedzējs principa pēc piesieties par pārmērigi gara id izmantošanu, jo teorētiski tā ir izšķērdība, nezinu.

Vispār, ja id Tev ir INT, tad runa ir nevis par ailas platumu, bet par mainīgā tipu. SMALLINT UNSIGNED varētu reālistiski būt Ok: 0..65535. Nu labi, ņem MEDIUMINT UNSIGNED, lai ir drošs, tas ir max 16777215 - visās trīs Baltijas valstīs kopā nav tik daudz iedzīvotāju, vajadzētu pietikt... :D 

Reference: https://dev.mysql.com/doc/refman/5.7/en/numeric-type-overview.html

:D
Bet jā.. taisot jau dokumentācijas pirmās man aizrādīja, ka, ja man stāvēs 10 iekavās, tad tā ir lieka atmiņas tērēšana utt, tpc iešāvās galvā tā idjea par iespējamajiem garumiem. ( 90% audzēkņi taisa no sākuma dokumentāciju neeksistējošam darbam un tad apšu darbu uztaisa, jo vnk dokumentācija jāuztiasa 6 mēnešu garumā rupji rēķinot. Pirmajos divos mēnešos jauztiasa funkcioālās prasības, nefunkcionālās prasības un  )

P.S. Paldies par noderīgo matreālu

Link to comment
Share on other sites

Ņem par labu!

4 hours ago, Māris Skrīvelis said:

 ja man stāvēs 10 iekavās, tad tā ir lieka atmiņas tērēšana

Ja Tu ar to domā 10 pozīcijas lietotāja saskarnes lodziņā, tad tas reāli nav saistīts ar datubāzes atmiņas izmantošanu. Tas pats MEDIUMINT UNSIGNED (kas reāli glabājas datubāzē) nosedz diapazonu no "0" (viena pozīcija, viens cipars), līdz "16777215" (8 pozīcijas). Ja gribi, vari noformatēt stringu labākai salasāmībai kā "16 777 215" un būs Tev 10 pozīcijas lodziņā pie tā paša vietas patēriņa datubāzē. Ko es gribu teikt - tas kas ir datubāzē un tas ko redz lietotājs ne vienmēr ir tas pats, tas ir jāapzinās.

Bet vispār - roc Googli. Tādās vietās kā Stackoverflow cilvēki jau ir izrunājuši lielāko daļu no tā, kas var jebkad ievajadzēties.

Lai veicas!

Papildinājums:

Pielēca, ka Tu domā konkrēti MySQL parametrus,  tipa "INT(10)". Tad viss kļūst vēl interesantāk. Tici vai ne, bet tam nav nozīmes. Tas ir tikai atainošanas mērķiem. Reālo atmiņas patēriņu nosaka datu tips.

Quote

The display width of the column does not affects the maximum value that can be stored in that column. A column with INT(5) or INT(11) can store the same maximum values. Also, if you have a column INT(20) that does not means that you will be able to store 20 digit values (BIGINT values). The column still will store only till the max values of INT.

Reference: https://www.virendrachandak.com/techtalk/mysql-int11-what-does-it-means/

Izstudē šo rakstu, un Tu būsi zvaigzne pasniedzēja acīs. Dabūsi plus punktus. Vai arī mīnus. Par to, ka zini lietas, ko pasniedzējs pats nezina. :D

Edited by Leotard
Link to comment
Share on other sites

3 minutes ago, Leotard said:

Ņem par labu!

Ja Tu ar to domā 10 pozīcijas lietotāja saskarnes lodziņā, tad tas reāli nav saistīts ar datubāzes atmiņas izmantošanu. Tas pats MEDIUMINT UNSIGNED (kas reāli glabājas datubāzē) nosedz diapazonu no "0" (viena pozīcija, viens cipars), līdz "16777215" (8 pozīcijas). Ja gribi, vari noformatēt stringu labākai salasāmībai kā "16 777 215" un būs Tev 10 pozīcijas lodziņā pie tā paša vietas patēriņa datubāzē. Ko es gribu teikt - tas kas ir datubāzē un tas ko redz lietotājs ne vienmēr ir tas pats, tas ir jāapzinās.

Bet vispār - roc Googli. Tādās vietās kā Stackoverflow cilvēki jau ir izrunājuši lielāko daļu no tā, kas var jebkad ievajadzēties.

Lai veicas!

Nu es uz ātro skatoties tutorialus sapratu, ka taisot primary key iekš mysql tabulas tas INT(10) apzīmē to, ka numerācija ir integer tipa lielums, ar izmēru līdz 10 silmboliem, respektīvi, no 1 līdz 9 999 999 999. Es pieņemu, ka esmu saputrojies, ja ? :S

Un yeah, ik pa laikam parokos google, kad ir laiks, taču parasti nekur baigi dziļi neielīdu. šoreiz vienīgi atradu šo forumu, lai ieklausītos citu idejās un ieteikumos.

Edited by Māris Skrīvelis
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...