Jump to content
php.lv forumi

tomaac

Reģistrētie lietotāji
  • Posts

    92
  • Joined

  • Last visited

Posts posted by tomaac

  1. Kad lietotājs raksta username/password, man ir pārbaude - vai tads lietotājs eksistē u.tml. un tad, ja datu baazee ir tieshi viens tāds lietotājs, tad uzliek šo

    $_SESSION["hash"] = md5(session_id()); (nezinu kur, bet kaut kur tādu izrakstu).
    

     

    Tad attiecīgi index.php faila sākumā man ir tas session_start un pārbaude vai ir uzstādīta sesija

    (if (isset($_SESSION['hash']) && $_SESSION['hash'] == md5(session_id())).
    

     

    isset lietoju, citādi rāda Notice, ka nav tāds $_SESSION['hash']

     

    Nesapratu īsti, kādēļ tas nav pareizi... (tādā ziņā viss strādā, bet varbūt nesaprotu ko...)

     

    R.

  2. Vai idejiski pareizi šādi pārbaudīt vai lietotājs ir ielogojies:

     

    Logojoties uzstāda sesiju:

    $_SESSION["hash"] = md5(session_id());
    

     

    Kad vajaga pārbaudīt vai ielogojies (index.php lapas augšā vai vēl kaut kur):

    session_start();
    if (isset($_SESSION['hash']) && $_SESSION['hash'] == md5(session_id()))
    {
    $is_loged = 1;
    }
    else
    {
    $is_loged = 0;
    }
    

  3. Kā tikt vaļā no @?

    Tieksim, ja pie $result = mysql_query($sql); notiks sql kļūda, kā to apstrādāt?

     

    codez:

     

    Šoreiz atstāšu kalsi kā ir, bet nākamreiz mēģināšu tavu pieeju ar ORM. Šoreiz ir pārak mazs projekts, lai taisītu tadu... man liekas. Varbūt var kāds ieteikt - kādu ORM klasi vai linku, kur par to izlasīt?

  4. Paldies par atbildi un pacietību visu izlasīt :D

     

    Par šo risinājumu vēl:

     

    1) Ar "SELECT" mana prolblēma bija tāda:

     

    Es nodefinēju manā meta tabulā kolonnas, piemēram, "username", "tbl_users", "text" utt.

    Tālāk es kodā rakstīju select username from tbl_users

    Tālāk es ar noteicu kādas kolonnas tika padotas selectā un pēc kolonnas+tabula atradu manā meta tabulā atbilstošo ierakstu.

    Tātad manā risinājumā kolonnu nosaukumus es nolasu no SELECTa.

     

    Tagad, jaman ir NEW forma, tad kkjā šitais risinājums vairs nestrādā, jo man nav no kurienes nolasīt, kādas kolonnas skatīt.

     

     

    No tavējā posta saprastu, ka kkur atsevišķi varētu definēt, kādas kolonnas es gribu redzēt, nevis kā es iedomājos - nolasīt no SELECTa.

     

     

    2) Otra problēma - vai šāds risinājums parasti strādā arī tad, ja kkā kolonnām vajadzētu piesiet linkus? Piemēram, spiežot uz "username" vai "klasifikatora_nosaukums" aiziet uz VIEW formu vai EDIT formu.

     

    3) Vajadzētu arī tādas iepriekšnotiktas kolonnas, kā "Delete", "Edit" (iconiņas, kas ar padoto rindiņu dara šo un to). Liekas, ka ar šo risinājumā nav problēmas.

     

    4) Un pēdējā problēma - ko tad īsti darīt, ja vienai Kolonna + Tabula kombinācijai ir paredzētas dažadi tipi. Piemēram, sarakstā tas parādās kā vienkāršs TEXT, bet NEW formā tas ir editbox. Vai, piemēram, sarakstā laukam ir LINKs uz dotā ieraksta VIEW formu, bet VIEW formā šim te laukam vairs nevajaga LINKu. Sanāk, ka tai meta-tabulā būtu jāparedz dažādas kolonna - view_kontrolis, saraksta_kontrolis, edit_kontrolis...?

  5. Man ir admin panelis, kurā principā ir daudz vienveidīgu tabulu-list, vienveidīgu edit-formu utt. (nu, kā jau katrā admin panelī...), kas atšķiras tikai ar datiem un izmantojamiem kontroļiem.

     

    Piemēram,

    lietotāju saraksts

    dokumentu saraskts

    xxx saraksts

    yyy saraksts

    utt.

     

    Tie visi pēc būtības ir līdzīgi saraksti, bet atškiras ar

    - queriju, kas ir apakšā

    - kolonnu skaitu un nosaukumiem

    - kolonnas vērtības tipa

    (piemēram,

    kolonna "registration date" ir datums un tā jāattēlo datumam specifiski;

    vai kolonna "username", kas ir vienkārši teksts;

    vai kolonna "user_image", kas ir attēls

    vai citi tipi, t.sk., LOOKUPi uz citām tabulām utt.)

    - dažām kolonnām ir arī "linki"

    - ? varbūt vēl ko

     

    Līdzīgi ir ar edit formām un new formām.

     

    Gribētos uztaisīt mehānismu, lai varētu to visu veikt vienādi. Lai varētu kkur centralizēti pamainīt tabulas izskatu, viegli varētu pievienot tabulai jaunu kolonnu utt.

    Kādas ir idejas, lai to panāktu?

     

    1) Varētu uztaisīt tā, ka vispirms palaiž queriju un visus datus saliek masīvā-tabulā.

    Tad izsauc funkciju, kurai padod

    - šo tabulu,

    - masīvu - db kolonnu nosaukumus, kuras grib rezultātā

    - masīvu - kolonnu nosaukumus latviski

    - masīvu - katras kolonnas datu tipu jeb kontrolis (date, image, text, lookup u.c.) un tipam specifiskus rādītājus (dateformat u.c.)

    - masīvu - katrai kolonnai - vai tas ir links un ja ir links, tad uz kurieni

    - vai tas ir saraksts, edit forma vai new forma

    - ? vēl kko

     

    Bet kkā baigi smagnēja funkcija ar daudz parametriem...

     

    2) Varētu uztaistīt db tabulu, kurā būtu tādi kā meta dati par field-iem.

    Nu, piemēram, tur būtu šādas kolonnas:

    table (piem., users)

    field (registration date)

    field_name (Reģistrācijas datums)

    type (date)

    link

    lookuptable

    lookupfield

    utt.

     

    Un tad zīmējot formu vai tabulu vai ko citu, vajadzētu no SELECT-a nolasīt, kādas kolonnas mēs gribam, tās atrast šajā meta datu tabulā un nolasīt, ko mums īsti attēlot.

    Šis jau arī tāds smagnējs izskatās. Un liekas, ka priekš new formām šis arī neder, jo nav tāda SELECTa + sarakstos, edit formās un new formās kontroļa tips arī var atšķirties un tas te nav iekļauts.

     

    ... neticu, ka kāds vispār šito izlasīt, bet ja nu :)

    varbūt kādas idejas, kā Jūs to darāt?

  6. Man ir galvenais logs, kurā ir forma. Šajā logā ir arī poga "XXX". Uz šīs pogas nospiežot, atveras pop-up lodziņš, t.i., notiek window.open ('adrese','nosaukums','izmēri').

     

    Jaunajā logā arī ir forma, kurā ir poga "Pievienot".

    Nospiežot šo pogu jaunā loga forma submitojas.

     

    Kā izdarīt,

    1> lai pēc formas jaunā logā submitošanas, mēs novalidējam visus tā laukus un tad aizveram šo pop-up logu

    2> pēc tam, kad aizvērts pop-up, nepieciešams refrešot galveno logu

    3> bet galvenā loga refrešam jābūt tādam, lai viss kas tur jau ir ierakstīts nepazustu!

     

    R.

  7. Hmm... laikam tāpēc, ka "piesējos", lai var atkalizmantot iepriekš uzrkastītas JavaScript funkcijas, kas veic to template klonēšanu un id-u nomaiņu visiem elementiem.

     

    Bet tagad tiešām ar PHP šķiet vieglāk...

    Btw, ja izmanto PHP, tad vajadzētu varētu tajā tabulas templatē visiem elementiem mainīt id-us. Kā to labāk izdarīt?

  8. Ir tāda situācija:

     

    Ir "ADD forma".

     

    Ir viena tabula, ko nosaucu par "template_table". Tā satur apmēram 30 ievadlaukus.

    Lietotājs spiež uz pogu "Pievienot jaunu". Tā rezultātā notiek sekojošais (ar JavaScriptu):

    1) Tiek klonēta (pārkopēta) tabula "template_table".

    2) Visiem tabulas elementiem tiek piekārtoti jauni identifikatoru, atkarībā no tā, cik reizes nospiež "Pievienot" - piemētam, template_table1, template_table2, template_table3 utt.

    3) Rezultātā uz lapas ir vairāk kā 100 input lauki.

    4) To visu saglabāju datu bāzē.

     

    Tagad man ir jātaisa "EDIT formu". Šī forma savāc datus no datu bāzes un ļauj rediģēt tos.

    Problēma ir tā, ka es nezinu kā normāli būtu aizpildīt šos 100 input laukus, jo tas jādara dinamiski ar JavaScript. Kods varētu būt apmēram tādā stilā:

     

    while ($row = mysql_fetch_assoc($result)) // dabūn vienu input bloku priekš viena template_table

    {

    ?>

    create_empty_template_table(); // JavaScript funkcija, kas saveido vienu tukšu template_table, respektīvi dara punktus 1-2, kas iepriekš minēti

    fill_table_with_elements(); // un šeit vajadzētu būt funkcijai, kas piepilda šos tukšos input laukus ar esošām vērtībām, bet to skaits ir ap 30!!! vai tiešām man 30 mainīgie jāraksta? :)

    <?php

    }

  9. Mēģinu nosūtīt meilu, man saka, ka nav SMTP. Droši vien, ka uz datora nav lokālā SMTP.

     

    Tad nu jautājums - kkur akstīts bija, ka google var izmantot kā SMTP, bet nesaprotu kā tieši. Kādi uzstādījumi jāuzliek un vai tur nepeiciešams lietotājsvārds/parole un kur tos jāliek?

    Vai arī - vai ir atkarīgs no provaidera vai es varu/nevaru uzlikt sev lokālo SMTP? Kā jūs rīkojaties?

  10. manuprāt, echo tur ir liekts, jo kā jau teica - viss, kas ārpus <?php ?> tiek tāpat drukāts (tur nevajaga echo).

    Tas šitā sanāk:

     

    else

    {

    ?>

    <form method="post" action="login.php">

    <table border="0" width="100%">

    <tr>

    <td align="left"><font color="#FFFFFF">Login</font></td>

    <td width="84">

    <input id="login" size="16" maxlength="15" name="login" class="textbox"></td>

    </tr>

    <?php

    }

     

     

    t.i., divi varianti:

    1) vajaga echo

     

    <?php

    ...

    echo '<form method="post" action="login.php">';

    ...

    ?>

     

    2) nevajaga echo

     

    <?php

    ...

    ?>

    <form method="post" action="login.php">

    ...

  11. WebDeveloper ieteikumu es tūlīt izlasīšu, bet

    mefisto: es nesapratu domu. CSS slikti pārzinu.... Tu domā aizvākt to style, ielikt tur klasi, teiksim class="mana_klase"? Un tad uz pogas klikšķa būs jādara kas (lai paslēptu/parādītu?).

  12. Man ir skaitā 20 texta lauki, kuros iekšā var rakstīt skaitļus.

    Tad man ir lauks, kurā jau ir visu šo skaitļu summa.

     

    Nepieciešams, lai mainot kādu no texta laukiem, automātiski izmaiņas šī summa (nav svarīgi vai tas notiek pēc tam kad zaudēts focus vai rakstīšanas laikā).

  13. Man šķiet, ka tā var:

     

    <INPUT TYPE=RADIO NAME="radio_input"  VALUE="0" checked>Pirmā vērtība
    <INPUT TYPE=RADIO NAME="radio_input"  VALUE="1" >Otrā vērtība
    <INPUT TYPE=RADIO NAME="radio_input" VALUE="2">Trešā vērtība

     

    Tad pārbauda vai

     

    if ($_POST['radio_input'] != 0 && ($_POST['radio_input'] != 1 && $_POST['radio_input'] != 2) {
     // error
    }

  14. Ir tabula ar divām rindām. Pirmā rinda sastāv no četrām kolonnām, otrā rinda - no vienas kolonnas (colspan = 4).

     

    <table>
     <tr>
      <td>aaaaa</td>
      <td>aaaaa</td>
      <td>aaaaa</td>
      <td>aaaaa</td>
     </tr>
    
     <tr id="xxx">
      <td colspan='4'>aaa</td>
      </tr>
    </table>

     

    Problēma ir tāda, ka man ir nepieciešams, spiežot uz pogu paslēpt/parādīt otro rindu.

    Rādot rindu es uzlieku display.style = 'block', bet slēpjot - display.style = 'none'.

    Līdz ar to man iznāk,ka otrā rinda ir tāda:

     

      <tr id="xxx" style="display: block">
      <td colspan='4'></td>
      </tr>

     

    Bet tā dēļ tas colspan=4 vairs nedarbojas un izskatās it kā apakšējā rinda aizņemtu tikai vienu (pirmo) kolonnu, bet pārējās trīs ir tukšas.

×
×
  • Create New...