Jump to content
php.lv forumi

pilots

Reģistrētie lietotāji
  • Posts

    310
  • Joined

  • Last visited

Posts posted by pilots

  1. man palīdz http://vanhegan.net/software/akismet/#download

     

    ātri un nesāpīgi ieviešams.

     

    komentu apstrādājot ar php:

    $vars	= array();
    foreach ( $_SERVER as $key => $val ) { $vars[ $key ] = $val; }
    $vars["user_ip"]		   	= $ip;
    $vars["user_agent"]			= $_SERVER["HTTP_USER_AGENT"];
    $vars["comment_content"]   	= $komentars;
    $vars["comment_author"]			= $autors;
    
    if(akismet_check($vars)){
    //spams
    }
    else{
    //pievienojam
    }

     

    + protams funkcija jāizmanto no manis dotā linka.

  2. Paldies par saturīgu komentāru.

     

    ^ iekš $sql dati tiek ievietoti ar mysql_real_escape_string, tur tad nu nevajadzētu būt problēmām.

     

    ^ lai būtu drošs, ka id ir skaitlis es tiku izmantojis ctype_digit, vēl zinu, ka ir is_numeric. vai šajā situācijā tomēr labāk ir intval?

     

    ^ tas HSSC man miglā tīts. Ja kādreiz kādu piemēru uzrakstīsi, kaut vai english valodā, tad ja ne uz šo tēmu, tad šepat forumā nopublicē. Metode ievērības cienīga.

  3. Ļaujiet man jums jautāt par sesijām un login būšanām.

     

    Man šobrīd ir uzprogrammēts tā, ka viss darbojas, tomēr man šķiet, ka vajadzētu drošāk uztaisīt (nojausma, kā manipulē ar sesijām man maza, bet tomēr..).

     

    Šī brīža variants:

    login.php

    //$sql SELECT * FROM lietottaji WHERE email = ... AND password = ... mysql_fetch_assoc ...
    
    if ($row){
    $_SESSION['lietotajs']=$row['id'];
    header('Location: index.php');
    exit;
    }
    else{
    header('Location: login.php');
    exit;
    }

     

    index.php (un visās citās lapās):

    $saved_session_id = $_SESSION['lietotajs'];
    
    $sql = "SELECT * FROM lietotaji WHERE id = $saved_session_id";
    $result = mysql_query($sql);
    $user = mysql_fetch_assoc($result);
    
    if (!$user){
    header('Location: login.php');
    exit;
    }

     

    Vai piekrītat, ka šis ir pārāk vienkārši un nedroši? Kā uzlabot?

     

    Es nezinu vai šituācijā tas der, bet varbūt izmantot kaut ko no šī laacz skripta: http://paste.php.lv/1653?

    Piemēram saglabāt papildus `user-info` = $ip un katrā lapā pārbaudīt.

  4. imho tas viss ir individuāli. man, piemēram, patīk vispirms sataisīt lietotājam redzamo daļu, viņu iespējas, bet pēc tam tikai administrāciju (parasti bez nekādiem dizainiem utt, lai ir vienkārši un ērti)

     

    kas attiecas uz vispārēju veidošanas secību, tad es eju šādiem soļiem:

     

    - dizains, css.

    - datubāze

    - reģistrācija / autentifikācija

    - galvenā lapa (jaunumi.. whatever) + komentēšana

    - galerijas, forumi utt.

  5. Urā!

     

    WHERE
    p2.`userid`=p.`userid` AND p2.`id`<=p.`id`

     

    izmainīju uz:

     

    WHERE
    p2.`userid`=p.`userid` AND p2.`id`>=p.`id`

     

    Pieredze iepriekš nav bijusi ar subkverijiem, tādēļ nepārzinu kādas problēmas tas varētu sagādāt. Šeit manis uzdotajam jautājumam ir arī cits piegājiens (sarežģītāks), kuru nepieciešamības gadījumā izskatīšu. Attiecīgais projekts ir uz tīra entuazisma balstīts un bez finansēm, tādēļ šai problēmai patlaban vēlējos vieglāko risinājumu.

     

    Tencinu visus, kas dalījās ar padomiem un jo īpaši biedram - nemec.

  6. marrtins, tavs risinājums liktu izmantot papildus lauku, kur glabāt kārtas nr, ko arī varētu darīt, tomēr nemec variants gandrīzvai strādā.

     

    Ar nemec variantu ir gan bēda, lai arī kārtas numuru izvada, tomēr ačgārni (no otra gala skaitot).

     

    Ja ir 7 bildes un izvada bildi kura ir pirmā, tad kā kārtas numuru izvada 7, ja 6 - tad 2 ..

     

    Es mēģinu šobrīd izkost to subkveriju, bet varbūt kāds ātrāk pamana ko pamainīt kodā.

  7. Ehh. Stundu domāju kā izklāstīt problēmu, un izskatās ka arī risinājums tik viegli nerodas. :(

     

    Redz, saglabājot bāzē numuru, šaubos, ka tas ko atvieglos.

    Jo, piemēram, ja lietotājs `aaa` izdzēš attēlu ar id `2` tad iztrūkst viņa galerijā attēls ar kārtas numuru 2. (šķiet vajadzēja precizēt, ka jānoskaidro kārtas numurs pievienotajam attēlam, ņemot vērā, ka ja izdzēš nr2, tad visi nākamie pielāgojas, veidojot nepārtrauktu secību.)

     

    Paldies protams par mēģinājumu palīdzēt, un kādam varbūt ir vēl risinājumi?

  8. Datubāzē glabājas lietotāju pievienoto foto ieraksti.

     

    foto_db piemērs.

     

    id | userid | filename
    1 | aaa | ...
    2 | aaa | ...
    3 | bbb | ...
    4 | aaa | ...
    5 | bbb | ...
    6 | bbb | ...
    7 | ccc | ...
    8 | bbb | ...
    9 | aaa | ...

     

    Lietotājs "aaa" ir pievienojis 4 attēlus.

    Tie ir ar `id` => 1(1), 2(2), 4(3), 9(4)

     

    Lietotājs "bbb" ir pievienojis 4 attēlus.

    Tie ir ar `id` => 3(1), 5(2), 6(3), 8(4)

     

    Lietotājs "ccc" ir pievienojis 1 attēlu.

    Tas ir ar `id` => 7(1)

     

    *Iekavās norādīts, kurš šis attēls pēc kārtas ir, ko katrs lietotājs pievienojis.

     

    Galvenajā lapā tiek izvadīti nejauši atlasīti 3 pievienotie attēli ar saiti uz tiem.

     

    SELECT * FROM foto_db ORDER BY RAND() LIMIT 3

     

    Ir nepieciešams, lai galarezultātā izvadot šos attēlus,

    tiem klāt varētu izvadīt arī skaitli - kurš pēc kārtas tas attēls ir lietotāja albūmā.

     

    Vadoties pēc piemēra datubāzes, vēlamais random rezultāts būtu:

     

    User:bbb img_id:8 <img src="..."> Nr4<br />
    User:bbb img_id:4 <img src="..."> Nr3<br />
    User:ccc img_id:7 <img src="..."> Nr1<br />

     

    Kā gan šo kārtas skaitli uzzināt?

  9. Klasiskie "uztais' n' pazūd" novākušies. Jūs gribat teikt, ka vienmēr visu 100% dabūjat gatavu ta, ka pēc tam nav vajadzīga maintenance/labojumi ? :)

     

    andrisp --> nevis Uztaisa un pazuud, bet gan tas ka pec tam vairs nav tava darishana, ja klients pats/(vai kads cits) veic atseviskjus labojumus...

     

    Tieši tā! Es pat brīnos, kā to var pārprast..

×
×
  • Create New...