AlexxBlog.com


Colţul meu pe Internet

Archive for the ‘Programare’ tag

Ataşamente - PHP-Fusion V6

without comments

La cererea unui membru din comunitatea PHP-Fusion România am realizat o modificare la fişierele -ului pentru a permite ataşarea mai multor ataşamente.

La începutul aproape fiecărui fişier se găseşte variabila $atasamente. Este suficient să schimbi valoare acesteia (de default este 5) pentru a modifica numărul de ataşamente.

Pentru a aplica modificările trebuie doar să înlocuiţi toate fişierele din arhivă cu cele din folderul /.

Download | Topic PHP-Fusion România

Written by Alex

August 20th, 2008 at 1:17 pm

Posted in PHP-Fusion

Tagged with , , , , ,

Yahoo! Messenger Panel - PHP-Fusion v6

without comments

Deşi am făcut-o acum 3-4 luni, tocmai acum câteva zile am publict-o.

Ce ştie să facă?

  • fiecare utilizator îşi poate adăuga ID-ul în baza de date pentru a cunoaşte noi prieteni;
  • dispune de o pagină personală unde vor fi afişate informaţiile precum: numele, data naşterii, ID-ul, oraşul şi o mică descriere;
  • ID-urile sunt sortate în funcţie de sex (băiat - fată);
  • un panou care afişează ultimele ID-uri adăugate pe categorie.

În arhivă am adăugat şi un panou care afişează pe orizontală 5 ID-uri selectate aleatoriu din baza de date.

Pe viitor aş vrea să o dezvolt şi pentru V7, vreau să îi fac un mic panou de administrare pentru opţiuni (ID-uri afişate pe pagină, culori, etc). Dacă aveţi ceva idei aştept comentarii.

Download | Topic PHP-Fusion România

Written by Alex

August 20th, 2008 at 1:03 pm

Posted in PHP-Fusion

Tagged with , , , , ,

Shutdown Uptime - C#

without comments

Am facut acest programel mai mult pentru a invata cateva lucruri noi.

Ce face?

Stinge calculatorul atunci cand ajunge la numarul n de minute de uptime. Il folosesc pentru fratele meu, astfel nu va sta tot timpul la calculator. Stiu ca exista sute de programe pe internet care fac acest lucru, dar am vrut sa ma ocup eu. Plus ca trebuia ceva foarte simplu pentru ca vor “lucra” si parintii mei cu el atunci cand eu nu sunt acasa.

In randurile urmatoare voi explica cum se face:

1. Deschideti un proiect C# si creati urmatoare interfata.

Shutdown uptime

2. Cele 5 label-uri de sus le-am redenumit astfel:

  • Label1 -> labelUptime;
  • Label2 -> labelUptimeValue;
  • Label3 -> labelEgal;
  • Label4 -> labelUptimeValueHours;

Textbox-ul l-am redenumit textTime, iar butoanele buttonOK si buttonClose;

Am luat un Timer din Tool Box pe care l-am redenumit timer1. (default)

3. Acum sa trecem la partea de cod.

Pentru a prelua uptime-ul calculatorului trebuie sa folosim namespace-ul System.Runtime.InteropServices. Deci il vom adauga cu ajutorul comenzii (langa celelalte namespace-uri)

using System.Runtime.InteropServices;

Apoi scriem urmatorul cod:

public string UptimeValue = ""; //definim variabila UptimeValue
private void timer1_Tick(object sender, EventArgs e) //dand click pe timer1 vom afisa aceasta functie
{
int SystemUptime = Environment.TickCount; // variabila SystemUptime preia valoarea uptime-ului (in milisecunde)
this.labelUptimeValue.Text = Convert.ToString(SystemUptime / 60000) + " minutes"; //labelUptimeValue preia valoare uptime-ului (in minute) pentru a fi afisata in interfata programului
this.labelUptimeValueHours.Text = Convert.ToString(SystemUptime / 3600000) + " hours"; //labelUptimeValueHours preia valoarea uptime-ului (in ore) pentru a fi afisata in interfata programului
UptimeValue = Convert.ToString(SystemUptime / 60000); //UptimeValue preia valoarea uptime-ului pentru a fi folosita in program
if (this.UptimeValue == this.textTime.Text) //daca UptimeValue este egala cu valoare scrisa in texbox
{
System.Diagnostics.Process.Start("Shutdown", "-s"); //se va stinge calculatorul
}
}

Dupa ce dam click pe butonul Close scriem doar

this.Close();

Acum totul ar trebui sa mearga. Un programel creat in 10 minute cu doar 40 linii de cod.

Written by Alex

May 5th, 2008 at 5:55 pm

Posted in Programare

Tagged with , ,

Employee Management Studio - C#

without comments

O noua versiune a programului Employee Management Studio ( C# )despre care am scris aici.

Acum programul are 1242 linii de cod.

Employee Management Studio

Alte poze aici si aici.

Written by Alex

May 3rd, 2008 at 7:57 pm

Posted in Programare, Şcoală

Tagged with , ,

TurboPascal 7

without comments

Scriu acest post în special pentru colegii mei care mă tot întreabă de unde pot descărca Turbo 7 (pentru şcoală).

Îl puteţi descărca de aici. :P

Written by Alex

April 24th, 2008 at 11:51 am

Posted in Programare

Tagged with , ,

Employee Management C#

without comments

În sfârşit am terminat programul Employee Management în C# pe care îl facem la cursuri. Peste câteva zile îl voi posta (nu sursa, doar fişierul .exe :P). În total are 901 linii de cod. Binişor pentru primul program în C# nu?

Mulţumiri lui Sabin.

Mai jos câteva screenshot-uri din program:

Employee management

Employee management

Employee management

Employee managementEmployee management

Written by Alex

April 20th, 2008 at 12:17 am

Posted in Programare, Şcoală

Tagged with , ,

Test C# Aprilie 2008

without comments

Acesta este testul din C# pe luna Aprilie. Programul (sursele) pe care le-am făcut nu le voi publica…pentru moment :) Download

Written by Alex

April 11th, 2008 at 9:54 pm

Posted in Programare

Tagged with , ,

La şcoală…

with 2 comments

Astăzi o zi foarte grea. TImp total de stat la şcoală: 13 ore. Mai rău ca la servici…

Mai pe seară dacă nu uit, postez programul pe care l-am făcut la pregătire.

Written by Alex

April 9th, 2008 at 10:15 pm

Posted in Programare, Viaţă, Şcoală

Tagged with ,

În sfârşit online…

without comments

În sfârşit am terminat de lucrat astăzi în C# pe şi am reintrat pe .

Acum m-am obişnuit cu -ul şi îmi este greu să umblu pe . Sper ca mâine să iasă totul bine la testul din C# ;)

Written by Alex

April 8th, 2008 at 9:50 pm

Posted in Viaţă

Tagged with , , ,

Securizarea infuziilor şi modificărilor în PHP-Fusion

without comments

Cu toţii ştim că securitatea unui portal este foarte importantă. În acest articol vrem să vă arătăm cum să creaţi modificări sau fără greşeli.

1. Drepturile utilizatorilor:

Pentru a verifica drepturile membrilor şi grupurilor de membri folosiţi întotdeauna:

- constantele iGUEST, iUSER, iMEMBER, iADMIN, iSUPERADMIN, iUSER_RIGHTS, iUSER_GROUPS;

- funcţiile checkrights(), getuserlevel(), checkgroup(), groupaccess().

Exemplu:

if (iMEMBER) echo "Salut!";

else echo "Înregistrează-te!";

2. Interogări Mysql:

Folosiţi întotdeauna funcţiile integrate în pentru a interoga baza de date (Mysql):

- dbquery($query) - pentru a efectua un query mysql;

- dbrows($query) - pentru a cunoaşte numărul de rânduri dintr-un query mysql;

- dbcount($camp, $tabel, $conditii) – Afişează suma valorilor câmpului ($camp) din tabel ($tabel) în funcţie de condiţiile puse ($conditii);

- dbresult($query, $camp) - afişează conţinutul câmpului ($camp) în funcţie de primul rând din $query;

- dbarray($query) – Inserează datele din $query într-un array asociativ;

- dbarraynum($query) – Inserează datele din $query într-un array poziţional;

Un exemplu:

// efectuez interogarea

$result = dbquery("SELECT * FROM ".$db_prefix."custom_pages WHERE page_id='$page_id'");

// Controlez ca interogarea să aibă cel puţin un rând

if (dbrows($result) != 0) {

// Pun rezultatele într-un array poziţional

$data = dbarray($result);

// Folosesc datele din array

echo $data['page_title'];

} else die("Eroare!");

Observaţie: Amintiţi-vă să optimizaţi interogările mysql. Server-ului nu îi va place să primească sute de interogări pentru fiecare sait ;)

3. $_POST şi $_GET:

- Folosiţi întotdeauna funcţia stripinput() pentru a vă apăra împotriva codurilor HTML şi periculoase atunci când doriţi să adăugaţi informaţii în baza de date.

Exemplu:

$data = stripinput($POST['']);

Această funcţie înlocuieşte anumite caractere cu „entities” (entităţi?) HTML. De exemplu ghilimele “ devin ”.

- Dacă variabila POST/GET trebuie să fie un număr folosiţi funcţia isNum(). Dacă un număr trimis este folosit într-un query mysql folosiţi acest cod înainte să puneţi ceva în tabelul mysql:

if (!isNum($_POST['numarul_meu'])) falback("index.");

Sau:

$numarul_meu = isNum($_POST['numarul_meu']) ? $_POST['numarul_meu'] : $numar_predefinit;

- Nu trimiteţi prin variabila GET informaţii importante precum parole.

- Încercaţi să lucraţi cu baza de date prin câmpuri ID. Sunt mai uşor de manipulat şi sunt mai siguri. Este mai uşor să stabiliţi dacă o valoare este un număr cu ajutorul funcţiei isNum() decât să elaboraţi un „string” (caractere?) şi să stabiliţi dacă este sigur sau nu.

4. Alte lucruri:

- Puneţi acest cod la începutul fiecărui script de administrare:

if (!checkrights("IP")) fallback("../index.");

- Puneţi acest cod la începutul fiecărui panou:

if (!defined("IN_FUSION")) { header("Location:../../index."); exit; }

- Puneţi acest cod la începutul – paginilor incluse? - :

if (!defined("IN_FUSION")) { header("Location:../index."); exit; }

- Verificaţi întotdeauna imaginile încărcate cu funcţia verify_image(). Amintiţi-vă că anumite browser-ere (Navigatoare web?) permit executarea anumitor scripturi .JS prin tag-urile HTML

- Nu abandonaţi e_notice_warnings (erorile?). Amintiţi-vă să declaraţi variabilele cu valori predefinite.

Un exemplu fără declarare:

$otherdata = 'a';

$data = array('b', 'c', 'd');

for ($i=0;$i)

if ($otherdata==$data[$i]) $result = "OK";

}

$final_result = $result;

Codul de mai sus va afişa o eroare: e_notice warning: Variable $result not defined at line XXX.

Scriptul de mai jos este cel corect şi nu va afişa nicio eroare:

$otherdata = 'a';

$data = array('b', 'c', 'd');

$result = "DEFAULT VALUE"; //acest rând rezolvă problema

for ($i=0;$i)

if ($otherdata==$data[$i]) $result = "OK";

}

$final_result = $result;

Written by Alex

March 29th, 2008 at 3:08 pm

Posted in PHP-Fusion

Tagged with , , , ,