Jump to content
php.lv forumi

rudzis

Reģistrētie lietotāji
  • Posts

    159
  • Joined

  • Last visited

Posts posted by rudzis

  1. lietotāja sessijas laikā ir jāpieglabā vai posts kas uztaisīts pēc sessijas sākuma ir izlasīts. glabāt var laikam arī cookijos, vismaz šis formus laikam tā dara (cookijs forum_read)

    Bet ja nu useris ir logojies iekšā simtiem reižu, bet vienu tēmu par spīti nelasa? Tad taču tā jārāda kā jauna/nelasīta! Nepietiek glabāt tikai pagājušajās sesijas laikā lasītās.

     

    Būtībā es jau neesmu papētījis lielos forumus - varbūt arī šeit vecas, bet nelasītas tēmas netiek iezīmētas kā nelasītas.

  2. Paldies, esmu apgaismots :)

     

    Vēl viena problēma - kamēr useris bij aktīvs, nekur nav teikts, ka viņš tik tālu visus postus ir izlasījis. Tātad par jauniem būtu jāuzskata visu posti, kas nav lasīti, nevis tikai kopš pēdējās darbības ierakstītie.

     

    Kādas idejas?

  3. Ir tāds primitīvs forums: vairāki "general topiki", iekš kuriem iet useru aizsākti thread'i, un kuros tiek rakstītas atbildes. Tāpat kā šajā forumā. Mēģinu izštukot kā būtu labāk īstenot jaunāko thread'u izcelšanu (t.i. rādīt blakus savādāku ikonu utt.).

     

    Bij doma glabāt failā katra lasītā thread'a ID, un blakus skaitu ar atbilēm, bet tad rodas vairākas problēmas - pie vairākiem simtiem tēmu fails jau ir pārāk liels, lai viss ietu gludi, jo katrreiz atverot forumu ir jāiet cauri visam tam failam. Šis atkrīt.

     

    Vēl bij doma glabāt kaut kādu datumu, no kura, skaitit uz augšu, postētās tēmas būtu uzskatāmas par jaunām, un tad glabāt failā lasīto tēmu ID, kas neaizņemtu daudz vietas, jo, kad mainītos saglabātais datums, tad viss sāktos no jauna. Rodas jautājums - kad ieseivot to datumu, no kura sākt skaitīt jaunos postus?

     

    Iespējams, ka tagad domāju nepareizā virzienā, tāpēc jautāju pārējo viedokli.

  4. Ja daudzas no lapas funkcijām ietilpst vienā failā, tad savajagās iztīrīt POSTDATA, lai spiežot 'back' neprasītu, vai tikko lietotās formas datus nevajag padot vēlreiz. Droši vien ir kāds risinājums tā apiešanai, vai ne?

  5. Nupat laikam atradu problēmu. Visa tā lapa tiek veidota UTF-8 kodējumā, tāpēc visus failus saglabāju kā UTF-8. Tagad to login.php, kurš lieto kūķus pārliku atpakaļ uz ANSI un viss notiek!

     

    Bet tomēr, fakts ir tāds, ka uz cita serva darbojās arī tā.

  6. Iestartējot datoru, un at Firefox atverot lapu no lokālā servera, nedarbojas cookies. Mēģināju atvērt arī ar IE. Browserī ar cookies viss ir kārtībā, un to pašu lapu uzliekot uz cita servera, arī viss ir kā nākas. Mēģināju lokāli atvērt citu lapu, kas lieto cookies, bet tur jamie darbojās. Varbūt tam kāda saistība ar headeriem?

     

    Pārinstalēju gan Apache, gan PHP, bet nekas nemainās. Nekādi trojāni parādījušies it kā nav. Dīvaini, jo vēl pa nakti viss darbojās, bet tagad pēkšņi vairs ne. Ja kas, man ir WinXP.

     

    Kur varētu būt problēma?

  7. Es jau ar atstātu ar caurumiem ;) kaut vai tādēļ, ka pazūd saite uz to konkrēto ierakstu.

    A ja nu kāds ielinkojis?

    21140[/snapback]

    Ielinkošana tur noteikti nebūs aktuāla problēma, jo tas viss (galerijas) būs pieejams tikai pēc ielogošanās.

  8. Hoorey! Es to paveicu! :) Ar while gāju cauri galerijām, kas jaunākas par dzēšamo (sākot ar jaunāko), tur pat ar for cikla palīdzību nomainīju vajadzīgos failu nosaukumus, un beigās vēl izdzēsu tās bildes, kuru galerija bija jādzēš.

  9. --- ../data/users/$id/ ---

     

    /gal/
    gal.txt

     

    --- gal.txt saturs ---

     

    pirmaa galerija|2
    naakamaa galerija|2
    pr0n galerija|1

    (cipari ir pieejas tiesības (nav svarīgi))

    --- ../data/users/$id/gal/ ---

     

    1_1.jpg
    1_2.jpg
    1_3.jpg
    1_4.jpg
    2_1.jpg
    2_2.jpg
    1.txt
    2.txt
    ...

    1.txt un 2.txt saturs ir tie paši bilžu failu nosaukumi - katrā failā savi.

     

    Galerijas nosaukuma dzēšana no faila "../data/users/$id/gal.txt" notiek apmēram šādi:

    $del = $_GET['del']; // dabonam ciparu
    $gal_f = file("../data/users/$id/gal.txt");
    $gal = fopen("../data/users/$id/gal.txt", "w"); // atveram
    for($s = 0; $s < count($gal_f); $s++) {
    if($s != $del - 1) { // ja rinda nav dzeeshamaa...
    fwrite($gal, $gal_f[$s]); // ...rakstam atpakalj
    }}
    fclose($gal);

     

    Pēc šī ir kods, kurš vismaz mēģina izdarīt svarīgāko - aizpildīt robus ID, rīneimojot indeks failiņus un bilžu failus. Mans kods ir pārāk perverss, turklāt nestrādā, ja dzēšamā galerija ir pa vidu, tāpēc nav pat jēgas rādīt.

     

    Tagad vajadzēti to kodu uzrakstīt, bet īsti nezinu kā panākt, lai aizpildītu caurumus VIRS dzēšamā ID. bubu, nu gribās man sirdsmieru - lai nav to tukšumu :)

  10. A kāpēc jāsmazina citu galeriju indeksu numuri, ja dzēš ārā?

    Dari tāpat kā mysql uz AUTO_INCREMENT kolonnu - visu laiku palielina skaili. Dzēšot rindas ārā nekas nenotiek, tb par jaunu liktais ieraksts +1 no pēdējā ieliktā, neatkarīgi no izdzēstajiem robiem pa vidu.

    21085[/snapback]

    Nu varētu jau arī šādi, un, visticamāk ka tā arī darīšu, bet gribējās tomēr tā tīri - lai viss sabidās, un nav to tukšumu.

     

    P.S. Nākamajā postā mēģināšu parādīt, kā es to visu iedomājos.

  11. Ir aptuveni izveidota galeriju sistēma, bet problēmas ir ar atsevišķu galeriju dzēšanu. Vienkārši sāk aptrūkties idejas, kā lai to visu sataisa.

     

    1. Tātad, kad tiek izveidota galerija, tad failā "../data/users/1/gal.txt" tiek ierakstīts "galerijas_nosakums|1\n" (Cipars aiz nosaukuma ir pieejas tiesības, kas šobrīd nav svarīgi).

     

    2. Kad izveidotajā galerijā ielādē bildi, to ieliek direktorijā "../data/users/1/gal/" un nosauc par piem. "1_1.jpg", kur pirmais vieninieks ir galerijas numurs un otrs - bildes numurs. Katrai galerijai bilžu skaits sākas no 1.

    Uzreiz arī failā "../data/users/1/gal/$index.txt" tiek ierakstīts bildes faila nosaukums ("1_1.jpg\n"), lai tās pēc tam var ērti indeksēt. Tas arī šobrīd nav tik svarīgi.

     

    ($index - galerijas ID)

     

    Galerijas dzēšana

     

    Kad ar $_GET tiek padots id, kuru galeriju jādzēš, tiek noskaidrots, vai šī ir pati jaunākā, un ja ir, tad vienkārši tiek izdzēsts tās nosaukums no to faila ../data/users/1/gal.txt, izdzēsts bilžu indeksa fails (../data/users/1/gal/$index.txt) un izdzēstas visas šīs galerijas bildes (kuru nosaukums sākas ar galerijas ID), bet jā šī nav jaunākā, un ir kaut kur pa vidu, tad sākas problēmas.

     

    Teorētiski vajadzētu visu galeriju, kuru ID ir lielāki, index failu nosaukumus katru par vienu samazināt, un arī šo galeriju bildes pārsaukt ar mazākiem pirmajiem cipariem.

     

    Mēģināju šo visu īstenot ar dažu for ciklu palīdzību, bet nevarēju atrast kompromisu starp abiem gadījumiem: dzēšamā galerija ir pati jaunākā vai pati vecākā UN dzēšamā galerija ir kaut kur pa vidu.

     

    Droši vien grūti saprast šos manus murgus, bet nu paskaidroju kā mācēju. Es tiešām vairs nezinu kur likties. Te taču nav nekā pārāk sarežģīta, bet tomēr nevaru viens pats izdomāt.

     

    P.S. Nesitiet pa lūpām!

×
×
  • Create New...