Reklama
Nepřihlášený uživatel | Zaregistrovat se
 

Téma:

Počítače a InternetVývoj software

Spravuje:

hkmaly

Může vás zajímat



Reklama


PHP


spolumoderuje harry_x

Prosíme o několik drobných laskavostí:

  • před položením dotazu zkuste zapátrat v dokumentaci. Nikomu se nebude chtít formulovat znova a znova tytéž odpovědi, které již dříve a mnohem lépe napsal někdo jiný.

    Konkrétně návod k instalaci PHP na sebeobskurnejsich platformach se nachází zde.

    Dalším užitečným zdrojem informací o PHP, PHPLIB, ale i spouste jinych veci mohou být stránky Jirky Koska.

    mnohe casti oficialniho manualu k PHP jsou jiz prelozeny do cestiny, zacit muzete zde

    Mnoho otázek k instalaci je zodpovězeno na této stránce.

    A v neposlední řadě se dá zkusit i vyhledávací formulář na této stránce (napravo od formuláře pro odesílání příspěvků).

  • Dodržujte prosím téma, kterým je výhradně programování v jazyce PHP.
    Pokud se kupříkladu Váš dotaz týká pouze databází, zkuste raději klub "SQL".
    Pokud se týká javascriptu, zkuste klub javascript.

  • nepokoušejte se zvýrazňovat své příspevky přebytečnými html značkami. kdyby to dělali všichni, výsledek by se nedal číst. proto budou graficky přespříliš kreativní příspěvky odmazávány.

  • Nadávání off-topic přispěvatelum přenechte moderátorovi klubu.

  • Pokud na Vaši otázku nikdo neodpovídá, nejspíše byla položena tak nešťastným zpusobem, ze na ni při nejlepší vuli nelze odpovědět. Druhá možnost je, že nikdo neví. Každopádně si nijak nepomůžete, budete-li se odpovědi domáhat jejím opakováním provázeným verbální agresivitou.

  • Pokud navzdory výše uvedenému opravdu myslite, ze sem musite neco napsat, zkuste ještě najít odpověď na váš dotaz na www.google.com

  • Tento klub není určen pro příspěvky typu "mám nové stránky v PHP, prosím otestujte mi je" - k tomu, aby člověk našel chybu v jakékoli aplikaci, nemusí být programátor. K podobným žádostem prosím použijte raději obecnější kluby jako www.

Bez výstrahy budou mazány příspěvky, jejichž autoři předchozí řádky očividně ignorovali.
Tato pravidla jsou šita na míru pokročilejším uživatelům, bez jejichž přítomnosti by vaše dotazy mnohdy zůstaly nezodpovězeny.

Připomínky k výše uvedenému akceptuji pouze prostřednictvím interní okouní pošty.

Poznámka: vzhledem k záplavě spamů byl anonymům zakázán zápis a asi to tak nějakou dobu vydrží.

Mesic PHP bugu sice uz dozuril, ale nalezene chyby jeste nebyly opraveny ...


mr_x Find what you love and let it kill you. 
pravda, dik
Můžeš použít mb_ereg a mb_ereg_replace z rozšíření mbstring:
http://cz.php.net/manual/en/function.mb-ereg.php

Pokud nepoužíváš UTF-8, tak si ale nezapomeň nastavit příslušné kódování pomocí mb_regex_encoding().
mr_x Find what you love and let it kill you. 
spadlo me na stul ze mam rozhodit nejakou starou aplikaci na php 7 - je docela prospikovana ereg a ereg replace apod ... je z toho nejaka easy way out?

napada me - udelat si lastni ereg() jako wrapper na preg_match() - je to blby napad?
 
mr_x Find what you love and let it kill you. 
dik, ja k tomu po dlouhem klikani dosel v podstate taky, ale furt jsem si myslel, ze jsem jen blbej, chyba je u me a pouze nechapu jak to pouzit (ma tam mraky metod okolo toho, jednou je to addContactList pak je tam taky addContactLists newContactList atd atd tak jsem zkousel ruzne kombinace a pokazde to bud hlasi ze chce object nebo zase array) ...

PHPstorm a podobne by urcite pomohly, ale ja zase tak moc neprogramuju, dlouha leta jsem si vystacil se sublimetext, ted obcas zkusim pouzit i microsoft code ktery asi umi spolupracovat s XDebug, mozna bych mel tomu nejaky cas venovat a zkusit si to nastavit
Reakce na | Vlákno  
Vypadá to, že třída Request\Import\Holder\ContactLists dědí z SmartEmailing\v3\Models\AbstractMapHolder, který dědí z SmartEmailing\v3\Models\AbstractHolder, která implementuje interface JsonSerializable. Ani třída ContactsLists, ani AbstractMapHolder ani AbstractHolder neimplmementují interface ArrayAccess, který je potřebný pro to, abys na objektu mohl array operator [] použít. Je to na to vyplnit issue na GitHubu a nechat autora, ať to opraví. (Popř. ideálně to opravit sám a poslat autorovi pull request, který jen mergne.)

Reakce na | Vlákno  

Slušné IDEčko jako PhpStorm výrazně zvýší tvoji produktivitu, tak bych zauvažoval, proč si člověk dobrovolně kazí svůj život.

Ad ty zdrojáky, phpko to vypisuje celkem dobře:
Cannot use object of type SmartEmailing\v3\Request\Import\Holder\ContactLists as array na řádku 385 v Contact.php -- tzn. tadle knihovna se snaží použít třídu ContactLists jako array (operátorem []) a z nějakého důvodu ta třída takhle použít nejde. Dost možná se může jednat o bug v knihovně samotné; což by stálo za další proklikání pomocí PhpStormu, kde bys to vyřešil tak za dvě minuty.

mr_x Find what you love and let it kill you. 
jako nejaky phpstorm bo tak neco? nic takoveho nevlastnim ...

nicmene, vyspal jsem se na to (pun intended) a za pomoci Httpful jsem to udelal rucne:
nclude('./httpful.phar'); $body = ' { "settings": { "update": true, "add_namedays": true, "add_genders": true, "add_salutions": true, "preserve_unsubscribed": true, "skip_invalid_emails": false }, "data": [ { "emailaddress": "martin@smartemailing.cz", "name": "Martin", "surname": "Dvrořák", "contactlists": [ { "id": 1, "status": "confirmed" } ] }, { "emailaddress": "no-emails-anymore@smartemailing.cz", "blacklisted": 1 } ] } '; //$url = "https://app.smartemailing.cz/api/v3/check-credentials"; $url = "https://app.smartemailing.cz/api/v3/import"; $response = \Httpful\Request::post($url) // Build a PUT request... ->sendsJson() // tell it we're sending (Content-Type) JSON... ->authenticateWith('u', 'pw') // authenticate with basic auth... ->body($body)->send(); // attach a body/payload... print_r($response);
bo jak hkmaly spravne poznamenal ono by to na tom stavajicim webhostingu stejne kvuli verzi php nevalilo
spic už jen wtf 
použij debugger, ne?
Reakce na | Vlákno  
mr_x Find what you love and let it kill you. 
No to jsem si taky myslel tak jsem tam na tvrdo poslal array a to zase okamžitě hlásí ze to chce objekt :(
von_Zeppelin Oliheň Beznaděje  pclib php framework
Zjevně se používá objekt ContactList někde, kde to očekává pole. Ale kde přesně a proč ta chyba vzniká, to už asi budeš muset dohledat podle toho stack-trace...
 
mr_x Find what you love and let it kill you. 
po pravde ten seznam kam ty emaily potrebuju hazet bude vzdycky jen jeden, tzn potrebuju to nejak donutit aby to proste mrskal do id 1 - takze by me uplne stacilo tam nejak doprasit to

"contactlists": [
{
"id": 1,
"status": "confirmed"
}
],

viz https://app.smartemailing.cz/docs/api/v3/index.html#api-Import-Import_contacts

ale taky nejak neumim najit kde by se to dalo na tvrdo nastavi ;(
mr_x Find what you love and let it kill you. 
no zatim to testuju na svem pocitaci a tam koukam ze me bezi PHP Version 7.0.9 ... nicmene tam kde by to melo bezet v realu je 5.3.29 .... zatim jsem si chtel jen overit ze to pion/smart-emailing-v3 umi co potrebuju...
hkmaly - Slava pomlcky -  .
Verze PHP?
Reakce na | Vlákno  
mr_x Find what you love and let it kill you. 
netusite nahodou co delam blbe kdyz dostavam tenhle error?
Fatal error: Uncaught Error: Cannot use object of type SmartEmailing\v3\Request\Import\Holder\ContactLists as array in /Users/test/LocalWebs/smartemailer/vendor/pion/smart-emailing-v3/src/Request/Import/Contact.php:385 Stack trace: #0 /Users/test/LocalWebs/smartemailer/vendor/pion/smart-emailing-v3/src/Request/Import/Contact.php(401): SmartEmailing\v3\Request\Import\Contact->addContactList(Object(SmartEmailing\v3\Request\Import\ContactList)) #1 /Users/test/LocalWebs/smartemailer/test2.php(20): SmartEmailing\v3\Request\Import\Contact->newContactList(1) #2 {main} thrown in /Users/test/LocalWebs/smartemailer/vendor/pion/smart-emailing-v3/src/Request/Import/Contact.php on line 385
snazim se pouzit tohle: https://github.com/pionl/smart-emailing-v3
Muj kode je tohle:
include dirname(__FILE__).'/vendor/autoload.php'; use SmartEmailing\v3\Api; use SmartEmailing\v3\Request\Import\ContactList; include dirname(__FILE__).'/vendor/pion/smart-emailing-v3/src/Request/Import/ContactList.php'; $api = new Api('yxz', 'apikey'); $import = $api->import(); $contact = $import->newContact('test@test.cz'); $contact->setName('Martin')->setSurname('Příjmení2')->setNameDay('2017-12-11 11:11:11'); $import->addContact($contact); $contact2 = $import->newContact('test2@test.cz'); $contact2->setName('Jan'); //$contact2->newContactList(new ContactList(1,'confirmed')); $contact2->newContactList(1); $import->addContact($contact2); $import->send(); ?>
a proste at delam co delam nedokazu nastavit svuj contactlist tim $contact2->newContactList(1);
 
the_majkl  
Ne :-)
hkmaly - Slava pomlcky -  .
Hele a nectes si to jeste pro jistotu pres HTTP na cizich wifi?
the_majkl  
Nechodí se na adresář (tam to záměrně hodí permission denied), je to můj katalog ebooks, abych si měl co číst na tabletu nebo tlf. Zajímá mně, jestli tam nechodí někdo, kdo tam nemá co dělat, neb nechci být popotahován za porušování autorského práva, kdyby to někdo zveřejnil a prásknul. Nechci tam dávat přístup na jméno a heslo, protože to neumí aplikace, které na čtení používám a nechci to URL každých pár dní měnit preventivně, to by byl opruz.
hkmaly - Slava pomlcky -  .
Pokud chodi ciste na adresar, nepotrebujes ani rewrite, index.php by mel mit prioritu. Ale jinak jako ochrana je "nikomu nerict url" dost slabe.

Nezapomen logovat user agenta. Mozna je to google.
the_majkl  
Spic: To je ale hosting, ne můj server. Mám z toho jen statistiku typu "5 přístupů za poslední týden", ale konkrétně odkud tam není.

Sarnegarth: Zkusím googlit tohle, dík.
spic už jen wtf 
Datum, čas a IP adresa se loguje i v Apache logu. Jistou šanci zjistit "odkud" máš z referreru, ten tam může být taky, nebo si ho zaloguješ pomocí PHP.