Clubul Colectiv sau drama de a avea cel mai real coșmar colectiv

Când nu te afli intr-o zonă de conflict militar si nu vezi moartea la tot pasul, imaginea unur trupuri arse este atât de socantă că poți să juri ca nimic nu e real, îți pui tot felul de întrebări și te întrebi cum de a fost posibil, din pacate realitatea e ca există o mare de inconstiență și oameniilor le scapă foarte multe aspecte din vedere mai ales când e de activități care ar trebui sa fie inofensive.

Eu unul mi-am inchis telefonul sambata dimineață imediat după ce am aflat știrea, nu ca aș avea tone de prieteni care să se îngrijoreze dar nu voiam ca în weekend sa imi peterc timpul gandindu-ma la acest eveniment, poate am fost puțin egoist dar personal nu am vrut sa imi exprim nici o parare intr-un timp imediat.

În ultimii ani am lasat-o moartă cu concertele si cu cluburile și gandind la rece daca evenimentul acesta ar fi avut loc acum 6-7 ani, sansele ca eu sa fiu acolo erau mari, prea mari ca sa ma gandesc la ele, acum cativa ani am stat la câtiva centimetri pe scena in fostul LMC (in forma unui simplu simpatizant din public invitat sa zbiere la microfon piesa “ultimul drum”) de unul dintre chitaristi care acum nu mai este printre noi, am 2 chitari pe perete pe care doar praful s-a pus, si cred ca din pacate o sa fie doar un simbol care o sa imi aduca aminte cum îți poți pierde viața indiferent de pasiunea pe care o urmezi, fie ca e vorba de o chitara, o camera sau o surubelniță moartea nu face diferența.

Totusi as vrea sa revin un pic asupra evenimentului si sa îmi expun o părere prin prisma experiențelor si cunoștințelor pe care le am despre “economia” si comunitatea acestui tip de muzică, cât si despre exeriența din diverse cluburi ale căror accesibilitate de ieșire exste extrem de redusă.

Principala cauză a tragediei se recunoaste că a fost materialul fonoizolant de pe stâlpii existenți în incăpere.Acum mulți își pot pune întrebarea: “De ce sa existe acel material pe stâlpi?”, raspunsul este probabil pentru a exista o sonorizare/acustică cat mai buna, însa din nefericire a fost total neinspirată.

Ce ma intriga foarte mult este ca nimeni nu s-a gandit ca existența materialelor inflamabile la un nivel atat de scazut ( aprox 1.9-2.2 metri) implica riscuri majore( la acel nivel de amplasare un incendiu ar fi putut fi pornit chiar si de o simpla brichetă ), cu toate ca au fost anunțate folosirea materialelor pirotechince chiar la TV, nu cred ca existat o echipa care sa testeze serios siguranta desfasurarii efectelor, ca materialul fonoizolant nu a fost ignifug permanent este alta poveste, însă nu cred ca s-a facut neaparat economie pentru ca pe stalp nu erau nici 4 metri patrati de material, avand in vedere ca stalpul era izolat doar 2/4 ( din cate stiu eu ma refer la fețele stalpului ) și in special fața in față cu scena ( suma ca acel material sa fie ignifug permanent era poate cu maxim 200 de lei mai mare), dar ce nu se stie e ca materiale de acest tip ignifuge sunt mult mai rar disponibil pe piață cu atat mai putin pe piața romanesca, si cred ca nimeni nu a luat în calcul posibilitatea ca acel material sa ia foc deși prin definiție toate materile fonoizolante au in compozitie material usor inflamabile.

Nu am să ma afund mai mult în “anchetă”, asta e treabă autoritățiilor “competente” și din pacăte anchetele acum sunt tardive și cicatricea colectiv nu poate fi acoperita de nici o grefă de piele.


Sikuli Decedat? sau SikuliX mai implică vreo speranță

Pentru cine nu știe, Sikuli probabil a luat naștere undeva prin anul 2010, și este în principal o librărie Java pentru recunoaștere de imagini. Dar totodată este și un set de mini programe ce pot utiliza un limbaj scripting în cazul în care nu folosim librăria jar într-un proiect Java.

Acum jumătate de an sau mai bine l-am încercat pentru a experimenta cât de bine poate fi folosit pentru a valida verificări cu imagini Captcha. Nu de alta dar încă mai există mulți chinezi sau indonezieni care introduc 500Captcha/1$, evident ca multe dintre acele imagini care sunt introduse sunt pentru serviciile Google sau Facebook și în alte locuri unde Spam-ul este valorificat și sunt imagini a căror posibilitate de validare print-un mod programatic este continuu evaluată și redusă la 0 prin modificarea algoritmului de rendare a Captcha-ului. Îmi amintesc de știrea virală care s-a declanșat când reCaptcha putea fi validat automat printr-un algoritm de recunoaștere audio, dat fiind faptul ca autorul a explicat totul a fost foarte ușor numai în decurs de o zi ca sunetul de validare sa fie astfel reprodus încât să nu mai existe această vulnerabilitate.

Totuși cu recunoaștere de imagini și cu un algoritm de similaritate între două imagini nu ai cum nicicând să validezi un reCaptcha, pentru reCaptcha poate ai putea( dacă nu ai ce face și probabil cu rezultate precare ) sa iți încerci norocul cu “Pattern Recognition”.
În orice caz acele captcha-uri care nu pot fi validate programatic sunt destul de enervante și pentru semeni noștri și sunt destule servicii/siteuri care folosesc captcha-uri mai simple, cum sunt spre exemplu acele captcha-uri care te pun sa alegi dintr-un set de imagini, imaginea care este reprezentata ca forma alterata a uneia dintre imaginile din set. Și aici intervine posibilitatea unde am putea utiliza o funcție de similaritate(Sikulix), care va reda un procent de similaritate determinat de librărie.

Sincer nu am experimentat mult cu SikuliX și probabil acel limbaj scripting de care se folosește SikuliX este python judecând după sintaxă, ce mi s-a părut neplăcut a fost ca la preluarea unui Map(x,y) de pixeli nu puteai sa lucrezi cu el în memorie lucru care afectează viteza, și posibilitățile de a intervenii prea mult în ceea ce se întâmplă în spate prin parametri erau minime.

În orice caz am reușit să scriu un script care să și facă treaba cu o rată mică de eroare, acum nu o sa spun pe ce serviciu l-am testat dar o sa pun codul mai jos:


import time
import os
from org.sikuli.basics.proxies import Vision

def eH(gresit,count):
    if count == 5:
        return
    if count is None:
        count = 0
    if gresit is None:
        gresit = []
    # Linie Debug
    #popup(str(gresit))
    # Reglare calitate recunoastere ( setat 6 pt viteza mai mare acuratete mai slaba)
    #Vision.setParameter("MinTargetSize", 6)
    #identificare locatie captcha ( aceleasi coordonate )
    # pun in variabila coordonatele pt ca altfel ide-ul imi arata regiunea ca imagine .
    rCoor = [14,105,276,55]
    AReg = Region(rCoor[0],rCoor[1],rCoor[2],rCoor[3])

    # Impartim captcha in 5 regiuni mai mici
    img = []
    img.append(Region(AReg.getX()+1,AReg.getY()+1, 54, 54))
    img.append(Region(AReg.getX()+1+55,AReg.getY()+1, 54, 54))
    img.append(Region(AReg.getX()+1+55+55,AReg.getY()+1, 54, 54))
    img.append(Region(AReg.getX()+1+55+55*2,AReg.getY()+1, 54, 54))
    img.append(Region(AReg.getX()+1+55+55*3,AReg.getY()+1, 54, 54))
    # Prosteala cu +55 blabla bla evident ....

    # Capturam Imaginile ( dezamagitor ca nu suporta capturare in memorie )
    Scr = Screen()
    cap = []
    cap.append(Scr.capture(img[0]))
    cap.append(Scr.capture(img[1]))
    cap.append(Scr.capture(img[2]))
    cap.append(Scr.capture(img[3]))
    cap.append(Scr.capture(img[4]))

    # Variabile pt identificarea imaginii similare

    pmax = 0
    max = 0
    found = 0
    # unele limbaje au operator special pentru a oprii un loop la un anumit nivel
    # python nu are, in concluzie folosim un flag like old days
    bOuterLoop = 0

    if len(gresit) > 0:
        founda = gresit
    else:
        founda = []

    imgf = ""

    # Nu vrem exceptii in caz de neidentificare a similaritatii
    for x in range(0,4):
        img[x].setThrowException(False)

    # for for for ...
    for x in range(0, 4):
        for y in range(0,4):
            if x == y:
                continue
            if (len(founda) > 0):
                for x in range(0,len(founda)):
                    if x == found:
                        bOuterLoop = 1
            if bOuterLoop == 1:
                bOuterLoop = 0
                continue
            aM = img[x].find(Pattern(cap[y]).similar(0.2))
            if (aM is None):
                continue
            else:
                max = aM.getScore()
                if pmax <= max:
                    pmax = max
                    imgf = img[x]
                    found = x

    # mai stergem si noi ceva
    for x in range(0,4):
        os.remove(cap[x])

    # Am gasit ceva sau nu ?
    if isinstance(imgf, Region):
        click(imgf)
        hover(Region(0,0,4,4))
        rNewCoor = [70,101,157,36]
        regNewSeeError = Region( rNewCoor[0],rNewCoor[1],rNewCoor[2],rNewCoor[3])
        regNewSeeError.setThrowException(False)
        # Find this baby one more time
        allwaysFindShoudHappen = regNewSeeError.find("wrgc.png")
        # Asta nu ar trebui niciodata in circumstantele normale asa ca nu mai tratez exceptia, let it happen ...
        if not (allwaysFindShoudHappen is None):
            gresit.append(found)
        time.sleep(20)
        eH(gresit,count+1)

time.sleep(10)
# 5 recursii fara for intr-un loop spre infinit se indreapta in mod grabit catre totul sau nimic
test = eH([],0)

#popup(str(pmax))

Totuși proiectul SikuliX pare cam mort cu toate ca se anunță o rescriere a versiunii 2 care ar fi trebuit să înceapă în ianuarie 2015, sunt chiar curios dacă va mai reuși să trezească vreun interes.


Small Eclipse Repository Bug Luna – Provisioningexception

Daca atunci când încerci să încarci repository-ul de la eclipse primesti o exceptie de tip Provisioningexception acest lucru se întamplă ca nu exista port-ul :80 in url-ul pentru Repository-ul versiunii tale.

De exemplu pentru versiunea curenta luna url-ul este http://download.eclipse.org/releases/luna/, inlocuirea lui cu http://download.eclipse.org:80/releases/luna/ rezolva problema.

Din cate am gasit pe internet aceasta mică problema aparea și la versiuni anterioare precum kepler sau juno.


ESL Nexus challenge 30.11.2014

Pe 30 noiembrie 2014 s-a desfășurat finala evenimentului ESL Nexus challenge, eu fiind membru component al unei echipe care a ajuns în finală și care a luat locul 1. Competiția a constat într-un set de lupte în cadrul jocului World of Tanks, lupte de tipul 7 vs 7, așa-numitele Team-Battles intre cele 8 echipe din România calificate. Bineînțeles pentru mine evenimentul a fost o experiență plăcută și nu pentru ca am câștigat neapărat ci pentru ca evident exista alta atmosfera decât cea din fața PC-ului de acasă. Acum ca să fac un mic rezumat au fost diverse lucruri care mi-au displăcut, printre acestea am sa enumăr: * Așteptare îndelungată, sincer la sfârșitul evenimentului se cumulaseră probabil mai bine de 13 ore în cele 2 zile iar din cele 13 ore nu cred că am jucat mai mult de o oră și jumătate, restul a fost doar așteptare. * Organizare relativ slabă, acest fapt nu a fost deranjat căci după cate am înțeles organizatorii nu erau tocmai experimentați, dar echipamentele nu prea au funcționat, în sală nu s-a auzit niciodată inteligibil cel de al doilea comentator, stream-ul mai cădea, desincronizare masiva între live și steam, nerespectarea programului anunțat, dar nu vreau să fiu prea cârcotaș că nu e stilul meu. * Comportamentul anumitor echipe calificabil ca fiind de natură necivilizată, s-au încercat tot felul de păcăleli în finală demne de alba-neagra, iar ieșirile nervoase manifestate prin tot felul de zgomote din partea tuturor echipelor a fost din nou alt lucru de care pot sa spun că nu mi-a făcut placere. Evident echipa noastră “Lucky Love” nume evident ales de alte persoane decât cele care se aflau în finală, căci trebuie sa spun ca echipa din finală nu era cea care a jucat online, și acest lucru a fost cauzat de motive logistice astfel deplasarea în București nu a fost posibilă decât de alți membri din clanul [-WTB-]. De asemenea nu am avut tip să facem nici o pregătire serioasa în prealabil tot ce se putea numea pregătire au fost circă 5-6 meciuri de Team Battle care în realitate nu prea au însemnat nimic. Mai mult decât faptul ca nu am avut o pregătire și ca nu am jucat împreună mai deloc, nu aveam nici tancuri disponibile astfel existau persoane în echipa cu 1 maxim 2 tancuri disponibile și acelea având echipaj nu tocmai excelent. De asemenea eu a cam trebuit să ma sacrific și să joc cu un tanc de nivel 6 ( t37 ) pentru ca nimeni nu mai avea un alt tanc “light”(scout) cu un echipaj bun. Rezumatul ar putea continua mult însă ma opresc aici pentru că impresia mea este că am conturat destul de bine evenimentul și în continuare voi pune doar câteva poze în care ma regăsesc și eu, capturate de organizatorii evenimentului.

Windows OS high CPU spikes winlogon.exe and csrss.exe

So you notice cpu spikes on the process winlogon.exe and rarely on csrss.exe, and maybe you also see high memory consumption on a svchost process that is registered to the SYSTEM. If you have RDP(remote desktop connection protocol) ON is likely that you receive a lot of incoming brute-force connections on your RDP station. You can check that in windows events.

In that case you have 2 simple solutions, first solution is to install a program that monitors and bans repeated attempts of login for RDP and you can try RdpGuard(but is not free) or free alternatives like IP Ban ( http://www.digitalruby.com/securing-your-windows-dedicated-server/ ) available on github and EvlWatcher( http://nerderies.blogspot.com/ ), but you can choose even a simpler solution.

The second and the simplest method that works almost everytime is to change de default port that is assigned to the number 3389 and you can change that port by modifying the registry key PortNumber located at :

 [ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp ] 

using this method is likely that you wont receive any traffic and i think that is better then blocking the traffic received. The only disadvantage is that you must specify the port when connecting by inserting “:Portnumber” after your IP or DNS in the connection input.

Again there are other solution as well like if you your station is behind a firewall maybe a router or server with iptables or other kind of net filter but most of the brute-force attacks are made on the default port so other solution should be applied only if the problem continues after changing the default port.


Formular validare Jquery trimitere email ajax cu PhpMailer

De curând i-am propus cuiva care dorea un magazin online o platforma opensource pentru e-commerce(pe care i am adaptat-o după nevoi), și asta în principal pentru ca actual există câteva platforme e-commerce cu care poți acoperi aproape orice cerințe. Însa persoanei căreia i-am propus dorea și un fel de formular prin care să se poată trimite o comandă rapidă ( mai mult o forma de contact) ceea ce probabil nu o sa găsești implementat sub forma de modul/plugin pentru ca dedublează practic conceptul de comanda și este ceva care practic nu are legătura directă cu platforma.
Însă chiar și sub aceste aspecte în anumite circumstanțe un astfel de formular poate deveni un adaos benefic.

Asa ca am scris un astfel de formular care doar trimite email ( folosind PhpMailer class) cu datele respective din formular.
Practic exista 2 fișiere: 1 fișierul cu formularul, 2 fișierul care folosește clasa pentru mail.
Știu ca nu are metode de securitate în ceea ce privește abuzurile generate prin cereri externe dar se pot implementa câteva foarte ușor. De asemenea am ignorat multe bune practici din motive legate de timpul extrem de scurt de realizare.

1 Formular-ul

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">

<title>Comanda Rapida</title>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>



<style type="text/css">



#cerere-form .fieldgroup label.error {
    border: 1px solid;
    margin: 10px 0px;
    padding:15px 10px 15px 50px;
    background-repeat: no-repeat;
    background-position: 10px center;-moz-border-radius:.5em;
-webkit-border-radius:.5em;
border-radius:.5em;
color: #D8000C;
    background-color: #FFBABA;
   background-image: url("data:image/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAD60lEQVR42s2WW2gcVRiA///Mmb1mb1nNtrFNNQliEVQqglqSTY1GKOqDikofWrEvRUQRhL7ok770QUEwkvpU0AcpfaqX1mqTzfZCKUWtCFqxNWzb3BqTve9m5sz5/WdmTVNatVfwwGHOnjn///3XM4twiwf+bwA6L0NgJvtAlR3Q9lGRpeZNA1ijIAww36A7h3fowudg6PHtaOgPGaJvCkAfEt1qIT4m133RRXaJ1I8vnDXTzQHRr/+4YYDKoYHKeE9HtmyXq19GcixSE8NgqL07MOC8LfrJuSGAzot7VDWVk3ePdBCavGED2vOgzrw1KxO1AdGnf71ugJMHE2z5AcU2vYapIZjkgJBj0x1dVdQLB0gs7htG03mTvVDXBWDrH1CN9Khc807KIYCzPwvQyqaue8soqUFqaqQoI+UNnIuT1wzQhzCgm2InxZ/fYsTvAzJsOHPEAFI29KwvAloWONXfABvju0RQb2MvrGsD5MUjVj3zTWDN5jYkhWRacPqgCW6SeweLCIsW8Q+0JscqgWhxSGT1sasG6DyGVF18iumnnjNiGQ68DSAtmPiOAdqCux4vcnNY3r5TrQKVftgjo7SZvWheHSAnBpu1zi9DvdkQwCIhWAgcosKoW0UWdbEHpCxC0kgyA83fTzVDkcJGMaDH/hPA1ketIu4W6c6NZirMsQ8TGkEGSJg6HGEBpBX9NSQeSDaCmgZ7rkF6duHrQBJe5O6u/SvAGRNPN/5M7ImsLQX4OgASQCj4nACYyYXdI5R5rIFcVOwZ77sLClDtRNCOpGvPGoP6q38EsPXxxnljr9mb7JfpOXCVggH+051mS8LtXfpbyJ/2TAeoX+bGw6voGfaickWA+la8VJ/r+Kxt/axg69FVTlyZaAA6nIaZkRiIIFFmW8V9R6hZ3nGbj3FOAMsH4k7byvlNckjvvgzA1rdXT5n7Qw+3PyRvm/aUgmwBJGDt+yBceD/hmk4r3i1isNsmdPiM8gGouDWmV0Hz2OTx2Fp6UgxQcQlQ2gcY1mJrfX71zviGAismPzTLJi0iLHwSAwwSpF6pXAyVaj29aUJxfwe0dU5tVSG9K/KElye2/jAmyiejB6PZ5IMyfs63upVYL8noFo/vKZEfGv4SXBIizxte26Vuqh09dyKxzh4UfVTxxCgvMo35zJHQ/ckeNEqXKGUT/GqBZQBiQAvkJng5TNPt1PypcDq8svQo37QXPEEnx3eXlq/XJ5KvWuebIVLO5QVMSxkjgCu8c4cUEMgEGtGeykfCVB+7t+ySGoaYQkA7OGh6uvwSpSW95E/384IIF91iD721aL3XoLgH542sf4Xf8n8VfwHQCvgodZ0hJQAAAABJRU5ErkJggg==");
	
}

p.success, p.error{
border: 1px solid;
margin: 10px 0px;
padding:15px 10px 15px 50px;
background-repeat: no-repeat;
background-position: 10px center;-moz-border-radius:.5em;
-webkit-border-radius:.5em;
}

p.success {
color: #4F8A10;
background-color: #DFF2BF;
background: url("data:image/image/png;base64,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");
background-repeat: no-repeat;
background-position: 10px center;-moz-border-radius:.5em;
-webkit-border-radius:.5em;
}

p.error { 
color: #D8000C;
background-color: #FFBABA;
background-image: url("data:image/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAD60lEQVR42s2WW2gcVRiA///Mmb1mb1nNtrFNNQliEVQqglqSTY1GKOqDikofWrEvRUQRhL7ok770QUEwkvpU0AcpfaqX1mqTzfZCKUWtCFqxNWzb3BqTve9m5sz5/WdmTVNatVfwwGHOnjn///3XM4twiwf+bwA6L0NgJvtAlR3Q9lGRpeZNA1ijIAww36A7h3fowudg6PHtaOgPGaJvCkAfEt1qIT4m133RRXaJ1I8vnDXTzQHRr/+4YYDKoYHKeE9HtmyXq19GcixSE8NgqL07MOC8LfrJuSGAzot7VDWVk3ePdBCavGED2vOgzrw1KxO1AdGnf71ugJMHE2z5AcU2vYapIZjkgJBj0x1dVdQLB0gs7htG03mTvVDXBWDrH1CN9Khc807KIYCzPwvQyqaue8soqUFqaqQoI+UNnIuT1wzQhzCgm2InxZ/fYsTvAzJsOHPEAFI29KwvAloWONXfABvju0RQb2MvrGsD5MUjVj3zTWDN5jYkhWRacPqgCW6SeweLCIsW8Q+0JscqgWhxSGT1sasG6DyGVF18iumnnjNiGQ68DSAtmPiOAdqCux4vcnNY3r5TrQKVftgjo7SZvWheHSAnBpu1zi9DvdkQwCIhWAgcosKoW0UWdbEHpCxC0kgyA83fTzVDkcJGMaDH/hPA1ketIu4W6c6NZirMsQ8TGkEGSJg6HGEBpBX9NSQeSDaCmgZ7rkF6duHrQBJe5O6u/SvAGRNPN/5M7ImsLQX4OgASQCj4nACYyYXdI5R5rIFcVOwZ77sLClDtRNCOpGvPGoP6q38EsPXxxnljr9mb7JfpOXCVggH+051mS8LtXfpbyJ/2TAeoX+bGw6voGfaickWA+la8VJ/r+Kxt/axg69FVTlyZaAA6nIaZkRiIIFFmW8V9R6hZ3nGbj3FOAMsH4k7byvlNckjvvgzA1rdXT5n7Qw+3PyRvm/aUgmwBJGDt+yBceD/hmk4r3i1isNsmdPiM8gGouDWmV0Hz2OTx2Fp6UgxQcQlQ2gcY1mJrfX71zviGAismPzTLJi0iLHwSAwwSpF6pXAyVaj29aUJxfwe0dU5tVSG9K/KElye2/jAmyiejB6PZ5IMyfs63upVYL8noFo/vKZEfGv4SXBIizxte26Vuqh09dyKxzh4UfVTxxCgvMo35zJHQ/ckeNEqXKGUT/GqBZQBiQAvkJng5TNPt1PypcDq8svQo37QXPEEnx3eXlq/XJ5KvWuebIVLO5QVMSxkjgCu8c4cUEMgEGtGeykfCVB+7t+ySGoaYQkA7OGh6uvwSpSW95E/384IIF91iD721aL3XoLgH542sf4Xf8n8VfwHQCvgodZ0hJQAAAABJRU5ErkJggg==")
background-repeat: no-repeat;
background-position: 10px center;-moz-border-radius:.5em;
-webkit-border-radius:.5em;
}



/*######## Smart Green ########*/
.smart-green {
    width: 600px;
    margin-right: auto;
    margin-left: auto;
    background: #FFF;
    padding: 30px 30px 20px 30px;
    box-shadow: rgba(194, 194, 194, 0.7) 0 3px 10px -1px;
    -webkit-box-shadow: rgba(194, 194, 194, 0.7) 0 3px 10px -1px;
    font: 12px Arial, Helvetica, sans-serif;
    color: #666;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
}
.smart-green h1 {
    font: 24px "Trebuchet MS", Arial, Helvetica, sans-serif;
    padding: 20px 0px 20px 40px;
    display: block;
    margin: -30px -30px 10px -30px;
    color: #FFF;
    background: #9DC45F;
    text-shadow: 1px 1px 1px #949494;
    border-radius: 5px 5px 0px 0px;
    -webkit-border-radius: 5px 5px 0px 0px;
    -moz-border-radius: 5px 5px 0px 0px;
    border-bottom:1px solid #89AF4C;

}
.smart-green h1>span {
    display: block;
    font-size: 11px;
    color: #FFF;
}

.smart-green label {
    display: block;
    margin: 0px 0px 5px;
}
.smart-green label>span {
    float: left;
    margin-top: 10px;
    color: #5E5E5E;
}
.smart-green input[type="text"], .smart-green input[type="email"], .smart-green textarea, .smart-green select {
    color: #555;
    height:24px;
    width: 96%;
    padding: 3px 3px 3px 10px;
    margin-top: 2px;
    margin-bottom: 16px;
    border: 1px solid #E5E5E5;
    background: #FBFBFB;
    outline: 0;
    -webkit-box-shadow: inset 1px 1px 2px rgba(238, 238, 238, 0.2);
    box-shadow: inset 1px 1px 2px rgba(238, 238, 238, 0.2);
    font: normal 14px/14px Arial, Helvetica, sans-serif;
}
.smart-green textarea{
    height:100px;
    padding-top: 10px;
}
.smart-green select {
    background: url('down-arrow.png') no-repeat right, -moz-linear-gradient(top, #FBFBFB 0%, #E9E9E9 100%);
    background: url('down-arrow.png') no-repeat right, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FBFBFB), color-stop(100%,#E9E9E9));
   appearance:none;
    -webkit-appearance:none; 
   -moz-appearance: none;
    text-indent: 0.01px;
    text-overflow: '';
    width:100%;
    height:30px;
}
.smart-green .button {
    background-color: #9DC45F;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-border-radius: 5px;
    border: none;
    padding: 10px 25px 10px 25px;
    color: #FFF;
    text-shadow: 1px 1px 1px #949494;
}
.smart-green .button:hover {
    background-color:#80A24A;
}
    
    
  }
  
  .div1{
      position: relative;
      top:20px;
      left:30px;
     
    }
	
	input.intal {
	/*width: 80px!important;*/
	height 20px!important;
	font-size: 0.7em;!important;
	
	
	}
	
	textarea.textar{
	width: 540px;
	}
	
	
</style>

<script type="text/javascript">

(function($,W,D)
{
    var JQUERY4U = {};

    JQUERY4U.UTIL =
    {
        setupFormValidation: function()
        {
            //form validation rules
            $("#cerere-form").validate({
                rules: {
                    marca: "required",
                    tipvar: "required",
                    nrident: {
                        number: true
                    },
					nume: {
                        required: true,
                        minlength: 4
                    },
					telefon: {
                        number: true,
						required: true,
                        minlength: 4
                    },
					email: {
                        required: true,
                        email: true
                    },
					anfab: {
                        number: true
                    },
					cil: {
                        number: true
                    },
					putere: {
                        number: true
                    },
					textar: {
						required: true,
						minlength: 4
					}
				},
                messages: {
                    
					marca: "Campul 'Marca' trebuie sa fie completat.",
                    tipvar: "Campul 'Marca' trebuie sa fie completat.",
                    nrident: {
                        number: "Acest camp trebuie sa contin date numercie."
                    },
					nume: {
                        required: "Campul 'Nume/Prenume' trebuie sa fie completat.",
                        minlength: "Acest camp trebuie sa contina minim 4 caractere."
                    },
					telefon: {
                        number: "Campul 'telefon' trebuie sa fie completat.",
						required: "Acest camp trebuie sa contin date numercie.",
                        minlength: "Acest camp trebuie sa contina minim 4 caractere."
                    },
					email: {
                        required: "Campul 'email' trebuie sa fie completat.",
                        email: "Campul 'email' trebuie sa contina un email valid."
                    },
					anfab: {
                        number: "Acest camp trebuie sa contin date numercie."
                    },
					cil: {
                        number: "Acest camp trebuie sa contin date numercie."
                    },
					putere: {
                        number: "Acest camp trebuie sa contin date numercie."
                    },
					textar: {
						required: "Acest camp este necesar.",
						minlength: "Acest camp trebuie sa contina minim 4 caractere."
					}

                },
                submitHandler: function(form) {
           
		    $( "#putcontent" ).empty();
		   
				$.ajaxSetup({async: false});
			  $.get("ssemail/send.php", 
			  { marca: $("[name='marca']").val(), 
			tipvar: $("[name='tipvar']").val(),
			nrident: $("[name='nrident']").val(),
			nume: $("[name='nume']").val(),
			telefon: $("[name='telefon']").val(),
			email: $("[name='email']").val(),
			anfab: $("[name='anfab']").val(),
			putere: $("[name='putere']").val(),
			cil: $("[name='cil']").val(),
			carburant: $("[name='carburant']").val(),
			textar: $("[name='textar']").val()
			} , function(data,status){
			   
			   $('#putcontent').append(data);
  });
		 	
  

				
					//form.submit();
                }
            });
        }
    }

    //when the dom has loaded setup form validation rules
    $(D).ready(function($) {
        JQUERY4U.UTIL.setupFormValidation();
    });

})(jQuery, window, document);

</script>
</head>
<body>
<div id="pag">

<form  id="cerere-form" class="smart-green" method="post" >

    <h1>Cerere rapida de piese Auto
        <span>Campurile marcate cu asterix sunt obligatorii.</span>
		<span>Procesarea dupa apasarea butonului de trimitere dureaza aproximativ 2-3 secunde.</span>
    </h1>
<div id="putcontent"> &nbsp; </div>
<fieldset>

            
<h2 class="ht">Date automobil </h2>

<div class="fieldgroup">
<label for ="marca"><b>Marca* :</b></label>
<div class="div1"><input class="intal" name="marca" type="text"  placeholder="Marca" /></div>
</div>

<div class="fieldgroup">
<label for ="tipvar"><b>Tipul Varianta* </b>:</label>
<div class="div1"><input class="intal" name="tipvar" type="text" placeholder="Tipul Varianta" /></div>
</div>

<div class="fieldgroup">
<label for ="nrident">Numar De Identificare :</label>
<div class="div1"><input class="intal" name="nrident" type="text" placeholder="Numar identificare" /></div>
</div>

<h2 class="ht">Date propietar </h2>

<div class="fieldgroup">
<label for ="nume"><b>Nume, Prenume* :</b></label>
<div class="div1"><input class="intal" name="nume" type="text" placeholder="ex: Ionut Popescu" /></div>
</div>

<div class="fieldgroup">
<label for ="telefon"><b>Telefon* :</b></label>
<div class="div1"><input class="intal" name="telefon" type="text" placeholder="ex: 0723XXXX42 " /></div>
</div>

<div class="fieldgroup">
<label for ="email"><b>Email* :</b></label>
<div class="div1"><input class="intal" name="email" type="text" placeholder="ex: andrei@XXXX.XXX" /></div>
</div>

<h2 class="ht">Detalii Automobil </h2>

<div class="fieldgroup">
<label for ="anfab">An fabricatie :</label>
<div class="div1"><input class="intal" name="anfab" type="text" placeholder="ex: 2006" /></div>
</div>

<div class="fieldgroup">
<div class="div1">
<label for ="putere">Putere :</label>
<input class="intal" name="putere" type="text" placeholder="ex: 70" /></div>
</div>

<div class="fieldgroup">
<div class="div1">
<label for ="cil">Cilindree :</label>
<input class="intal" name="cil" type="text" placeholder="ex: 60" /></div>
</div>

<div class="fieldgroup">
<label for ="carburant">Carburant :</label>
<div class="div1"><input class="intal" name="carburant" type="text" placeholder="ex: benzina" /></div>
</div>

<h2 class="ht">Cerere Piese*</h2>

<div class="fieldgroup">
<textarea class="textar" name="textar" placeholder="Doresc sa primesc oferta pentru urmatoarele piese:" ></textarea>
</div>

            <div class="fieldgroup">
                <input type="submit" value="Trimite Cerere" class="button" id="button" >
            </div>

</fieldset>

</form>


</div>
</body>
</html>

2 Fisierul care utiliează clasa phpmailer :

<?php
require_once('phpmailer/class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$mail->IsSMTP(); // telling the class to use SMTP

// $_SERVER['REQUEST_URI']

try {
  //$mail->Host       = "mail.yourdomain.com"; // SMTP server
  $mail->SMTPDebug  = 0;                     // enables SMTP debug information (for testing)
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
  $mail->Host     = "smtp.gmail.com";   // = "smtp.gmail.com";      // sets GMAIL as the SMTP server
  $mail->Port      = 465; // = 465;                   // set the SMTP port for the GMAIL server
  $mail->Username  = "*****@gmailc.com"; //  = "yourusername@gmail.com";  // GMAIL username
  $mail->Password  = "pass"; //  = "yourpassword";            // GMAIL password
  $mail->AddAddress("******@gmail.com", 'Nume');
  $mail->SetFrom("*****@email.com", 'Nume');
  //$mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->Subject = "Suibiect";
 
   
  
  $Mesaj .= "Salut Marian <br />";
   $Mesaj .=         "Ai primit o comanda rapida prin formularul de comanda rapida ea contine :<br />";
	$Mesaj .= 	   "<br /><b>Detalii contact</b><br /><br />";
	$Mesaj .= 	   "Nume Prenume :".$_GET['nume']."<br />";
	$Mesaj .= 	   "Telefon :".$_GET['telefon']."<br />";
		 if(isset($_GET['email'])) $Mesaj .=   "Email :".$_GET['email']."<br />";
		   $Mesaj .= "<br /><b>Detalii Masina</b><br /><br />";
		   if(isset($_GET['marca'])) $Mesaj .=  "Marca :".$_GET['marca']."<br />";
		  if(isset($_GET['tipvar'])) $Mesaj .=  "Varianta / Model :".$_GET['tipvar']."<br />";
		   if(isset($_GET['nrident'])) $Mesaj .=  "Numar Identificare :". $_GET['nrident']."<br />";
		   if(isset($_GET['anfab'])) $Mesaj .=  "An fabricare :".$_GET['anfab']."<br />";
		  if(isset($_GET['putere'])) $Mesaj .=  "Putere :".$_GET['putere']."<br />";
		  if(isset($_GET['cil'])) $Mesaj .=  "Cinidree :".$_GET['cil']."<br />";
		  if(isset($_GET['carburant']) && !(empty($_GET['carburant'])) ) $Mesaj .=  "Carburant :".$_GET['carburant']."<br />";
		$Mesaj .=    "<br /><b>Cerere Piese</b><br /><br />";
		 $Mesaj .=   "Cererea de piese :".$_GET['textar'] ."<br />";
		   
		   
		   
		   
  $mail->MsgHTML($Mesaj);
  //$mail->AddAttachment($_GET['SmtpAttach']);      // attachment
  //$mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
  $mail->Send();

 echo "<p class='success'>Mesajul a fost trimis.</p>\n";

} catch (phpmailerException $e) {

 echo "<p class='error'>A aparut o eroare.";
  echo $e->errorMessage()."</p>\n"; //Pretty error messages from PHPMailer

  } catch (Exception $e) {

  echo "<p class='error'>A aparut o eroare.";
  echo $e->getMessage()."</p>\n"; //Boring error messages from anything else!

}
?>


Preluare entitații din Google Search cu Autoit

Am avut nevoie recent să extrag într-un mod automat din paginile de căutare Google date despre fiecare rezultat în parte, în mare am gândit ca fiecare pagină a unei căutări are 10 rezultate, fiecare rezultat fiind privit ca o entitate independentă care pentru mine a avut decât 3 elemente care trebuiau preluate și anume: titlu, adresă(URL) și descrierea scurtă, cea de [255]+[‘\0’] de caractere.
Ma rog după ce am făcut extragerile respective le-am formatat într-un fișier SQL care îmi trebuia pentru un script vechi care l am adaptat pentru un scop insignifiant, însă era cea mai rapidă cale pentru ce aveam eu de făcut.

Ideea ar fi că e adaptabil pentru alte căutări și extrageri, s-ar putea totuși sa aveți probleme cu Google și sa identifice ca sunt cereri inițiate de de un robot și sa ceara introducerea unui cod capcha. Eu am reușit să trec peste această problemă reglând timpul de acces dintre cereri.

În orice caz pun mai jos codul cu toate ca e cam indescifrabil plus că l-am alcătuit din alt script care l-am dat cuiva demult pentru spam care avea cu totul alt scop, în fine să nu zică lumea ca nu refolosim cod fie el chiar și de autoit.

Cod preluare din Google Search:


#include <IE.au3>
#include <Array.au3>

Dim $Av_nume[1]
Dim $Av_email[1]
Dim $Ar_domains[1]
$admin = 1

$file = FileOpen("test.sql", 1+128  )

;$head = '"First","Middle","Last","Nickname","Email","Category","Distribution Lists","Messenger ID","Home","Work","Pager","Fax","Mobile","Other","Yahoo! Phone","Primary","Alternate Email 1","Alternate Email 2","Personal Website","Business Website","Title","Company","Work Address","Work City","Work State","Work ZIP","Work Country","Home Address","Home City","Home State","Home ZIP","Home Country","Birthday","Anniversary","Custom 1","Custom 2","Custom 3","Custom 4","Comments","Messenger ID1","Messenger ID2","Messenger ID3","Messenger ID4","Messenger ID5","Messenger ID6","Messenger ID7","Messenger ID8","Messenger ID9","Skype ID","IRC ID","ICQ ID","Google ID","MSN ID","AIM ID","QQ ID"'&@CRLF
;FileWrite($file,$head)






;Stat's Numbers
$st_rating = 5
$st_votes_cast = Random(3,28,1)
;==

Dim $Q[5]

$Q[1] = 'https://www.google.com/search?q=-site:www.avocatnet.ro%20-inurl:anunturi%20-inurl:forum%20-inurl:linkedin%20-inurl:bestjobs.ro%20-inurl:ejobs.ro%20-inurl:locuridemunca%20-inurl:locuriledemunca%20-inurl:pdf%20-inurl:balaur%20intitle:%22servicii%20ssm%22&start='
$Q[2] = 'https://www.google.com/search?q=-site:www.avocatnet.ro%20-inurl:anunturi%20-inurl:forum%20-inurl:linkedin%20-inurl:bestjobs.ro%20-inurl:ejobs.ro%20-inurl:locuridemunca%20-inurl:locuriledemunca%20-inurl:pdf%20-inurl:balaur%20intitle:%22cursuri%20ssm%22&start='
$Q[3] = 'https://www.google.com/search?q=-site:www.avocatnet.ro%20-inurl:anunturi%20-inurl:forum%20-inurl:linkedin%20-inurl:bestjobs.ro%20-inurl:ejobs.ro%20-inurl:locuridemunca%20-inurl:locuriledemunca%20-inurl:pdf%20-inurl:balaur%20intitle:%22echipamente%20protectia%20muncii%22&start='
$Q[4] = 'https://www.google.com/search?q=-site:www.avocatnet.ro%20-inurl:anunturi%20-inurl:forum%20-inurl:linkedin%20-inurl:bestjobs.ro%20-inurl:ejobs.ro%20-inurl:locuridemunca%20-inurl:locuriledemunca%20-inurl:pdf%20-inurl:balaur%20intitle:%22protectia%20muncii%22&start='


$QueryTest1 = 'https://www.google.com/search?q=-site:www.avocatnet.ro%20-inurl:anunturi%20-inurl:forum%20-inurl:linkedin%20-inurl:bestjobs.ro%20-inurl:ejobs.ro%20-inurl:locuridemunca%20-inurl:locuriledemunca%20-inurl:pdf%20-inurl:balaur%20intitle:%22servicii%20ssm%22|intitle:%22cursuri%20ssm%22|intitle:%22echipamente%20protectia%20muncii%22&start='
$QueryTest2Vechi = 'http://www.google.ro/webhp?hl=ro&tab=ww#hl=ro&q=-site:www.avocatnet.ro+-inurl:forum+-inurl:linkedin+-inurl:bestjobs.ro+-inurl:ejobs.ro+-inurl:locuridemunca+-inurl:locuriledemunca+-inurl:pdf+-inurl:balaur+intitle:%22servicii+ssm%22&start='

For $Qcur = 1 to 4 Step + 1

$QueryTest = $Q[$Qcur]

For $p = 0 To 10

$oIE = _IECreate ($QueryTest&Number($p*10), 0, 1, 1,1)
Sleep(5000)
$sHTML = _IEDocReadHTML ($oIE)
;[.\n]*<SPAN class=delay></SPAN></DIV></DIV><SPAN class=delay></SPAN></DIV></DIV>
;$patern_div = '<DIV\s+class="tbl_av([^`]*?)((<span class="delay">\s+</span>)+|(</TABLE>)+</DIV></DIV>'

$pattern_li = '<li class="g">([^`]*?)</span></div></div></div>'
$patern_div = '<DIV\s+class="tbl_av([^`]*?)<DIV class="c nodisp">([^`]*?)</DIV></DIV>'
$patern_div2 = '<DIV\s+class="tbl_av([^`]*?)<TD></TD></TR></TBODY></TABLE></DIV></DIV>'

$arr = StringRegExp($sHTML,$pattern_li,4)
;$arrz = StringRegExp($sHTML,$patern_div2,4)

;FileWrite($file,$sHTML)
;MsgBox(0,0,UBound());

dim $parr[UBound($arr)]
For $i=0 To UBound($arr) -1
$arr2 = $arr[$i]
For $j = 0 To UBound($arr2) - 1
$parr[$i] = $arr2[0]
;FileWrite($file, $arr2[0]&@CRLF&@CRLF&@CRLF )
ExitLoop;

	Next

	Next


For $i=0 To UBound($parr) -1

$titlu =  StringRegExp($parr[$i],'<h3 class="r">([^`]*?)</h3>',2)
$titlu = StringRegExpReplace($titlu[1],"<a([^`]*?)>","")
$titlu = StringRegExpReplace($titlu,'<em>',"")
$titlu = StringRegExpReplace($titlu,'</em>',"")
$titlu = StringRegExpReplace($titlu,'</a>',"")

$adresa = StringRegExp($parr[$i],'<h3 class="r">([^`]*?)</h3>',2)
$adresa = StringRegExpReplace($adresa[1],'([^`]*?)href="',"")
$adresa = StringRegExpReplace($adresa,'"([^`]*?)a>',"")

$domain = StringLeft ( $adresa, StringInStr($adresa,"/",0,3))


$descriere = StringRegExp($parr[$i],'<span class="st"([^`]*?)</span></div>',2)
$descriere = StringRegExpReplace($descriere[1],'<span class="f"',"")
$descriere = StringRegExpReplace($descriere,'</span>',"")
$descriere = StringRegExpReplace($descriere,'<b>...</b>',"")
$descriere = StringRegExpReplace($descriere,'<em>',"")
$descriere = StringRegExpReplace($descriere,'</em>',"")
$descriere = StringRegExpReplace($descriere,'>',"")
$descriere = StringRegExpReplace($descriere,'&nbsp;',"")

;For $i=1 To UBound($Ar_domains)-1 Step +1
;ConsoleWrite($adresa&" "&$Ar_domains[$i]&@CRLF)
;MsgBox(0,0,"plm")
;If Not(StringInStr($adresa,$Ar_domains[$i]) = 0) then
;ContinueLoop(2)
;EndIf
;Next

_ArrayAdd($Ar_domains,$domain)

$xstr=""
$xstr&=@CRLF&@CRLF
$xstr&="INSERT INTO `ats_sites` (`username`, `password`, `url`, `short_url`, `title`, `description`, `category`, `banner_url`, `email`, `join_date`, `active`, `openid`, `user_ip`) VALUES"&@CRLF
$xstr&="('admin"&$admin&"',"&@CRLF
$xstr&="'c08ac56ae1145566f2ce54cbbea35fa3',"&@CRLF
$xstr&="'"&$adresa&"',"&@CRLF
$xstr&="'"&$adresa&"',"&@CRLF
$xstr&="'"&$titlu&"',"&@CRLF
$xstr&="'"&$descriere&"',"&@CRLF
$xstr&="'SSM',"&@CRLF
$xstr&="'http://box1.ro.lt/hwww/eval/db-class/images/button.png',"&@CRLF
$xstr&="'andrei@flashsoft.ro',"&@CRLF
$xstr&="'2013-09-03', 1, 0, "&@CRLF
$xstr&="'10.0.1.1');"&@CRLF
FileWrite($file,$xstr)

$xstr=""
$xstr&=@CRLF&@CRLF
$xstr&="INSERT INTO `ats_stats` (`username`, `rank_cache`, `rank_cache_time`, `old_rank`, `days_inactive`, `total_rating`,"
$xstr&="`num_ratings`, `unq_pv_overall`, `tot_pv_overall`, `unq_in_overall`, `tot_in_overall`, `unq_out_overall`,"
$xstr&="`tot_out_overall`, `unq_pv_0_daily`, `unq_pv_1_daily`, `unq_pv_2_daily`, `unq_pv_3_daily`, `unq_pv_4_daily`, "
$xstr&="`unq_pv_5_daily`, `unq_pv_6_daily`, `unq_pv_7_daily`, `unq_pv_8_daily`, `unq_pv_9_daily`, `unq_pv_max_daily`, "
$xstr&="`tot_pv_0_daily`, `tot_pv_1_daily`, `tot_pv_2_daily`, `tot_pv_3_daily`, `tot_pv_4_daily`, `tot_pv_5_daily`, `tot_pv_6_daily`,"
$xstr&="`tot_pv_7_daily`, `tot_pv_8_daily`, `tot_pv_9_daily`, `tot_pv_max_daily`, `unq_in_0_daily`, `unq_in_1_daily`, `unq_in_2_daily`, "
$xstr&="`unq_in_3_daily`, `unq_in_4_daily`, `unq_in_5_daily`, `unq_in_6_daily`, `unq_in_7_daily`, `unq_in_8_daily`, `unq_in_9_daily`, "
$xstr&="`unq_in_max_daily`, `tot_in_0_daily`, `tot_in_1_daily`, `tot_in_2_daily`, `tot_in_3_daily`, `tot_in_4_daily`, `tot_in_5_daily`,"
$xstr&="`tot_in_6_daily`, `tot_in_7_daily`, `tot_in_8_daily`, `tot_in_9_daily`, `tot_in_max_daily`, `unq_out_0_daily`, `unq_out_1_daily`,"
$xstr&="`unq_out_2_daily`, `unq_out_3_daily`, `unq_out_4_daily`, `unq_out_5_daily`, `unq_out_6_daily`, `unq_out_7_daily`, `unq_out_8_daily`,"
$xstr&="`unq_out_9_daily`, `unq_out_max_daily`, `tot_out_0_daily`, `tot_out_1_daily`, `tot_out_2_daily`, `tot_out_3_daily`, `tot_out_4_daily`,"
$xstr&="`tot_out_5_daily`, `tot_out_6_daily`, `tot_out_7_daily`, `tot_out_8_daily`, `tot_out_9_daily`, `tot_out_max_daily`, `unq_pv_0_weekly`,"
$xstr&="`unq_pv_1_weekly`, `unq_pv_2_weekly`, `unq_pv_3_weekly`, `unq_pv_4_weekly`, `unq_pv_5_weekly`, `unq_pv_6_weekly`, `unq_pv_7_weekly`,"
$xstr&="`unq_pv_8_weekly`, `unq_pv_9_weekly`, `unq_pv_max_weekly`, `tot_pv_0_weekly`, `tot_pv_1_weekly`, `tot_pv_2_weekly`, `tot_pv_3_weekly`,"
$xstr&="`tot_pv_4_weekly`, `tot_pv_5_weekly`, `tot_pv_6_weekly`, `tot_pv_7_weekly`, `tot_pv_8_weekly`, `tot_pv_9_weekly`, `tot_pv_max_weekly`, "
$xstr&="`unq_in_0_weekly`, `unq_in_1_weekly`, `unq_in_2_weekly`, `unq_in_3_weekly`, `unq_in_4_weekly`, `unq_in_5_weekly`, `unq_in_6_weekly`,"
$xstr&="`unq_in_7_weekly`, `unq_in_8_weekly`, `unq_in_9_weekly`, `unq_in_max_weekly`, `tot_in_0_weekly`, `tot_in_1_weekly`, `tot_in_2_weekly`, "
$xstr&="`tot_in_3_weekly`, `tot_in_4_weekly`, `tot_in_5_weekly`, `tot_in_6_weekly`, `tot_in_7_weekly`, `tot_in_8_weekly`, `tot_in_9_weekly`,"
$xstr&="`tot_in_max_weekly`, `unq_out_0_weekly`, `unq_out_1_weekly`, `unq_out_2_weekly`, `unq_out_3_weekly`, `unq_out_4_weekly`, `unq_out_5_weekly`,"
$xstr&="`unq_out_6_weekly`, `unq_out_7_weekly`, `unq_out_8_weekly`, `unq_out_9_weekly`, `unq_out_max_weekly`, `tot_out_0_weekly`, `tot_out_1_weekly`,"
$xstr&="`tot_out_2_weekly`, `tot_out_3_weekly`, `tot_out_4_weekly`, `tot_out_5_weekly`, `tot_out_6_weekly`, `tot_out_7_weekly`, `tot_out_8_weekly`,"
$xstr&="`tot_out_9_weekly`, `tot_out_max_weekly`, `unq_pv_0_monthly`, `unq_pv_1_monthly`, `unq_pv_2_monthly`, `unq_pv_3_monthly`, "
$xstr&="`unq_pv_4_monthly`, `unq_pv_5_monthly`, `unq_pv_6_monthly`, `unq_pv_7_monthly`, `unq_pv_8_monthly`, `unq_pv_9_monthly`, "
$xstr&="`unq_pv_max_monthly`, `tot_pv_0_monthly`, `tot_pv_1_monthly`, `tot_pv_2_monthly`, `tot_pv_3_monthly`, `tot_pv_4_monthly`,"
$xstr&="`tot_pv_5_monthly`, `tot_pv_6_monthly`, `tot_pv_7_monthly`, `tot_pv_8_monthly`, `tot_pv_9_monthly`, `tot_pv_max_monthly`, "
$xstr&="`unq_in_0_monthly`, `unq_in_1_monthly`, `unq_in_2_monthly`, `unq_in_3_monthly`, `unq_in_4_monthly`, `unq_in_5_monthly`,"
$xstr&="`unq_in_6_monthly`, `unq_in_7_monthly`, `unq_in_8_monthly`, `unq_in_9_monthly`, `unq_in_max_monthly`, `tot_in_0_monthly`,"
$xstr&="`tot_in_1_monthly`, `tot_in_2_monthly`, `tot_in_3_monthly`, `tot_in_4_monthly`, `tot_in_5_monthly`, `tot_in_6_monthly`,"
$xstr&="`tot_in_7_monthly`, `tot_in_8_monthly`, `tot_in_9_monthly`, `tot_in_max_monthly`, `unq_out_0_monthly`, `unq_out_1_monthly`,"
$xstr&="`unq_out_2_monthly`, `unq_out_3_monthly`, `unq_out_4_monthly`, `unq_out_5_monthly`, `unq_out_6_monthly`, `unq_out_7_monthly`,"
$xstr&="`unq_out_8_monthly`, `unq_out_9_monthly`, `unq_out_max_monthly`, `tot_out_0_monthly`, `tot_out_1_monthly`, `tot_out_2_monthly`,"
$xstr&="`tot_out_3_monthly`, `tot_out_4_monthly`, `tot_out_5_monthly`, `tot_out_6_monthly`, `tot_out_7_monthly`, `tot_out_8_monthly`,"
$xstr&="`tot_out_9_monthly`, `tot_out_max_monthly`) VALUES"

 $xstr&=@CRLF&@CRLF
 $xstr&=""&"('admin"&$admin&"', 1, 0, 0, 0, "&$st_rating&","
 $xstr&=""&$st_votes_cast&", "&Random(30,100,1)&", "&Random(100,130,1)&", "&Random(30,50,1)&", "&Random(100,130,1)&", "&Random(40,70,1)&", "&Random(130,160,1)&", " ; Num rating , Pv-ov
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&","
 $xstr&=""&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&", "&Random(0,66,1)&");"

FileWrite($file,$xstr)

$admin = $admin +1


;if StringRegExp($parr[$i],"<TD>ADRESA EMAIL:",0) Then

;$nume = StringRegExp($parr[$i],"<EM>vezi</EM></A></DIV>([^`]*?)<DIV class=clear></DIV></DIV>",2)
;$nume = StringRegExpReplace($nume[1],"\n","")
;$nume = stringReplace($nume,@lf,"")
;$nume = stringReplace($nume,@CR,"")
;$nume = stringReplace($nume,@CRLF,"")
#cs
If($nume[0] > 2) Then
For $ps = 0 To $nume[0]
$nume[2] = $nume[2]+$nume[2+$ps]
Next
EndIf
#ce

;_ArrayAdd($Av_nume,$nume)
;$email = StringRegExp($parr[$i],"<TD>ADRESA EMAIL: <STRONG><A([^`]*?)</A>",2)
;$email = StringRegExpReplace($email[1],"href([^`]*?)>","")
;$email = stringReplace($email," ","")
;_ArrayAdd($Av_email,$email)

;local $xstr ='"'&$nume&'","","'&$nume&'","","'&$email&'","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""'&@CRLF
;FileWrite($file,$xstr)


;EndIf

Next

_IEQuit ($oIE)
ConsoleWrite($admin&@CRLF)
Next

;_ArrayDisplay($Av_nume)
;_ArrayDisplay($Av_email)

Next ; Kill First Loop


FileClose($file)
MsgBox(0,0,"done")
#cs

For $i=0 To UBound($arrz) -1
If ($i >= (UBound($arrz) -3) ) Then
$arr3 = $arrz[$i]
For $j = 0 To UBound($arr2) - 1


MsgBox(0,0, $arr3[0]&@CRLF&@CRLF&@CRLF )
ExitLoop;

	Next
EndIf
	Next
#ce



#cs

;(?s)<SPAN class=delay></SPAN></DIV></DIV>

$patern_div = '.*'

_ArrayDisplay($arr);

$file = FileOpen("test.html", 1)

; Check if file opened for writing OK
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

FileWrite($file, $sHTML)
FileClose($file)
#ce



   ; $pagina = "http://www.baroul-bucuresti.ro/index.php?w=definitivi&p=1"
;	InetGet($pagina, @ScriptDir & "\html.html")