<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>azrael-sub7 &#8211; Weblog Personal</title>
	<atom:link href="https://azrael-sub7.ro/feed/" rel="self" type="application/rss+xml" />
	<link>https://azrael-sub7.ro</link>
	<description>Programare , Romania, IT, scripting, optimizare , national , internet , computer, computer problems, css , c++ , c# , vb , assembly, php, ganduri personale, muzica metal, azrael-sub7,</description>
	<lastBuildDate>Fri, 11 May 2018 09:27:44 +0000</lastBuildDate>
	<language>ro-RO</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.6</generator>
	<item>
		<title>Home router folosind PfSense</title>
		<link>https://azrael-sub7.ro/noul-router-folosind-pfsense/</link>
		<comments>https://azrael-sub7.ro/noul-router-folosind-pfsense/#respond</comments>
		<pubDate>Mon, 22 Aug 2016 09:47:09 +0000</pubDate>
		<dc:creator><![CDATA[Andrei O.]]></dc:creator>
				<category><![CDATA[Tehnologie și TI (IT)]]></category>

		<guid isPermaLink="false">https://dev.flashsoft.ro:8443/az/?p=1204</guid>
		<description><![CDATA[<div class='simple-old-alert alert-default alert-info'>
<p class='alert-content'>This article has been written before more than 24months, information might old.</p>
</div>
<p>Am urmărit proiectul pfSense înca de la început pentru că am fost convins că în final va devenii un produs de calitate, post sa spun că unul dintre primele mele home routere a fost un cisco E1000, un router care nu a rezistat prea mult pentru ca pur si simplu nu prea facea față la traficul din rețeaua de acasă. Pe el nu foloseam firmware-ul oficial ci instalasem o versiune compatibila de DDWRT, care este excepțional pentru run router care nu are un procesor prea puternic, dar avand in vdeere ca nici cu DDWRT nu prea facea față si era mereu supra încarcat am cumpărat un TP-Link TL-WR1043ND ceva mai puternic Atheros AR9132, acesta a facut față cu mult mai bine, din nou am instalat DDWRT, pot sa spun ca am incercat si alte software-uri de routere precum OpenWRT si Tomato dar DDWRT mi-a placut cel mai mult, pană in momentul in care am ajuns sa folosesc PfSense.</p>
<p>Acum nu poți să compari PfSense cu firmware-uri de routere &#8230;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/noul-router-folosind-pfsense/">Home router folosind PfSense</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class='simple-old-alert alert-default alert-info'><p class='alert-content'>This article has been written before more than 24months, information might old.</p></div><p>Am urmărit proiectul pfSense înca de la început pentru că am fost convins că în final va devenii un produs de calitate, post sa spun că unul dintre primele mele home routere a fost un cisco E1000, un router care nu a rezistat prea mult pentru ca pur si simplu nu prea facea față la traficul din rețeaua de acasă. Pe el nu foloseam firmware-ul oficial ci instalasem o versiune compatibila de DDWRT, care este excepțional pentru run router care nu are un procesor prea puternic, dar avand in vdeere ca nici cu DDWRT nu prea facea față si era mereu supra încarcat am cumpărat un TP-Link TL-WR1043ND ceva mai puternic Atheros AR9132, acesta a facut față cu mult mai bine, din nou am instalat DDWRT, pot sa spun ca am incercat si alte software-uri de routere precum OpenWRT si Tomato dar DDWRT mi-a placut cel mai mult, pană in momentul in care am ajuns sa folosesc PfSense.</p>
<p>Acum nu poți să compari PfSense cu firmware-uri de routere care sunt destinate  pentru dispozitive integrate și nu pentru servere, de multe ori in companii mici-medii și chiar instituții guvernamentale se foloseste un servăr cu o distribuție de Linux cu rol de router dar de multe ori acel server face mult mai multe decțt să fie router, cred ca adăugarea in față a unuia sau a mai multor servere cu PfSense optimizează mult rețeaua.</p>
<p>Acum pentru home router-ul de acasa am folosit un procesor quad core (N3150) cu TPD foarte mic de numai 6 watt dar cu un benchmark foarte bun pentru un router, placa lan 1GB dual, racire pasiva, consum foarte mic, si SSD ca forma de stocare. Nu am trafic enorm pe rețeaua de acasă o medie aproximativa de 240 GB pe zi și undeva pe la 3000-3500 de conexiuni active, ceea ce înseamna că acest router practic șomează dar am vrut sa am un real install pe un server sa vad exact cât de grozav e PfSense, si am concluzionat ca este distribuția perfectă care se ridica la standardele oricărui business router, si cu care poți să faci o economie considerabilă.</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/noul-router-folosind-pfsense/">Home router folosind PfSense</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://azrael-sub7.ro/noul-router-folosind-pfsense/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free SSL Certs CloudFlare vs LetsEncrypt</title>
		<link>https://azrael-sub7.ro/free-ssl-certs/</link>
		<comments>https://azrael-sub7.ro/free-ssl-certs/#respond</comments>
		<pubDate>Thu, 12 May 2016 11:46:51 +0000</pubDate>
		<dc:creator><![CDATA[Andrei O.]]></dc:creator>
				<category><![CDATA[Tehnologie și TI (IT)]]></category>

		<guid isPermaLink="false">http://box2.ro.lt:180/az/?p=1175</guid>
		<description><![CDATA[<div class='simple-old-alert alert-default alert-info'>
<p class='alert-content'>This article has been written before more than 24months, information might old.</p>
</div>
<p>Recent LetsEncrypt a fost și-a schimbat statutul de beta ceea ce înseamna ca a devenit accesibil publicului larg, eu l-am testat încă din beta, la momentul respectiv singura mea întrebare era cat de repede va ajunge disponibil sub o forma utilizabila, de fapt nu credeam ca se va întâmpla într-un timp atât de scurt.<br />
Bine existau și înainte de LetsEncrypt certificate ssl gratuite, dar nu prin procedura automata, procedura automata de obținere a acestor certificate este o necesitate indiscutabilă, din multe puncte de vedere prea evidente ca să intrăm în detalii.</p>
<p>De fapt sa trecem la ce ne interesează și anume ce avantaje și dezavantaje exista între obținerea unui certificat de la CloudFlare și unul de la LetsEncrypt.<br />
În primul rând trebuie să menționăm două lucruri:<br />
1 CloudFlare nu se ocupa în principal cu emiterea certificatelor SSL și nu este CA iar certificatul funcționează numai trecut prin proxy.<br />
2 Indiferent de avantaje sau dezavantaje cu cat exista mai multe opțiuni de obținere a unui certificat SSL gratuit  în &#8230;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/free-ssl-certs/">Free SSL Certs CloudFlare vs LetsEncrypt</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class='simple-old-alert alert-default alert-info'><p class='alert-content'>This article has been written before more than 24months, information might old.</p></div><p>Recent LetsEncrypt a fost și-a schimbat statutul de beta ceea ce înseamna ca a devenit accesibil publicului larg, eu l-am testat încă din beta, la momentul respectiv singura mea întrebare era cat de repede va ajunge disponibil sub o forma utilizabila, de fapt nu credeam ca se va întâmpla într-un timp atât de scurt.<br />
Bine existau și înainte de LetsEncrypt certificate ssl gratuite, dar nu prin procedura automata, procedura automata de obținere a acestor certificate este o necesitate indiscutabilă, din multe puncte de vedere prea evidente ca să intrăm în detalii.</p>
<p>De fapt sa trecem la ce ne interesează și anume ce avantaje și dezavantaje exista între obținerea unui certificat de la CloudFlare și unul de la LetsEncrypt.<br />
În primul rând trebuie să menționăm două lucruri:<br />
1 CloudFlare nu se ocupa în principal cu emiterea certificatelor SSL și nu este CA iar certificatul funcționează numai trecut prin proxy.<br />
2 Indiferent de avantaje sau dezavantaje cu cat exista mai multe opțiuni de obținere a unui certificat SSL gratuit  în mod automat cu atât ma bine.</p>
<p>Având aceste 2 premise stabilite voi enumera avantaje și dezavantaje care țin doar de de certificatele propriuzise.</p>
<p><strong>Dezavantaje LetsEncrypt:</strong></p>
<ul>
<li>Metoda de obținere are ca necesitate un server unix cu python prin care va trebui sa rulam un client, care în cazul in care facem obținerea doar prin el (si nu folosind module de webserver auxiliare) are nevoie de proturile 443 si 80 pentru a verifica autenticitatea cererii de emitere ( ceea ce inseamna dpvd DNS trebuie sa existe declarații DNS de tip A cu domeniul pentru care se vrea certificat către ip-ul care face cererea)</li>
<li>Perioada mai scurta de emitere a certificatului ( aceasta nu este o mare problema, dar cred ca 1 an era mai recomandat față de o perioada mai mică, totuși acest aspect este discutabil )</li>
<li>LetsEncrypt nu are suport pentru wildcards (*.domeniu, din motive de comoditate mulți cer această facilitate)</li>
</ul>
<p><strong>Avantaje LetsEncrypt:</strong></p>
<ul>
<li>Perspectiva de furnizare a serviciului gratuit pentru o perioadă nedeterminată ( având în vedere ca astăzi sunt foarte multe site-uri dependente de cloudFlare nu ai siguranța că unele din facilitățile gratuite de astă zi nu vor fi plătite mâine)</li>
<li>Certificatele sunt semnate direct de LetsEncrypt</li>
<li>Reînnoire automata utilizând scripturi rulate pe *nix</li>
<li>Revocare sau reînnoire din line de comanda</li>
<li>Alternativa la CloudFlare</li>
<li>Certificatul este emis doar pe domeniile cerute</li>
</ul>
<p><strong>Avantaje CloudFlare:</strong></p>
<ul>
<li>Reînnoire automata fara intervenție cu valabilitate de practic nelimitată</li>
<li>Emiterea și revocarea se pot face printr-un singur click din panoul de administrare web nu ai nevoie de softuri adiționale</li>
<li>Posibilitatea de a folosi wildcard-uri in pentru TLD</li>
<li>Alternativa la LetsEncrypt</li>
</ul>
<p><strong>Dezavantaje CloudFlare:</strong></p>
<ul>
<li>Certificatul este eliberat si pe domenii care nu va aparțin și funcționează numai prin proxy-ul CloudFlare, în general un certificat are cel puțin 4-5 domenii necunoscute</li>
<li>Certificatul final este semnat de Comodo ( ceea ce poate fi și un dezavantaj dar și un avantaj)</li>
<li>incertitudinea ca emiterea de certificate va fi o facilitate permanent gratuită</li>
</ul>
<p><strong>În Concluzie:</strong></p>
<p>Orice sa fie numai 443 HTTPS sa fie.</p>
<p>Totuși șă nu uitam ca serviciile gratis CloudFlare pentru DNS / CDN pot îmbunătații  un site asa ca dacă vrem mai mult decât un certificat CloudFlare poate fi o alegere bună în cazul in care nu ne deranjează ca tot traficul să treacă prin alta parte, putem avea un certificat de la LetsEncrypt sub unul de la CloudFlare.</p>
<p>Happy SSL.</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/free-ssl-certs/">Free SSL Certs CloudFlare vs LetsEncrypt</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://azrael-sub7.ro/free-ssl-certs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clubul Colectiv sau drama de a avea cel mai real coșmar colectiv</title>
		<link>https://azrael-sub7.ro/clubul-colectiv-sau-drama-de-a-avea-cel-mai-real-cosmar-colectiv/</link>
		<comments>https://azrael-sub7.ro/clubul-colectiv-sau-drama-de-a-avea-cel-mai-real-cosmar-colectiv/#respond</comments>
		<pubDate>Mon, 02 Nov 2015 09:53:37 +0000</pubDate>
		<dc:creator><![CDATA[Andrei O.]]></dc:creator>
				<category><![CDATA[Az7 Diverse]]></category>

		<guid isPermaLink="false">http://box2.ro.lt:180/az/?p=1155</guid>
		<description><![CDATA[<div class='simple-old-alert alert-default alert-info'>
<p class='alert-content'>This article has been written before more than 24months, information might old.</p>
</div>
<p>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. </p>
<p>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. </p>
<p>Î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, &#8230;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/clubul-colectiv-sau-drama-de-a-avea-cel-mai-real-cosmar-colectiv/">Clubul Colectiv sau drama de a avea cel mai real coșmar colectiv</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class='simple-old-alert alert-default alert-info'><p class='alert-content'>This article has been written before more than 24months, information might old.</p></div><p>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. </p>
<p>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. </p>
<p>Î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 &#8222;ultimul drum&#8221;) 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. </p>
<p>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 &#8222;economia&#8221; 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ă. </p>
<p>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: &#8222;De ce sa existe acel material pe stâlpi?&#8221;, raspunsul este probabil pentru a exista o sonorizare/acustică cat mai buna, însa din nefericire a fost total neinspirată. </p>
<p>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. </p>
<p>Nu am să ma afund mai mult în &#8222;anchetă&#8221;, asta e treabă autoritățiilor &#8222;competente&#8221; și din pacăte anchetele acum sunt tardive și cicatricea colectiv nu poate fi acoperita de nici o grefă de piele.</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/clubul-colectiv-sau-drama-de-a-avea-cel-mai-real-cosmar-colectiv/">Clubul Colectiv sau drama de a avea cel mai real coșmar colectiv</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://azrael-sub7.ro/clubul-colectiv-sau-drama-de-a-avea-cel-mai-real-cosmar-colectiv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sikuli Decedat? sau SikuliX mai implică vreo speranță</title>
		<link>https://azrael-sub7.ro/sikuli-decedat-sau-sikulix-mai-implica-vreo-speranta/</link>
		<comments>https://azrael-sub7.ro/sikuli-decedat-sau-sikulix-mai-implica-vreo-speranta/#comments</comments>
		<pubDate>Thu, 19 Feb 2015 11:14:30 +0000</pubDate>
		<dc:creator><![CDATA[Andrei O.]]></dc:creator>
				<category><![CDATA[Limbaje de scripting]]></category>
		<category><![CDATA[captcha sikulix]]></category>
		<category><![CDATA[example captcha break]]></category>
		<category><![CDATA[image similarity]]></category>
		<category><![CDATA[jar sikulix]]></category>
		<category><![CDATA[java lib]]></category>
		<category><![CDATA[SikuliX]]></category>
		<category><![CDATA[sikulix Example]]></category>

		<guid isPermaLink="false">http://azrael-sub7.ro/?p=1152</guid>
		<description><![CDATA[<div class='simple-old-alert alert-default alert-info'>
<p class='alert-content'>This article has been written before more than 24months, information might old.</p>
</div>
<p>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.</p>
<p>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 &#8230;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/sikuli-decedat-sau-sikulix-mai-implica-vreo-speranta/">Sikuli Decedat? sau SikuliX mai implică vreo speranță</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class='simple-old-alert alert-default alert-info'><p class='alert-content'>This article has been written before more than 24months, information might old.</p></div><p>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.</p>
<p>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.</p>
<p>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 &#8222;Pattern Recognition&#8221;.<br />
Î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.</p>
<p>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.</p>
<p>Î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:</p>
<pre class="brush: python; title: ; notranslate">

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(&quot;MinTargetSize&quot;, 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) &gt; 0:
        founda = gresit
    else:
        founda = []

    imgf = &quot;&quot;

    # 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) &gt; 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 &lt;= 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(&quot;wrgc.png&quot;)
        # 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))

</pre>
<p>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.</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/sikuli-decedat-sau-sikulix-mai-implica-vreo-speranta/">Sikuli Decedat? sau SikuliX mai implică vreo speranță</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://azrael-sub7.ro/sikuli-decedat-sau-sikulix-mai-implica-vreo-speranta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Small Eclipse Repository Bug Luna &#8211;  Provisioningexception</title>
		<link>https://azrael-sub7.ro/small-eclipse-repository-bug-luna-provisioningexception/</link>
		<comments>https://azrael-sub7.ro/small-eclipse-repository-bug-luna-provisioningexception/#comments</comments>
		<pubDate>Fri, 06 Feb 2015 09:43:13 +0000</pubDate>
		<dc:creator><![CDATA[Andrei O.]]></dc:creator>
				<category><![CDATA[Az7 Diverse]]></category>

		<guid isPermaLink="false">http://azrael-sub7.ro/?p=1146</guid>
		<description><![CDATA[<div class='simple-old-alert alert-default alert-info'>
<p class='alert-content'>This article has been written before more than 24months, information might old.</p>
</div>
<p>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. </p>
<p>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. </p>
<p>Din cate am gasit pe internet aceasta mică problema aparea și la versiuni anterioare precum kepler sau juno.&#8230;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/small-eclipse-repository-bug-luna-provisioningexception/">Small Eclipse Repository Bug Luna &#8211;  Provisioningexception</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class='simple-old-alert alert-default alert-info'><p class='alert-content'>This article has been written before more than 24months, information might old.</p></div><p>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. </p>
<p>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. </p>
<p>Din cate am gasit pe internet aceasta mică problema aparea și la versiuni anterioare precum kepler sau juno.</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/small-eclipse-repository-bug-luna-provisioningexception/">Small Eclipse Repository Bug Luna &#8211;  Provisioningexception</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://azrael-sub7.ro/small-eclipse-repository-bug-luna-provisioningexception/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ESL Nexus challenge 30.11.2014</title>
		<link>https://azrael-sub7.ro/esl-nexus-challenge/</link>
		<comments>https://azrael-sub7.ro/esl-nexus-challenge/#comments</comments>
		<pubDate>Wed, 10 Dec 2014 11:10:26 +0000</pubDate>
		<dc:creator><![CDATA[Andrei O.]]></dc:creator>
				<category><![CDATA[Az7 Diverse]]></category>

		<guid isPermaLink="false">http://azrael-sub7.ro/?p=1140</guid>
		<description><![CDATA[<div class='simple-old-alert alert-default alert-info'>
<p class='alert-content'>This article has been written before more than 24months, information might old.</p>
</div>
<p>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.</p>
<p>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ă.</p>
<p>Acum ca să fac un mic rezumat au fost diverse lucruri care mi-au displăcut, printre acestea am sa enumăr:<br />
* 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.<br />
* Organizare relativ slabă, acest fapt nu a fost deranjat căci după cate am înțeles organizatorii nu erau tocmai experimentați, dar &#8230;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/esl-nexus-challenge/">ESL Nexus challenge 30.11.2014</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class='simple-old-alert alert-default alert-info'><p class='alert-content'>This article has been written before more than 24months, information might old.</p></div><p>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.</p>
<p>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ă.</p>
<p>Acum ca să fac un mic rezumat au fost diverse lucruri care mi-au displăcut, printre acestea am sa enumăr:<br />
* 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.<br />
* 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.<br />
* 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.</p>
<p>Evident echipa noastră &#8222;Lucky Love&#8221; 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-].<br />
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.<br />
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 &#8222;light&#8221;(scout) cu un echipaj bun.</p>
<p>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.</p>
<p><a href="https://lh6.googleusercontent.com/-tIQOoysRlvM/VIVl_h6BwDI/AAAAAAAAADs/O9IA9cGTzTE/w702-h467-no/1395417_10152705003287911_5106886315067945596_n.jpg" rel="lightbox[elsnov2014]"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-layzr="https://lh6.googleusercontent.com/-tIQOoysRlvM/VIVl_h6BwDI/AAAAAAAAADs/O9IA9cGTzTE/w150-h467-no/1395417_10152705003287911_5106886315067945596_n.jpg" alt="" /></a><br />
<a href="https://lh3.googleusercontent.com/-uvQ43J1CNDg/VIVl_gj0gjI/AAAAAAAAADs/tBm3jNk33fU/w702-h467-no/10389303_10152703073827911_7929758132106796584_n.jpg" rel="lightbox[elsnov2014]"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-layzr="https://lh3.googleusercontent.com/-uvQ43J1CNDg/VIVl_gj0gjI/AAAAAAAAADs/tBm3jNk33fU/w150-h467-no/10389303_10152703073827911_7929758132106796584_n.jpg" alt="" /></a><br />
<a href="https://lh5.googleusercontent.com/-CKY-F4mj7B4/VIVl_pfifNI/AAAAAAAAADs/ZJc0C4iQlW0/w702-h467-no/10002913_10152705688367911_2899024394773112852_n.jpg" rel="lightbox[elsnov2014]"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-layzr="https://lh5.googleusercontent.com/-CKY-F4mj7B4/VIVl_pfifNI/AAAAAAAAADs/ZJc0C4iQlW0/w150-h467-no/10002913_10152705688367911_2899024394773112852_n.jpg" alt="" /></a><br />
<a href="https://lh6.googleusercontent.com/-VLTwD3kxBhw/VIVl_rEjATI/AAAAAAAAADs/WBOXrA2LgyI/w702-h467-no/10154335_10152702739702911_7105823755844532770_n.jpg" rel="lightbox[elsnov2014]"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-layzr="https://lh6.googleusercontent.com/-VLTwD3kxBhw/VIVl_rEjATI/AAAAAAAAADs/WBOXrA2LgyI/w150-h467-no/10154335_10152702739702911_7105823755844532770_n.jpg" alt="" /></a></p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/esl-nexus-challenge/">ESL Nexus challenge 30.11.2014</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://azrael-sub7.ro/esl-nexus-challenge/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows OS high CPU spikes winlogon.exe and csrss.exe</title>
		<link>https://azrael-sub7.ro/windows-os-high-cpu-spikes-winlogon-exe-and-csrss-exe/</link>
		<comments>https://azrael-sub7.ro/windows-os-high-cpu-spikes-winlogon-exe-and-csrss-exe/#respond</comments>
		<pubDate>Fri, 14 Nov 2014 10:41:18 +0000</pubDate>
		<dc:creator><![CDATA[Andrei O.]]></dc:creator>
				<category><![CDATA[Az7 Diverse]]></category>
		<category><![CDATA[csrss.exe spikes]]></category>
		<category><![CDATA[huge cpu usage winlogon]]></category>
		<category><![CDATA[winlogon high cpu]]></category>
		<category><![CDATA[winlogon windows 7]]></category>
		<category><![CDATA[winlogon windows 8]]></category>

		<guid isPermaLink="false">http://azrael-sub7.ro/?p=1137</guid>
		<description><![CDATA[<div class='simple-old-alert alert-default alert-info'>
<p class='alert-content'>This article has been written before more than 24months, information might old.</p>
</div>
<p>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.</p>
<p>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.</p>
<p>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 <strong>PortNumber</strong> located at :</p>
<pre class="brush: plain; title: ; notranslate"> [ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp ] </pre>
<p> using this method is likely that you wont &#8230;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/windows-os-high-cpu-spikes-winlogon-exe-and-csrss-exe/">Windows OS high CPU spikes winlogon.exe and csrss.exe</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class='simple-old-alert alert-default alert-info'><p class='alert-content'>This article has been written before more than 24months, information might old.</p></div><p>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.</p>
<p>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.</p>
<p>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 <strong>PortNumber</strong> located at :</p>
<pre class="brush: plain; title: ; notranslate"> [ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp ] </pre>
<p> 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 &#8222;:Portnumber&#8221; after your IP or DNS in the connection input. </p>
<p>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. </p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/windows-os-high-cpu-spikes-winlogon-exe-and-csrss-exe/">Windows OS high CPU spikes winlogon.exe and csrss.exe</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://azrael-sub7.ro/windows-os-high-cpu-spikes-winlogon-exe-and-csrss-exe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Formular validare Jquery trimitere email ajax cu PhpMailer</title>
		<link>https://azrael-sub7.ro/formular-validare-jquery-trimitere-email-ajax-cu-phpmailer/</link>
		<comments>https://azrael-sub7.ro/formular-validare-jquery-trimitere-email-ajax-cu-phpmailer/#respond</comments>
		<pubDate>Thu, 13 Mar 2014 12:01:34 +0000</pubDate>
		<dc:creator><![CDATA[Andrei O.]]></dc:creator>
				<category><![CDATA[Websiteuri și Servicii Online]]></category>
		<category><![CDATA[formular jquery]]></category>
		<category><![CDATA[jquery ajax]]></category>
		<category><![CDATA[jquery validate form]]></category>
		<category><![CDATA[jquery validation]]></category>
		<category><![CDATA[phpmailer]]></category>

		<guid isPermaLink="false">http://azrael-sub7.ro/?p=1132</guid>
		<description><![CDATA[<div class='simple-old-alert alert-default alert-info'>
<p class='alert-content'>This article has been written before more than 24months, information might old.</p>
</div>
<p>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.<br />
Însă chiar și sub aceste aspecte în anumite circumstanțe un astfel de formular poate deveni un adaos benefic.</p>
<p>Asa ca am scris un astfel de formular care doar trimite email ( folosind PhpMailer class) cu datele respective din formular.<br />
Practic exista 2 fișiere: 1 fișierul cu formularul, 2 fișierul care folosește clasa pentru mail.<br />
Știu ca nu are metode de securitate în ceea ce privește abuzurile generate prin cereri externe dar se &#8230;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/formular-validare-jquery-trimitere-email-ajax-cu-phpmailer/">Formular validare Jquery trimitere email ajax cu PhpMailer</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class='simple-old-alert alert-default alert-info'><p class='alert-content'>This article has been written before more than 24months, information might old.</p></div><p>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.<br />
Însă chiar și sub aceste aspecte în anumite circumstanțe un astfel de formular poate deveni un adaos benefic.</p>
<p>Asa ca am scris un astfel de formular care doar trimite email ( folosind PhpMailer class) cu datele respective din formular.<br />
Practic exista 2 fișiere: 1 fișierul cu formularul, 2 fișierul care folosește clasa pentru mail.<br />
Ș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.</p>
<p>1 Formular-ul </p>
<pre class="brush: xml; title: ; notranslate">
&lt;!doctype html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;meta charset=&quot;utf-8&quot;&gt;

&lt;title&gt;Comanda Rapida&lt;/title&gt;

&lt;script src=&quot;//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js&quot;&gt;&lt;/script&gt;



&lt;style type=&quot;text/css&quot;&gt;



#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(&quot;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==&quot;);
	
}

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(&quot;data:image/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAGA0lEQVR42o2Ve2wUVRSHz9mdmV22291SLMWSdruWirUPmlBKwKgQ4iMKQWMwhugfRkFsNNgYNaKiiVrRqjEaE8UQEwlqjAmPECDZaCsGSDE8ta0GGylsX/vqvneeezxztxKRgMzm7J2ZO/d+5/zOufci/M/V+VJnVW1V7cqG6obWan91tQMdGElGoqOR0cFwNNx3eNvh8WuNx6t13PbqbR2djZ2vtNW33X9j5Y3yP++Jr2KxiFbRoonoRHFwdPCH4fPD74R6Qv3XBWjoanA3BZo+WL1k9VNet9dpTyTLMspOGRwOBw9AKlIRTcskXdNR0zWIxCMU+iX0zVRsqmv4y+HUVQF1T9fNXhRcdOC+xfctVU0VJKcELtkFiqyI+xkAMAAsywJd10E3dNA0DVLpFOzu3z0cngzfHd8bH7sCUPN4jStYG/yRPV/Ok5NLcaGY3KmQIinodDjBNh7BGhGaRZNM00TdZICukaqqGE/E4euDXw8VsoXluVAudRng1u5bP1zRtqLb5XbZXhMbuiQGSAqxPALACS4BiEQOWCYB4CiIo0C1oMKJwRN0/NTxb/Oh/PpLgLqn6lrqa+pPLaxb6JQkCdyKuySNpICtvW3/AtgEYAAYpgG5ZA4UhwJZzIJW0CCbzsKu/btANuVV+b58nwC0dLd85a/wPxqYF0C3230pghkAsf5o6y8ApUJClofMhInrOtbBwOgA/Zr8FXVVBzWn0qHDhzA1mQrpP+t347z18zy1gdpIwkh42hva0eUqScSJRVmSLwdASSK7TClOtGnlJqyvrYf39rxH5/LnBEDLaXTs5DEcGxmz2M06DGwIrKqorAhNaBOw5OYlwMkVVWObLY0tmeSYqSC09QEwpg3oWtYFzY3NIn+9+3rhTPoMGJoBWlaDIyeOQPxCHNym+zFc+MzCzZqkfTSujdPtzbejoojJRQR2aTKAWH+RZBug53V6sOZBXHvHWuJntPOxo38HHRg9gIbOgIxGfQN9aMZMkAvyNmx9rvWtiBnZMmVOQXOwGeZWzAVeWGDLYwOoQDBXmQuZWRkBCGpBeP2h18F2pKAXoPdgLwzEBgAkAFuiiYkJGBoaAkiwmhncga3drW+O6+OvxiFOHp8HW+ta7cHkLDpxvjUfNnRsoKabmnDj3o2icnpX9tItwVswU8jQC3tewL+Kf0GRlx57j6w/nP79NKkRFSHO2qXhC2x6tumZGMU+iUKUoAxwzuw5ELwhSPzDjx/4GKrnVAspPuv7DCZjk7D1oa2kWzpu3rOZ/rD+QOKkiIrSTDwXPgfTE9PEkwuAM+d8Gxs3Nd5ZUAr94WKYoJw73AB+n59qy2uxBmugZ1UPLQ4sxlQ2BYlkAurn19OWg1uwL9tHXFQotgxNp/NT5zEdSwNMMzFWAiia8ggG1wfdjirH5Ig+4gM/h1XGxhDJLUGVtwoqrUro6eyBNS1rRMXsPLkT3v/zfXAoDjAsAxK5BESTUbAyFoC9OdjSRMHOgekF73yx0BY9v+jzs6mzG6iCEHwCQuBiLxROlITkMTy4fel2aJ/XDncdvIvUMhXt/aqgFpB0rts8f5/m7zmx7L2IQM7K+4yjxloBaN/cviCshX+LyTEXVPCLchD5YAjHyfcSIIcLC8oWwBAN2bIjWPyvc1vgbzJ8P12Shb0nBpEPfcvTP6UHLm12Lc+1vDGYHtxKs9kjv4AAeEpygX3cOP+1NRbZdDaVLcuWFJLY3ovWo3u25/vzmy7bTds3tjujGN0/Zo3dC7PZCx/3eblj1oxcXOf2TgGibPhZ4zbHLedVJDZRksiVdx33Sb4V0VC0cMWBs7R7adlobvT7SWvyHo4CZ6IgjgJFFCi8JzD4TuU2y21KREBsWGaUHatUKldf3HcxcdUjs6OrwzmSHXktCcmXqYzky2TCGXkMsBMLHIGtv71iiz7wfeqX/C9e2HtBu65DP/BkoDGpJ1/KUe5hUzLLL0n0TwQskaRJqhe9e8qd5e9e/O7imes69P97tT3RNisn5ZbljFxbspCssrfqCqUi7pW8v3GdHz375dnMtcb/DYcN7m0yd4KnAAAAAElFTkSuQmCC&quot;);
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(&quot;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==&quot;)
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 &quot;Trebuchet MS&quot;, 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&gt;span {
    display: block;
    font-size: 11px;
    color: #FFF;
}

.smart-green label {
    display: block;
    margin: 0px 0px 5px;
}
.smart-green label&gt;span {
    float: left;
    margin-top: 10px;
    color: #5E5E5E;
}
.smart-green input[type=&quot;text&quot;], .smart-green input[type=&quot;email&quot;], .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;
	}
	
	
&lt;/style&gt;

&lt;script type=&quot;text/javascript&quot;&gt;

(function($,W,D)
{
    var JQUERY4U = {};

    JQUERY4U.UTIL =
    {
        setupFormValidation: function()
        {
            //form validation rules
            $(&quot;#cerere-form&quot;).validate({
                rules: {
                    marca: &quot;required&quot;,
                    tipvar: &quot;required&quot;,
                    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: &quot;Campul 'Marca' trebuie sa fie completat.&quot;,
                    tipvar: &quot;Campul 'Marca' trebuie sa fie completat.&quot;,
                    nrident: {
                        number: &quot;Acest camp trebuie sa contin date numercie.&quot;
                    },
					nume: {
                        required: &quot;Campul 'Nume/Prenume' trebuie sa fie completat.&quot;,
                        minlength: &quot;Acest camp trebuie sa contina minim 4 caractere.&quot;
                    },
					telefon: {
                        number: &quot;Campul 'telefon' trebuie sa fie completat.&quot;,
						required: &quot;Acest camp trebuie sa contin date numercie.&quot;,
                        minlength: &quot;Acest camp trebuie sa contina minim 4 caractere.&quot;
                    },
					email: {
                        required: &quot;Campul 'email' trebuie sa fie completat.&quot;,
                        email: &quot;Campul 'email' trebuie sa contina un email valid.&quot;
                    },
					anfab: {
                        number: &quot;Acest camp trebuie sa contin date numercie.&quot;
                    },
					cil: {
                        number: &quot;Acest camp trebuie sa contin date numercie.&quot;
                    },
					putere: {
                        number: &quot;Acest camp trebuie sa contin date numercie.&quot;
                    },
					textar: {
						required: &quot;Acest camp este necesar.&quot;,
						minlength: &quot;Acest camp trebuie sa contina minim 4 caractere.&quot;
					}

                },
                submitHandler: function(form) {
           
		    $( &quot;#putcontent&quot; ).empty();
		   
				$.ajaxSetup({async: false});
			  $.get(&quot;ssemail/send.php&quot;, 
			  { marca: $(&quot;[name='marca']&quot;).val(), 
			tipvar: $(&quot;[name='tipvar']&quot;).val(),
			nrident: $(&quot;[name='nrident']&quot;).val(),
			nume: $(&quot;[name='nume']&quot;).val(),
			telefon: $(&quot;[name='telefon']&quot;).val(),
			email: $(&quot;[name='email']&quot;).val(),
			anfab: $(&quot;[name='anfab']&quot;).val(),
			putere: $(&quot;[name='putere']&quot;).val(),
			cil: $(&quot;[name='cil']&quot;).val(),
			carburant: $(&quot;[name='carburant']&quot;).val(),
			textar: $(&quot;[name='textar']&quot;).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);

&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;pag&quot;&gt;

&lt;form  id=&quot;cerere-form&quot; class=&quot;smart-green&quot; method=&quot;post&quot; &gt;

    &lt;h1&gt;Cerere rapida de piese Auto
        &lt;span&gt;Campurile marcate cu asterix sunt obligatorii.&lt;/span&gt;
		&lt;span&gt;Procesarea dupa apasarea butonului de trimitere dureaza aproximativ 2-3 secunde.&lt;/span&gt;
    &lt;/h1&gt;
&lt;div id=&quot;putcontent&quot;&gt; &amp;nbsp; &lt;/div&gt;
&lt;fieldset&gt;

            
&lt;h2 class=&quot;ht&quot;&gt;Date automobil &lt;/h2&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;label for =&quot;marca&quot;&gt;&lt;b&gt;Marca* :&lt;/b&gt;&lt;/label&gt;
&lt;div class=&quot;div1&quot;&gt;&lt;input class=&quot;intal&quot; name=&quot;marca&quot; type=&quot;text&quot;  placeholder=&quot;Marca&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;label for =&quot;tipvar&quot;&gt;&lt;b&gt;Tipul Varianta* &lt;/b&gt;:&lt;/label&gt;
&lt;div class=&quot;div1&quot;&gt;&lt;input class=&quot;intal&quot; name=&quot;tipvar&quot; type=&quot;text&quot; placeholder=&quot;Tipul Varianta&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;label for =&quot;nrident&quot;&gt;Numar De Identificare :&lt;/label&gt;
&lt;div class=&quot;div1&quot;&gt;&lt;input class=&quot;intal&quot; name=&quot;nrident&quot; type=&quot;text&quot; placeholder=&quot;Numar identificare&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h2 class=&quot;ht&quot;&gt;Date propietar &lt;/h2&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;label for =&quot;nume&quot;&gt;&lt;b&gt;Nume, Prenume* :&lt;/b&gt;&lt;/label&gt;
&lt;div class=&quot;div1&quot;&gt;&lt;input class=&quot;intal&quot; name=&quot;nume&quot; type=&quot;text&quot; placeholder=&quot;ex: Ionut Popescu&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;label for =&quot;telefon&quot;&gt;&lt;b&gt;Telefon* :&lt;/b&gt;&lt;/label&gt;
&lt;div class=&quot;div1&quot;&gt;&lt;input class=&quot;intal&quot; name=&quot;telefon&quot; type=&quot;text&quot; placeholder=&quot;ex: 0723XXXX42 &quot; /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;label for =&quot;email&quot;&gt;&lt;b&gt;Email* :&lt;/b&gt;&lt;/label&gt;
&lt;div class=&quot;div1&quot;&gt;&lt;input class=&quot;intal&quot; name=&quot;email&quot; type=&quot;text&quot; placeholder=&quot;ex: andrei@XXXX.XXX&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h2 class=&quot;ht&quot;&gt;Detalii Automobil &lt;/h2&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;label for =&quot;anfab&quot;&gt;An fabricatie :&lt;/label&gt;
&lt;div class=&quot;div1&quot;&gt;&lt;input class=&quot;intal&quot; name=&quot;anfab&quot; type=&quot;text&quot; placeholder=&quot;ex: 2006&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;div class=&quot;div1&quot;&gt;
&lt;label for =&quot;putere&quot;&gt;Putere :&lt;/label&gt;
&lt;input class=&quot;intal&quot; name=&quot;putere&quot; type=&quot;text&quot; placeholder=&quot;ex: 70&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;div class=&quot;div1&quot;&gt;
&lt;label for =&quot;cil&quot;&gt;Cilindree :&lt;/label&gt;
&lt;input class=&quot;intal&quot; name=&quot;cil&quot; type=&quot;text&quot; placeholder=&quot;ex: 60&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;label for =&quot;carburant&quot;&gt;Carburant :&lt;/label&gt;
&lt;div class=&quot;div1&quot;&gt;&lt;input class=&quot;intal&quot; name=&quot;carburant&quot; type=&quot;text&quot; placeholder=&quot;ex: benzina&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h2 class=&quot;ht&quot;&gt;Cerere Piese*&lt;/h2&gt;

&lt;div class=&quot;fieldgroup&quot;&gt;
&lt;textarea class=&quot;textar&quot; name=&quot;textar&quot; placeholder=&quot;Doresc sa primesc oferta pentru urmatoarele piese:&quot; &gt;&lt;/textarea&gt;
&lt;/div&gt;

            &lt;div class=&quot;fieldgroup&quot;&gt;
                &lt;input type=&quot;submit&quot; value=&quot;Trimite Cerere&quot; class=&quot;button&quot; id=&quot;button&quot; &gt;
            &lt;/div&gt;

&lt;/fieldset&gt;

&lt;/form&gt;


&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;

</pre>
<p>2 Fisierul care utiliează clasa phpmailer :</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
require_once('phpmailer/class.phpmailer.php');
//include(&quot;class.smtp.php&quot;); // 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-&gt;IsSMTP(); // telling the class to use SMTP

// $_SERVER['REQUEST_URI']

try {
  //$mail-&gt;Host       = &quot;mail.yourdomain.com&quot;; // SMTP server
  $mail-&gt;SMTPDebug  = 0;                     // enables SMTP debug information (for testing)
  $mail-&gt;SMTPAuth   = true;                  // enable SMTP authentication
  $mail-&gt;SMTPSecure = &quot;ssl&quot;;                 // sets the prefix to the servier
  $mail-&gt;Host     = &quot;smtp.gmail.com&quot;;   // = &quot;smtp.gmail.com&quot;;      // sets GMAIL as the SMTP server
  $mail-&gt;Port      = 465; // = 465;                   // set the SMTP port for the GMAIL server
  $mail-&gt;Username  = &quot;*****@gmailc.com&quot;; //  = &quot;yourusername@gmail.com&quot;;  // GMAIL username
  $mail-&gt;Password  = &quot;pass&quot;; //  = &quot;yourpassword&quot;;            // GMAIL password
  $mail-&gt;AddAddress(&quot;******@gmail.com&quot;, 'Nume');
  $mail-&gt;SetFrom(&quot;*****@email.com&quot;, 'Nume');
  //$mail-&gt;AddReplyTo('name@yourdomain.com', 'First Last');
  $mail-&gt;Subject = &quot;Suibiect&quot;;
 
   
  
  $Mesaj .= &quot;Salut Marian &lt;br /&gt;&quot;;
   $Mesaj .=         &quot;Ai primit o comanda rapida prin formularul de comanda rapida ea contine :&lt;br /&gt;&quot;;
	$Mesaj .= 	   &quot;&lt;br /&gt;&lt;b&gt;Detalii contact&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&quot;;
	$Mesaj .= 	   &quot;Nume Prenume :&quot;.$_GET['nume'].&quot;&lt;br /&gt;&quot;;
	$Mesaj .= 	   &quot;Telefon :&quot;.$_GET['telefon'].&quot;&lt;br /&gt;&quot;;
		 if(isset($_GET['email'])) $Mesaj .=   &quot;Email :&quot;.$_GET['email'].&quot;&lt;br /&gt;&quot;;
		   $Mesaj .= &quot;&lt;br /&gt;&lt;b&gt;Detalii Masina&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&quot;;
		   if(isset($_GET['marca'])) $Mesaj .=  &quot;Marca :&quot;.$_GET['marca'].&quot;&lt;br /&gt;&quot;;
		  if(isset($_GET['tipvar'])) $Mesaj .=  &quot;Varianta / Model :&quot;.$_GET['tipvar'].&quot;&lt;br /&gt;&quot;;
		   if(isset($_GET['nrident'])) $Mesaj .=  &quot;Numar Identificare :&quot;. $_GET['nrident'].&quot;&lt;br /&gt;&quot;;
		   if(isset($_GET['anfab'])) $Mesaj .=  &quot;An fabricare :&quot;.$_GET['anfab'].&quot;&lt;br /&gt;&quot;;
		  if(isset($_GET['putere'])) $Mesaj .=  &quot;Putere :&quot;.$_GET['putere'].&quot;&lt;br /&gt;&quot;;
		  if(isset($_GET['cil'])) $Mesaj .=  &quot;Cinidree :&quot;.$_GET['cil'].&quot;&lt;br /&gt;&quot;;
		  if(isset($_GET['carburant']) &amp;&amp; !(empty($_GET['carburant'])) ) $Mesaj .=  &quot;Carburant :&quot;.$_GET['carburant'].&quot;&lt;br /&gt;&quot;;
		$Mesaj .=    &quot;&lt;br /&gt;&lt;b&gt;Cerere Piese&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&quot;;
		 $Mesaj .=   &quot;Cererea de piese :&quot;.$_GET['textar'] .&quot;&lt;br /&gt;&quot;;
		   
		   
		   
		   
  $mail-&gt;MsgHTML($Mesaj);
  //$mail-&gt;AddAttachment($_GET['SmtpAttach']);      // attachment
  //$mail-&gt;AddAttachment('images/phpmailer_mini.gif'); // attachment
  $mail-&gt;Send();

 echo &quot;&lt;p class='success'&gt;Mesajul a fost trimis.&lt;/p&gt;\n&quot;;

} catch (phpmailerException $e) {

 echo &quot;&lt;p class='error'&gt;A aparut o eroare.&quot;;
  echo $e-&gt;errorMessage().&quot;&lt;/p&gt;\n&quot;; //Pretty error messages from PHPMailer

  } catch (Exception $e) {

  echo &quot;&lt;p class='error'&gt;A aparut o eroare.&quot;;
  echo $e-&gt;getMessage().&quot;&lt;/p&gt;\n&quot;; //Boring error messages from anything else!

}
?&gt;

</pre>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/formular-validare-jquery-trimitere-email-ajax-cu-phpmailer/">Formular validare Jquery trimitere email ajax cu PhpMailer</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://azrael-sub7.ro/formular-validare-jquery-trimitere-email-ajax-cu-phpmailer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preluare entitații din Google Search cu Autoit</title>
		<link>https://azrael-sub7.ro/preluare-entitatii-din-google-search-cu-autoit/</link>
		<comments>https://azrael-sub7.ro/preluare-entitatii-din-google-search-cu-autoit/#comments</comments>
		<pubDate>Mon, 25 Nov 2013 03:54:53 +0000</pubDate>
		<dc:creator><![CDATA[Andrei O.]]></dc:creator>
				<category><![CDATA[Az7 Diverse]]></category>
		<category><![CDATA[Limbaje de scripting]]></category>
		<category><![CDATA[autoit google search]]></category>
		<category><![CDATA[autoit IE]]></category>
		<category><![CDATA[fetch from google search]]></category>
		<category><![CDATA[Preluare entitații din Google Search cu Autoit]]></category>
		<category><![CDATA[preluare google search]]></category>
		<category><![CDATA[script autoit get google search]]></category>
		<category><![CDATA[title and url google search]]></category>

		<guid isPermaLink="false">http://azrael-sub7.ro/?p=1126</guid>
		<description><![CDATA[<div class='simple-old-alert alert-default alert-info'>
<p class='alert-content'>This article has been written before more than 24months, information might old.</p>
</div>
<p>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]+[&#8216;\0&#8217;] de caractere.<br />
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.</p>
<p>
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. </p>
<p>
În orice caz pun mai jos codul cu toate ca e cam indescifrabil &#8230;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/preluare-entitatii-din-google-search-cu-autoit/">Preluare entitații din Google Search cu Autoit</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class='simple-old-alert alert-default alert-info'><p class='alert-content'>This article has been written before more than 24months, information might old.</p></div><p>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]+[&#8216;\0&#8217;] de caractere.<br />
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.</p>
<p>
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. </p>
<p>
Î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.
</p>
<p>Cod preluare din Google Search:</p>
<p>#include &lt;IE.au3&gt;<br />
#include &lt;Array.au3&gt;</p>
<p>Dim $Av_nume[1]<br />
Dim $Av_email[1]<br />
Dim $Ar_domains[1]<br />
$admin = 1</p>
<p>$file = FileOpen(&quot;test.sql&quot;, 1+128  )</p>
<p>;$head = &#8216;&quot;First&quot;,&quot;Middle&quot;,&quot;Last&quot;,&quot;Nickname&quot;,&quot;Email&quot;,&quot;Category&quot;,&quot;Distribution Lists&quot;,&quot;Messenger ID&quot;,&quot;Home&quot;,&quot;Work&quot;,&quot;Pager&quot;,&quot;Fax&quot;,&quot;Mobile&quot;,&quot;Other&quot;,&quot;Yahoo! Phone&quot;,&quot;Primary&quot;,&quot;Alternate Email 1&quot;,&quot;Alternate Email 2&quot;,&quot;Personal Website&quot;,&quot;Business Website&quot;,&quot;Title&quot;,&quot;Company&quot;,&quot;Work Address&quot;,&quot;Work City&quot;,&quot;Work State&quot;,&quot;Work ZIP&quot;,&quot;Work Country&quot;,&quot;Home Address&quot;,&quot;Home City&quot;,&quot;Home State&quot;,&quot;Home ZIP&quot;,&quot;Home Country&quot;,&quot;Birthday&quot;,&quot;Anniversary&quot;,&quot;Custom 1&quot;,&quot;Custom 2&quot;,&quot;Custom 3&quot;,&quot;Custom 4&quot;,&quot;Comments&quot;,&quot;Messenger ID1&quot;,&quot;Messenger ID2&quot;,&quot;Messenger ID3&quot;,&quot;Messenger ID4&quot;,&quot;Messenger ID5&quot;,&quot;Messenger ID6&quot;,&quot;Messenger ID7&quot;,&quot;Messenger ID8&quot;,&quot;Messenger ID9&quot;,&quot;Skype ID&quot;,&quot;IRC ID&quot;,&quot;ICQ ID&quot;,&quot;Google ID&quot;,&quot;MSN ID&quot;,&quot;AIM ID&quot;,&quot;QQ ID&quot;&#8217;&amp;@CRLF<br />
;FileWrite($file,$head)</p>
<p>;Stat&#8217;s Numbers<br />
$st_rating = 5<br />
$st_votes_cast = Random(3,28,1)<br />
;==</p>
<p>Dim $Q[5]</p>
<p>$Q[1] = &#8216;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&amp;start=&#8217;<br />
$Q[2] = &#8216;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&amp;start=&#8217;<br />
$Q[3] = &#8216;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&amp;start=&#8217;<br />
$Q[4] = &#8216;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&amp;start=&#8217;</p>
<p>$QueryTest1 = &#8216;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&amp;start=&#8217;<br />
$QueryTest2Vechi = &#8216;http://www.google.ro/webhp?hl=ro&amp;tab=ww#hl=ro&amp;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&amp;start=&#8217;</p>
<p>For $Qcur = 1 to 4 Step + 1</p>
<p>$QueryTest = $Q[$Qcur]</p>
<p>For $p = 0 To 10</p>
<p>$oIE = _IECreate ($QueryTest&amp;Number($p*10), 0, 1, 1,1)<br />
Sleep(5000)<br />
$sHTML = _IEDocReadHTML ($oIE)<br />
;[.\n]*&lt;SPAN class=delay&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;SPAN class=delay&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;<br />
;$patern_div = &#8216;&lt;DIV\s+class=&quot;tbl_av([^`]*?)((&lt;span class=&quot;delay&quot;&gt;\s+&lt;/span&gt;)+|(&lt;/TABLE&gt;)+&lt;/DIV&gt;&lt;/DIV&gt;&#8217;</p>
<p>$pattern_li = &#8216;&lt;li class=&quot;g&quot;&gt;([^`]*?)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#8217;<br />
$patern_div = &#8216;&lt;DIV\s+class=&quot;tbl_av([^`]*?)&lt;DIV class=&quot;c nodisp&quot;&gt;([^`]*?)&lt;/DIV&gt;&lt;/DIV&gt;&#8217;<br />
$patern_div2 = &#8216;&lt;DIV\s+class=&quot;tbl_av([^`]*?)&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&#8217;</p>
<p>$arr = StringRegExp($sHTML,$pattern_li,4)<br />
;$arrz = StringRegExp($sHTML,$patern_div2,4)</p>
<p>;FileWrite($file,$sHTML)<br />
;MsgBox(0,0,UBound());</p>
<p>dim $parr[UBound($arr)]<br />
For $i=0 To UBound($arr) -1<br />
$arr2 = $arr[$i]<br />
For $j = 0 To UBound($arr2) &#8211; 1<br />
$parr[$i] = $arr2[0]<br />
;FileWrite($file, $arr2[0]&amp;@CRLF&amp;@CRLF&amp;@CRLF )<br />
ExitLoop;</p>
<p>	Next</p>
<p>	Next</p>
<p>For $i=0 To UBound($parr) -1</p>
<p>$titlu =  StringRegExp($parr[$i],'&lt;h3 class=&quot;r&quot;&gt;([^`]*?)&lt;/h3&gt;&#8217;,2)<br />
$titlu = StringRegExpReplace($titlu[1],&quot;&lt;a([^`]*?)&gt;&quot;,&quot;&quot;)<br />
$titlu = StringRegExpReplace($titlu,'&lt;em&gt;&#8217;,&quot;&quot;)<br />
$titlu = StringRegExpReplace($titlu,'&lt;/em&gt;&#8217;,&quot;&quot;)<br />
$titlu = StringRegExpReplace($titlu,'&lt;/a&gt;&#8217;,&quot;&quot;)</p>
<p>$adresa = StringRegExp($parr[$i],'&lt;h3 class=&quot;r&quot;&gt;([^`]*?)&lt;/h3&gt;&#8217;,2)<br />
$adresa = StringRegExpReplace($adresa[1],'([^`]*?)href=&quot;&#8217;,&quot;&quot;)<br />
$adresa = StringRegExpReplace($adresa,&#8217;&quot;([^`]*?)a&gt;&#8217;,&quot;&quot;)</p>
<p>$domain = StringLeft ( $adresa, StringInStr($adresa,&quot;/&quot;,0,3))</p>
<p>$descriere = StringRegExp($parr[$i],'&lt;span class=&quot;st&quot;([^`]*?)&lt;/span&gt;&lt;/div&gt;&#8217;,2)<br />
$descriere = StringRegExpReplace($descriere[1],'&lt;span class=&quot;f&quot;&#8217;,&quot;&quot;)<br />
$descriere = StringRegExpReplace($descriere,'&lt;/span&gt;&#8217;,&quot;&quot;)<br />
$descriere = StringRegExpReplace($descriere,'&lt;b&gt;&#8230;&lt;/b&gt;&#8217;,&quot;&quot;)<br />
$descriere = StringRegExpReplace($descriere,'&lt;em&gt;&#8217;,&quot;&quot;)<br />
$descriere = StringRegExpReplace($descriere,'&lt;/em&gt;&#8217;,&quot;&quot;)<br />
$descriere = StringRegExpReplace($descriere,&#8217;&gt;&#8217;,&quot;&quot;)<br />
$descriere = StringRegExpReplace($descriere,&#8217;&amp;nbsp;&#8217;,&quot;&quot;)</p>
<p>;For $i=1 To UBound($Ar_domains)-1 Step +1<br />
;ConsoleWrite($adresa&amp;&quot; &quot;&amp;$Ar_domains[$i]&amp;@CRLF)<br />
;MsgBox(0,0,&quot;plm&quot;)<br />
;If Not(StringInStr($adresa,$Ar_domains[$i]) = 0) then<br />
;ContinueLoop(2)<br />
;EndIf<br />
;Next</p>
<p>_ArrayAdd($Ar_domains,$domain)</p>
<p>$xstr=&quot;&quot;<br />
$xstr&amp;=@CRLF&amp;@CRLF<br />
$xstr&amp;=&quot;INSERT INTO `ats_sites` (`username`, `password`, `url`, `short_url`, `title`, `description`, `category`, `banner_url`, `email`, `join_date`, `active`, `openid`, `user_ip`) VALUES&quot;&amp;@CRLF<br />
$xstr&amp;=&quot;(&#8216;admin&quot;&amp;$admin&amp;&quot;&#8217;,&quot;&amp;@CRLF<br />
$xstr&amp;=&quot;&#8217;c08ac56ae1145566f2ce54cbbea35fa3&#8242;,&quot;&amp;@CRLF<br />
$xstr&amp;=&quot;&#8217;&quot;&amp;$adresa&amp;&quot;&#8217;,&quot;&amp;@CRLF<br />
$xstr&amp;=&quot;&#8217;&quot;&amp;$adresa&amp;&quot;&#8217;,&quot;&amp;@CRLF<br />
$xstr&amp;=&quot;&#8217;&quot;&amp;$titlu&amp;&quot;&#8217;,&quot;&amp;@CRLF<br />
$xstr&amp;=&quot;&#8217;&quot;&amp;$descriere&amp;&quot;&#8217;,&quot;&amp;@CRLF<br />
$xstr&amp;=&quot;&#8217;SSM&#8217;,&quot;&amp;@CRLF<br />
$xstr&amp;=&quot;&#8217;http://box1.ro.lt/hwww/eval/db-class/images/button.png&#8217;,&quot;&amp;@CRLF<br />
$xstr&amp;=&quot;&#8217;andrei@flashsoft.ro&#8217;,&quot;&amp;@CRLF<br />
$xstr&amp;=&quot;&#8217;2013-09-03&#8242;, 1, 0, &quot;&amp;@CRLF<br />
$xstr&amp;=&quot;&#8217;10.0.1.1&#8242;);&quot;&amp;@CRLF<br />
FileWrite($file,$xstr)</p>
<p>$xstr=&quot;&quot;<br />
$xstr&amp;=@CRLF&amp;@CRLF<br />
$xstr&amp;=&quot;INSERT INTO `ats_stats` (`username`, `rank_cache`, `rank_cache_time`, `old_rank`, `days_inactive`, `total_rating`,&quot;<br />
$xstr&amp;=&quot;`num_ratings`, `unq_pv_overall`, `tot_pv_overall`, `unq_in_overall`, `tot_in_overall`, `unq_out_overall`,&quot;<br />
$xstr&amp;=&quot;`tot_out_overall`, `unq_pv_0_daily`, `unq_pv_1_daily`, `unq_pv_2_daily`, `unq_pv_3_daily`, `unq_pv_4_daily`, &quot;<br />
$xstr&amp;=&quot;`unq_pv_5_daily`, `unq_pv_6_daily`, `unq_pv_7_daily`, `unq_pv_8_daily`, `unq_pv_9_daily`, `unq_pv_max_daily`, &quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`, &quot;<br />
$xstr&amp;=&quot;`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`, &quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`, &quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`, &quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`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`,&quot;<br />
$xstr&amp;=&quot;`tot_out_9_weekly`, `tot_out_max_weekly`, `unq_pv_0_monthly`, `unq_pv_1_monthly`, `unq_pv_2_monthly`, `unq_pv_3_monthly`, &quot;<br />
$xstr&amp;=&quot;`unq_pv_4_monthly`, `unq_pv_5_monthly`, `unq_pv_6_monthly`, `unq_pv_7_monthly`, `unq_pv_8_monthly`, `unq_pv_9_monthly`, &quot;<br />
$xstr&amp;=&quot;`unq_pv_max_monthly`, `tot_pv_0_monthly`, `tot_pv_1_monthly`, `tot_pv_2_monthly`, `tot_pv_3_monthly`, `tot_pv_4_monthly`,&quot;<br />
$xstr&amp;=&quot;`tot_pv_5_monthly`, `tot_pv_6_monthly`, `tot_pv_7_monthly`, `tot_pv_8_monthly`, `tot_pv_9_monthly`, `tot_pv_max_monthly`, &quot;<br />
$xstr&amp;=&quot;`unq_in_0_monthly`, `unq_in_1_monthly`, `unq_in_2_monthly`, `unq_in_3_monthly`, `unq_in_4_monthly`, `unq_in_5_monthly`,&quot;<br />
$xstr&amp;=&quot;`unq_in_6_monthly`, `unq_in_7_monthly`, `unq_in_8_monthly`, `unq_in_9_monthly`, `unq_in_max_monthly`, `tot_in_0_monthly`,&quot;<br />
$xstr&amp;=&quot;`tot_in_1_monthly`, `tot_in_2_monthly`, `tot_in_3_monthly`, `tot_in_4_monthly`, `tot_in_5_monthly`, `tot_in_6_monthly`,&quot;<br />
$xstr&amp;=&quot;`tot_in_7_monthly`, `tot_in_8_monthly`, `tot_in_9_monthly`, `tot_in_max_monthly`, `unq_out_0_monthly`, `unq_out_1_monthly`,&quot;<br />
$xstr&amp;=&quot;`unq_out_2_monthly`, `unq_out_3_monthly`, `unq_out_4_monthly`, `unq_out_5_monthly`, `unq_out_6_monthly`, `unq_out_7_monthly`,&quot;<br />
$xstr&amp;=&quot;`unq_out_8_monthly`, `unq_out_9_monthly`, `unq_out_max_monthly`, `tot_out_0_monthly`, `tot_out_1_monthly`, `tot_out_2_monthly`,&quot;<br />
$xstr&amp;=&quot;`tot_out_3_monthly`, `tot_out_4_monthly`, `tot_out_5_monthly`, `tot_out_6_monthly`, `tot_out_7_monthly`, `tot_out_8_monthly`,&quot;<br />
$xstr&amp;=&quot;`tot_out_9_monthly`, `tot_out_max_monthly`) VALUES&quot;</p>
<p> $xstr&amp;=@CRLF&amp;@CRLF<br />
 $xstr&amp;=&quot;&quot;&amp;&quot;(&#8216;admin&quot;&amp;$admin&amp;&quot;&#8217;, 1, 0, 0, 0, &quot;&amp;$st_rating&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;$st_votes_cast&amp;&quot;, &quot;&amp;Random(30,100,1)&amp;&quot;, &quot;&amp;Random(100,130,1)&amp;&quot;, &quot;&amp;Random(30,50,1)&amp;&quot;, &quot;&amp;Random(100,130,1)&amp;&quot;, &quot;&amp;Random(40,70,1)&amp;&quot;, &quot;&amp;Random(130,160,1)&amp;&quot;, &quot; ; Num rating , Pv-ov<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;,&quot;<br />
 $xstr&amp;=&quot;&quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;, &quot;&amp;Random(0,66,1)&amp;&quot;);&quot;</p>
<p>FileWrite($file,$xstr)</p>
<p>$admin = $admin +1</p>
<p>;if StringRegExp($parr[$i],&quot;&lt;TD&gt;ADRESA EMAIL:&quot;,0) Then</p>
<p>;$nume = StringRegExp($parr[$i],&quot;&lt;EM&gt;vezi&lt;/EM&gt;&lt;/A&gt;&lt;/DIV&gt;([^`]*?)&lt;DIV class=clear&gt;&lt;/DIV&gt;&lt;/DIV&gt;&quot;,2)<br />
;$nume = StringRegExpReplace($nume[1],&quot;\n&quot;,&quot;&quot;)<br />
;$nume = stringReplace($nume,@lf,&quot;&quot;)<br />
;$nume = stringReplace($nume,@CR,&quot;&quot;)<br />
;$nume = stringReplace($nume,@CRLF,&quot;&quot;)<br />
#cs<br />
If($nume[0] &gt; 2) Then<br />
For $ps = 0 To $nume[0]<br />
$nume[2] = $nume[2]+$nume[2+$ps]<br />
Next<br />
EndIf<br />
#ce</p>
<p>;_ArrayAdd($Av_nume,$nume)<br />
;$email = StringRegExp($parr[$i],&quot;&lt;TD&gt;ADRESA EMAIL: &lt;STRONG&gt;&lt;A([^`]*?)&lt;/A&gt;&quot;,2)<br />
;$email = StringRegExpReplace($email[1],&quot;href([^`]*?)&gt;&quot;,&quot;&quot;)<br />
;$email = stringReplace($email,&quot; &quot;,&quot;&quot;)<br />
;_ArrayAdd($Av_email,$email)</p>
<p>;local $xstr =&#8217;&quot;&#8217;&amp;$nume&amp;&#8217;&quot;,&quot;&quot;,&quot;&#8217;&amp;$nume&amp;&#8217;&quot;,&quot;&quot;,&quot;&#8217;&amp;$email&amp;&#8217;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;&#8217;&amp;@CRLF<br />
;FileWrite($file,$xstr)</p>
<p>;EndIf</p>
<p>Next</p>
<p>_IEQuit ($oIE)<br />
ConsoleWrite($admin&amp;@CRLF)<br />
Next</p>
<p>;_ArrayDisplay($Av_nume)<br />
;_ArrayDisplay($Av_email)</p>
<p>Next ; Kill First Loop</p>
<p>FileClose($file)<br />
MsgBox(0,0,&quot;done&quot;)<br />
#cs</p>
<p>For $i=0 To UBound($arrz) -1<br />
If ($i &gt;= (UBound($arrz) -3) ) Then<br />
$arr3 = $arrz[$i]<br />
For $j = 0 To UBound($arr2) &#8211; 1</p>
<p>MsgBox(0,0, $arr3[0]&amp;@CRLF&amp;@CRLF&amp;@CRLF )<br />
ExitLoop;</p>
<p>	Next<br />
EndIf<br />
	Next<br />
#ce</p>
<p>#cs</p>
<p>;(?s)&lt;SPAN class=delay&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</p>
<p>$patern_div = &#8216;.*&#8217;</p>
<p>_ArrayDisplay($arr);</p>
<p>$file = FileOpen(&quot;test.html&quot;, 1)</p>
<p>; Check if file opened for writing OK<br />
If $file = -1 Then<br />
    MsgBox(0, &quot;Error&quot;, &quot;Unable to open file.&quot;)<br />
    Exit<br />
EndIf</p>
<p>FileWrite($file, $sHTML)<br />
FileClose($file)<br />
#ce</p>
<p>   ; $pagina = &quot;http://www.baroul-bucuresti.ro/index.php?w=definitivi&amp;p=1&quot;<br />
;	InetGet($pagina, @ScriptDir &amp; &quot;\html.html&quot;)</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/preluare-entitatii-din-google-search-cu-autoit/">Preluare entitații din Google Search cu Autoit</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://azrael-sub7.ro/preluare-entitatii-din-google-search-cu-autoit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Schimba boot-ul remote intre Windows și Linux folosind Grub4Dos</title>
		<link>https://azrael-sub7.ro/schimba-boot-ul-remote-intre-windows-si-linux-folosind-grub4dos/</link>
		<comments>https://azrael-sub7.ro/schimba-boot-ul-remote-intre-windows-si-linux-folosind-grub4dos/#respond</comments>
		<pubDate>Tue, 29 Oct 2013 14:22:51 +0000</pubDate>
		<dc:creator><![CDATA[Andrei O.]]></dc:creator>
				<category><![CDATA[Limbaje de scripting]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://azrael-sub7.ro/?p=1121</guid>
		<description><![CDATA[<div class='simple-old-alert alert-default alert-info'>
<p class='alert-content'>This article has been written before more than 24months, information might old.</p>
</div>
<p>De multe ori poți avea o mașină în rețea care are instalat și o distribuție de linux și un SO Windows și vrei ca remote să poți schimba între două sau mai multe sisteme de operare.<br />
În cazul în care nu am introduce în discuție un sistem de operare precum Windows totul ar fi prea simplu pentru ca evident am schimba configurarea boot loader-ului am restarta mașina și asta ar fi tot.<br />
Dar în cazul în care se ne conectăm la o mașina care rulează Windows, și când spun conectăm ma refer la orice formă de administrare de la distanță ( rdp, vnc, rcp, orice) în mod cel mai probabil nu vom putea schimba configurația boot loader-ului pentru că Windows-ul cel puțin deocamdată nu ne oferă o metodă nativă de a lucra cu fișiere aflate pe un sistem ext3 ext4 și probabil și pe altele mai des folosite de către o distribuție linux.<br />
Așadar o simpla soluție este să facem boot într-un loader care există într-un spațiu ntfs, &#8230;</p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/schimba-boot-ul-remote-intre-windows-si-linux-folosind-grub4dos/">Schimba boot-ul remote intre Windows și Linux folosind Grub4Dos</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class='simple-old-alert alert-default alert-info'><p class='alert-content'>This article has been written before more than 24months, information might old.</p></div><p>De multe ori poți avea o mașină în rețea care are instalat și o distribuție de linux și un SO Windows și vrei ca remote să poți schimba între două sau mai multe sisteme de operare.<br />
În cazul în care nu am introduce în discuție un sistem de operare precum Windows totul ar fi prea simplu pentru ca evident am schimba configurarea boot loader-ului am restarta mașina și asta ar fi tot.<br />
Dar în cazul în care se ne conectăm la o mașina care rulează Windows, și când spun conectăm ma refer la orice formă de administrare de la distanță ( rdp, vnc, rcp, orice) în mod cel mai probabil nu vom putea schimba configurația boot loader-ului pentru că Windows-ul cel puțin deocamdată nu ne oferă o metodă nativă de a lucra cu fișiere aflate pe un sistem ext3 ext4 și probabil și pe altele mai des folosite de către o distribuție linux.<br />
Așadar o simpla soluție este să facem boot într-un loader care există într-un spațiu ntfs, și asta în principal pentru ca linux-ul de la versiunea 2.6 conține implicit un driver scris de Anton Altaparmakov (University of Cambridge) care permite operații de citire/suprascriere pe ntfs.<br />
Folosind grub4dos deci putem încărca atât un SO Windows cat si un SO bazat pe linux, însă grub4dos poate avea avea limitările lui ( si aici ma refer la UEFI), dar majoritatea mașinilor nu sunt UEFI-only ( ma rog cele mai vechi nu au UEFI deloc ).<br />
După ce instalam grub4dos pe o partiție e cazul să facem un menu.lst care să fie capabil sa încarce un Windows cat și un linux, dar dacă distribuția care o folosiți utilizează Grub2 eu as prefera să încarc grub2 decât să încarc linux-ul direct din grub4dos.<br />
În final menu.lst poate conține ceva similar cu:</p>
<pre class="brush: plain; title: ; notranslate">
# This is a sample menu.lst file. You should make some changes to it.
# The old install method of booting via the stage-files has been removed.
# Please install GRLDR boot strap code to MBR with the bootlace.com
# utility under DOS/Win9x or Linux.

color white/black black/light-gray
timeout 6
default /default
savedefault 1

title Windows 
root (hd1,2)
chainloader /bootmgr


title Linux Grub2
root (hd1,0)
kernel /boot/grub/i386-pc/core.img
boot 
</pre>
<p>Acest exemplu poate încarcă un Win7 și un Grub2, iar acum putem de la distanță modificând acest fișier și restartând mașina să schimbam între cele doua SO de la distanța, modificarea în cazul de mai sus ar fi savedefault 1 pentru Grub2 si savedefault 0 pentru Windows. Putem să facem și un script ca sa nu mai deschidem fișierul:</p>
<p>Cu programul sed e simplu: </p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/sh

if [ $1 = &quot;1&quot; ]; then
   sed '9s/.*/savedefault 0/' menu.lst
   echo &quot;Changed boot to Windows&quot;
else
  sed '9s/.*/savedefault 1/' menu.lst
  echo &quot;Changed boot to Grub2&quot;
fi

</pre>
<p>Pe windows folosind doar batch se implementează extrem de ineficace similar cu:</p>
<p>@echo off<br />
setlocal enabledelayedexpansion</p>
<p>set path=I:\menu.lst<br />
::&#8212;&#8212;-<br />
set pathtemp=%path%2<br />
set old=savedefault 0<br />
set new=savedefault 1<br />
set cnd=%1<br />
set count = 0<br />
IF [%1]==[] ( set cnd=2) </p>
<p>IF EXIST %pathtemp% ( del %pathtemp% /F )</p>
<p>IF %cnd% EQU 1 (</p>
<p>For /f &quot;tokens=* delims=&quot; %%x in (%path%) do (<br />
For /f &quot;tokens=*&quot; %%a in (&quot;%%x&quot;) do (<br />
if /i &quot;%%a&quot; EQU &quot;%new%&quot; (set output=!old!) else set output=%%a<br />
echo !output! &gt;&gt; %pathtemp%<br />
)<br />
)<br />
copy  %pathtemp% %path% /Y &gt; NUL<br />
echo Changed boot to Windows.<br />
) ELSE (<br />
For /f &quot;tokens=* delims=&quot; %%x in (%path%) do (<br />
For /f &quot;tokens=*&quot; %%a in (&quot;%%x&quot;) do (<br />
if /i &quot;%%a&quot; EQU &quot;%old%&quot; (set output=!new!) else set output=%%a<br />
echo !output! &gt;&gt; %pathtemp%<br />
)<br />
)<br />
copy  %pathtemp% %path% /Y &gt; NUL<br />
echo Changed boot to Grub2.<br />
)</p>
<p>Dar nu va funcționa perfect mai ales ca &#8216;for /f&#8217; prin comportamentul implicit ( care nu se poate schimba ) sare liniile goale și dacă dorești sa ai linii goale pe acolo va trebui sa iți faci logica statică în for-urile outer de mai sus în care să specifici vreau 1,2,3 linii după ce am citit x linii care au conținut ceva poți trimite o line goala folosind &#8216;@echo:&#8217;, mai mult pentru asta am imbricat 2 for-uri ca altfel se putea și cu un singur for.  </p>
<p>În orice caz recomand pentru windows să se folosească orice altceva decât batch.  </p>
<p>The post <a rel="nofollow" href="https://azrael-sub7.ro/schimba-boot-ul-remote-intre-windows-si-linux-folosind-grub4dos/">Schimba boot-ul remote intre Windows și Linux folosind Grub4Dos</a> appeared first on <a rel="nofollow" href="https://azrael-sub7.ro">azrael-sub7 - Weblog Personal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://azrael-sub7.ro/schimba-boot-ul-remote-intre-windows-si-linux-folosind-grub4dos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
