Hirdetés

2024. április 25., csütörtök

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)

Hozzászólások

(#10001) RootRulez


RootRulez
félisten

Sziasztok!

Átpakolnám az oldlaam UW-ről ATW-re, de egy oldal nem működik.

Ez a parancs vinné át a másik odalra: header("Location: news.php" ); (a 24. sorban)

De a böngésző ezt írja: "Warning: Cannot modify header information - headers already sent by (output started at /tonews.php:6) in /tonews.php on line 24"

Az ATW nem engedné ezt a funkciót vagy mi? :F

═════════════════════════════════════════

(#10002) Sk8erPeter válasza RootRulez (#10001) üzenetére


Sk8erPeter
nagyúr

"Átpakolnám az oldlaam UW-ről ATW-re"
Az igen. :DDD Egyik jobb, mint a másik. :DD

Kipróbáltam egy ATW-s oldalon, teljesen jól működik a header-es átirányítás, amennyiben nincs más output előtte...
Amúgy az a gáz, hogy hiába irányítod át headerrel, az a fosadék reklám-frame ott marad.

Mi van a 6. sorban?

Egyébként ha teljesen át akarod irányítani, akkor miért nem teljes címet használsz, és miért nem kapásból a legelején?

<?php
$new_location = 'http://example.com';
header('Location: '.$new_location);
die();

Meg mondjuk illene kiküldeni egy 301-es headert is, azt most kihagytam.
(.htaccess-megoldást direkt nem mondtam, mert a szaros ATW nem engedélyezi a használatát, ahelyett, hogy korlátozná a módosítható opciókat)

==

(#10000) mobal :
nincs mit.
Tiéd a 10000. hsz.? Nem rossz. :D

[ Szerkesztve ]

Sk8erPeter

(#10003) RootRulez válasza Sk8erPeter (#10002) üzenetére


RootRulez
félisten

A 6. sorba az van, hogy <?php :DDD

Azért UW meg ATW, mert erre telik. :U

═════════════════════════════════════════

(#10004) RootRulez válasza RootRulez (#10003) üzenetére


RootRulez
félisten

Nekem csak nem akar menni. :(

═════════════════════════════════════════

(#10005) Sk8erPeter válasza RootRulez (#10003) üzenetére


Sk8erPeter
nagyúr

Hát akkor meg is van a baj forrása. :)

Régen amúgy amikor kezdtem, én sem nem akartam lét szánni domainre meg tárhelyre, de aztán rájöttem, hogy már annyira olcsón vesztegetik ezeket a nagy verseny miatt, hogy már annyiért meg lehet kapni, amennyiért veszel egy kocsmában egy sört havonta.
Sörre meg kinek nincs pénze?? :DD

Kezdetnek, egy domain birtokában (kb. 1200/évért már megkapsz egy .hu-st!!!) használhatod a Newhostingot, aztán a nagyon olcsó, de minőségi Tárhelyparkot, külföldiek közül meg sokan dicsérték a másik topicban a hostgatort.

Az UW-nél, ATW-nél annyi korlátba és hülyeségbe lehet ütközni (pl. htaccess tiltása és hasonlók), meg annyira zavaró a reklámframe, hogy bőven megéri váltani.
Persze nem akarlak rábeszélni, de gondold meg, hogy havi egy sör áráért legalább minőséget kapsz.

Sk8erPeter

(#10006) RootRulez válasza Sk8erPeter (#10005) üzenetére


RootRulez
félisten

Már sokszor gondolkodtam rajta, de még meglátom, egyelőre örülnék, ha ez működne, mert a 6. sorból eltüntetve se megy. :(

Most kitöröltem minden mást és működik. - Azt csinálná a php-m, hogy egy fájlt megnyit, hozzáad egyet és továbblép egy másik oldalra, ezzel számolnám, hogy hányszor nyílt meg... A hozzáadós részt kitöröltem, és csak az átirányítást hagytam meg, úgy működik.
- De az átirányítás lényege a hozzáadás lett volna... :W

[ Szerkesztve ]

═════════════════════════════════════════

(#10007) Sk8erPeter válasza RootRulez (#10004) üzenetére


Sk8erPeter
nagyúr

FÁJL LEGELEJÉRE:

<?php
$new_location = 'http://example.com'; // cseréld le
// 301 Moved Permanently
header('Location: ' . $new_location, TRUE, 301);

Nyilván cseréld ki az example.com-ot sajátra...

===

Szerk.:
ha valami nem megy, ne azt írd, hogy "nekem nem megy", hanem írd le, hogy milyen hibát tapasztaltál.......

[ Szerkesztve ]

Sk8erPeter

(#10008) Sk8erPeter válasza RootRulez (#10006) üzenetére


Sk8erPeter
nagyúr

Csak most látom, amit a szerkesztés után írtál.
Annak a hozzáadós függvénynek is működnie kell, csak vigyázz arra, hogy ne írass ki SEMMIT az outputra a header előtt.
Akár egy szóköz is boríthatja az egészet, ami miatt azt a hibát kapod, amit bemásoltál korábban.
Egyébként pontosan ezért van az, hogy a csakis PHP-kódokat tartalmazó fájlba soha nem szabad záró PHP-taget rakni, mert elég egy kiírt karakter, és máris ilyen hülye hibák fordulhatnak elő.

Lásd hivatalos oldal vonatkozó részét:
"If a file is pure PHP code, it is preferable omit the PHP closing tag at the end of the file. This prevents accidental whitespace or new lines after PHP closing tag which may cause unwanted effects because PHP will start output buffering when there is no intention from the programmer to send any output at that point in the script."

==
Ezek alapján működnie kéne (most pszeudokód az a hozzáadós függvény):

<?php

function add_visitor($xyz){
// logging stuff, do this, do that, etc....
}

$xyz = 'blablabla';
add_visitor($xyz);

$new_location = 'http://example.com'; // cseréld le
// 301 Moved Permanently
header('Location: ' . $new_location, TRUE, 301);
exit();

// ...

[ Szerkesztve ]

Sk8erPeter

(#10009) RootRulez válasza Sk8erPeter (#10008) üzenetére


RootRulez
félisten

Köszi, végülis az elején egy

<head>
blablabla
</head>

kavart be. :U

Most pedig valahogy átnyaggatom az SQL adatbázisom (megjegyzem, hogy az export-import nem müködik. :W

═════════════════════════════════════════

(#10010) Sk8erPeter válasza RootRulez (#10009) üzenetére


Sk8erPeter
nagyúr

Miért van ilyen az elején? Miért nem egy <!DOCTYPE kezdetű rész vagy legalább <html>? :D

Amúgy bírom ezeket a "nem müködik"-írásaidat. :D (guess what)

Sk8erPeter

(#10011) RootRulez válasza Sk8erPeter (#10010) üzenetére


RootRulez
félisten

Mert eléggé nem vágom ezeket és a sok-sok kínai szöveg helyett nálam az jön, hogy nem működik...

XLS-ként próbáltam importálni a másik szerverről és ezt írja: Fatal error: Uncaught exception 'Exception' with message 'The filename /tmp/phpafaM8W is not recognised as an OLE file' in /libraries/PHPExcel/PHPExcel/Shared/OLERead.php:80 Stack trace: #0 /libraries/PHPExcel/PHPExcel/Reader/Excel5.php(928): PHPExcel_Shared_OLERead->read('/tmp/phpafaM8W') #1 /libraries/PHPExcel/PHPExcel/Reader/Excel5.php(498): PHPExcel_Reader_Excel5->_loadOLE('/tmp/phpafaM8W') #2 /libraries/import/xls.php(44): PHPExcel_Reader_Excel5->load('/tmp/phpafaM8W') #3 /import.php(377): require('/libraries/impo...') #4 {main} thrown in /libraries/PHPExcel/PHPExcel/Shared/OLERead.php on line 80

Irigyellek ha ez mond neked vmit. :U

Másik kérdésem az lenne, hogy anno a captchát meg tudtam/tudtuk csinálni úgy, hogy

imagettftext($im,20,0,12,32,$szurke,"/mnt/ultraweb/h/hu/hunapk/khand.ttf",$str);
imagettftext($im,20,0,10,30,$fekete,"/mnt/ultraweb/h/hu/hunapk/khand.ttf",$str);

Azaz a betűtípust útvonalát fájlként adtam meg. No én azt hittem, hoyg a "ultraweb"-et átírom "atw"-re, de nem akar így menni. Azt írja, hogy "biztonsági kód", mert ugye a képet nem tudja betölteni a betűtípus fájlja nélkül... (gondolom)

<font size="1">Biztonsági kód:</font> <img src="captcha.php" alt="Biztonsági kód" title="Biztonsági kód"> <input type="text" name="captcha_code" value="" maxlength="4">
<input type="submit" name="post" id="post" value="Küldés" /><font size="1"> * - Kötelező kitölteni.</font>

Itt gondolom a title-t írja ki a kép helyett, mert nincs miből kód-képet csinálni...

[ Szerkesztve ]

═════════════════════════════════════════

(#10012) RootRulez válasza RootRulez (#10011) üzenetére


RootRulez
félisten

No fingom sincs, hogy, de az exportálás sikerült. :DDD

Így marad a 2. kérdés, hogy tudom működésre bírni a capchát? Tuti, hogy az elérési út nem stimmel. :U

═════════════════════════════════════════

(#10013) Sk8erPeter válasza RootRulez (#10011) üzenetére


Sk8erPeter
nagyúr

Nem mondod komolyan, hogy exportáltad az adatbázisod tartalmát valami Excel-kompatibilis fájlba, aztán abból a fájlból importáltad azt az uw-re... :O
Egy mezei phpMyAdmin miért nem volt jó?

Kódodból:
imagettftext($im,20,0,12,32,$szurke,"/mnt/ultraweb/h/hu/hunapk/khand.ttf",$str);

"/mnt/ultraweb/h/hu/hunapk/khand.ttf"
helyett próbáld ezt:
$_SERVER['DOCUMENT_ROOT'] . '/khand.ttf'
is.

[ Szerkesztve ]

Sk8erPeter

(#10014) Sk8erPeter válasza Sk8erPeter (#10013) üzenetére


Sk8erPeter
nagyúr

Inkább nézd meg ezt: [link]

már az elején:
Warning: session_start() [function.session-start]: open(/tmp/sess_4f0a512a7d873a41414b7f0fc8f3e5d5, O_RDWR) failed: No such file or directory (2) in /guestbook/captcha.php on line 2

Fasza.
Nyomatsz egy
session_start();-ot, és ezt kapod a pofádba.

ATW-specifikus megoldás:
hozz létre a főkönyvtáradban egy "tmp" könyvtárat, és máris menni fog....

Most már vágod, milyen idióta f@szságokról beszéltem az ilyen ratyi uw-, atw-jellegű szarkupacoknál?
Ja, egyébként még egy: az a korábbi baromi hosszú "/mnt/ultraweb/h/hu/hunapk/khand.ttf" teljes fájlrendszerbeli elérési útvonal sajnos UW-nél valóban indokolt volt, mert ettől az elérési úttól totálisan eltér pl. a $_SERVER['DOCUMENT_ROOT'], tök máshova mutat, szóval gány az egész úgy, ahogy van... kár, hogy úgy tűnik, ezeket a hülyeségeiket azóta sem sikerült javítaniuk.
Nem értem, ezek a cégek hogy létezhetnek még egyáltalán. Jó, mondjuk értem, a sok arcba pakolt reklámmal.

[ Szerkesztve ]

Sk8erPeter

(#10015) RootRulez válasza Sk8erPeter (#10014) üzenetére


RootRulez
félisten

Na, most megy, köszönöm szépen a segítséget! :)

═════════════════════════════════════════

(#10016) RootRulez válasza RootRulez (#10015) üzenetére


RootRulez
félisten

Azt nem tudjátok mi miatt lehet, hogy ha navigálok az oldalon a címsorban a cím változatlan marad? :F

Itt az egyik lapja és akárhova kattintok a menüben, a címsorban mindig "http://hunapk.atw.hu/main.php" marad. Miért? :F

═════════════════════════════════════════

(#10017) Brown ügynök válasza RootRulez (#10016) üzenetére


Brown ügynök
senior tag

Gondolom, mert minden a main.php-ben van megírva / megjelenítve.

"hacsak nem jön a jó tündér break utasítás képében..."

(#10018) RootRulez válasza Brown ügynök (#10017) üzenetére


RootRulez
félisten

Nem, mert, ha másik oldalra indulok, pl news.php, akkor meg az marad.

═════════════════════════════════════════

(#10019) Sk8erPeter válasza RootRulez (#10016) üzenetére


Sk8erPeter
nagyúr

Azért, mert az atw odakúrja azt a csodás reklámframe-et.
Ezen csak úgy tudsz változtatni, ha trükkös JavaScript kódot használsz, ami eltünteti ezt a frame-et, de állítólag ha ez kiderül, akkor tiltanak az ATW-ről.
Na, még mindig akarod az ATW-t? :DDD

Sk8erPeter

(#10020) Sk8erPeter válasza RootRulez (#10018) üzenetére


Sk8erPeter
nagyúr

Írd be a címet így:
http://users.atw.hu/hunapk/news.php

(ehelyett:
http://hunapk.atw.hu/news.php)

[ Szerkesztve ]

Sk8erPeter

(#10021) RootRulez válasza Sk8erPeter (#10020) üzenetére


RootRulez
félisten

nahááát... így már jó, amúgy (elvileg) van benne vmi reklámcsík letiltó kód, ami UW-n működött...

═════════════════════════════════════════

(#10022) Sk8erPeter válasza RootRulez (#10021) üzenetére


Sk8erPeter
nagyúr

Ez witzig, rákerestem, és még pont te kérdezted korábban a másik topicban, és én válaszoltam rá :DDD
[link]

Sk8erPeter

(#10023) RootRulez válasza Sk8erPeter (#10022) üzenetére


RootRulez
félisten

Egyébként korábban regisztráltam a Newhostingot-on már. De Domaint ég nem igényeltem, csak bekukkantottam... Itt 3 500 Ft egy évre, még ha bejönne annyi a reklámokból, akkor visszaforgatnám, de nem igazán jön belőle lecsó.... :(

═════════════════════════════════════════

(#10024) Sk8erPeter válasza RootRulez (#10023) üzenetére


Sk8erPeter
nagyúr

Egy évre?? Ez tuti?
Hát itt meg 1200/év... egyébként annyi, hogy regisztrálsz egy domaint itt 1200-ért, és beállítod, hogy a névszerver mutasson az ingyenes Newhostingos tárhelyre, és megvagy 120 Ft-ból havonta...

Sk8erPeter

(#10025) RootRulez válasza Sk8erPeter (#10024) üzenetére


RootRulez
félisten

Itt 1 évre is 2400Ft meg 2 évre is, és akkor így "csak" az www.***.hu címet foglalom le magamnak és akármilyen (akár ingyenes) tárhelyet hozzárendelhetek ehhez a címhez?

Ehhez a NEWHOSTING-hoz tuti hozzá lehet kapcsolni a másik helyen regisztrált domaint?

[ Szerkesztve ]

═════════════════════════════════════════

(#10026) RootRulez válasza RootRulez (#10025) üzenetére


RootRulez
félisten

Most nézem a http://newhosting.hu/ főoldalét és ingyen tárhely csak a náluk vásárolt domainhez jár...

Tehát akkor
newhosting.hu és domain (1 évre) + tárhely (3gb) = 3500FT + 0ft ez 3500Ft (áfával)
vagy
tarhelypark.hu és domain (2 évre) + tárhely (1gb) = 2400.00 Ft + 3900Ft + 1701.00 Ft (áfa) ez már bő 8K, így hiába 1200Ft évente a domain, a másik olcsóbban jön ki... Meg megmondom őszintén nem értek az ilyen dolgokhoz, így attól a macerástól is megkímélném magam, hogy "összehozzam" az egyik helyen vásárolt domaint a másik helyről vásárolt (vagy nem vásárolt, csak regisztrált) tárhellyel...

...
Na de ez már bőven nem php, bocsi a offért, köszönöm szépen a segítséget, és hogy lehet elköltettél velem évi 3500Ft-ot. :P

[ Szerkesztve ]

═════════════════════════════════════════

(#10027) mobal válasza RootRulez (#10026) üzenetére


mobal
MODERÁTOR

Newhosting... isten ments, hogy oda regisztrálj.

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#10028) RootRulez válasza mobal (#10027) üzenetére


RootRulez
félisten

Meeeert?

═════════════════════════════════════════

(#10029) mobal válasza RootRulez (#10028) üzenetére


mobal
MODERÁTOR

Mert egyszerűen béna az egész. Olyan beállításokat használnak - gondolom - ami mellet például Drupal használhatatlan. Tárhelypark 1000 forintos csomagja nem lenne neked elég? Én ott vagyok, és ég és föld a kettő, a Tárhelypark javára.

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#10030) RootRulez válasza mobal (#10029) üzenetére


RootRulez
félisten

UW-n már a 200MB-ot is meghaladtam, azért jöttem át ATW-re, de sok a cumi itt is... Közbe találtam ezt a dima.hu-t, ami elég jónak tűnik, de tapasztalatokat nem találtam róla...

═════════════════════════════════════════

(#10031) orkester


orkester
senior tag

Sziasztok!
RSSből szeretnék mysql adatbázisba tenni adatokat. Addig meg vagyok, hogy berak 1-1 adatot, de pl. a <category> mező több külön sorból áll és csak az elsőt hajlandó az adatbázisba helyezni. Tehát hogyan tudnám a több sorból álló category mező minden egyes sorát berakni?
Köszi!

$rss_title = $RSS_DOC->channel->title;
$rss_link = $RSS_DOC->channel->link;
$rss_category = $RSS_DOC->channel->category;
$rss_copyright = $RSS_DOC->channel->copyright;
$rss_date = $RSS_DOC->channel->pubDate;



foreach($RSS_DOC->channel->item as $RSSitem)
{

$item_id = md5($RSSitem->title);
$fetch_date = date("Y-m-j G:i:s");
$item_title = $RSSitem->title;
$item_date = date("Y-m-j G:i:s", strtotime($RSSitem->pubDate));
$item_url = $RSSitem->link;
$item_category = $RSSitem->category;


echo "Processing item '" , $item_id , "' on " , $fetch_date , "<br/>";
echo $item_title, " - ";
echo $item_date, "<br/>";
echo $item_url, "<br/>";



if(mysql_num_rows($item_exists)<1)
{
echo "<font color=green>Inserting new item..</font><br/>";
$item_insert_sql = "INSERT INTO rssingest(item_id, feed_url, item_title, item_date, item_url, item_terulet, fetch_date) VALUES ('" . $item_id . "', '" . $feed_url . "', '" . $item_title . "', '" . $item_date . "', '" . $item_url . "', '" . $item_category . "', '" . $fetch_date . "')";
$insert_item = mysql_query($item_insert_sql, $db);

PSN: orkester ** Aki tud olyan nemzetközi hírről, ami a Ft-ot nem gyengíti dobjon egy privátot - 2012.05.24. óta 0db üzenet ** Ha nem válaszolok valószínűleg le vagy tiltva és nem véletlenül. ** Ha valami karcos, kopott, megrágta a kutya, kérlek ne hirdesd újszerűnek, köszi!

(#10032) Speeedfire válasza RootRulez (#10030) üzenetére


Speeedfire
nagyúr

Csak egy tipp, ha godaddy-nél regelsz domain-t, akkor kapsz 10giga tárhelyet. Hátránya, hogy rakhatnak ki reklámot.
Én az egyik aldomain-enem ezt használom, de eddig még nem volt kint semmi. Gondolom látogatástól függ vagy a fene tudja.
Vagy ha magyar domaint regelnél magadnak, akkor ebből tudok neked adni 1GB-ot, ha nem zavar a reklám, ami nem tudom milyen lehet. :U

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#10033) Sk8erPeter válasza RootRulez (#10028) üzenetére


Sk8erPeter
nagyúr

mobalnak teljesen igaza van, a Newhosting is egy rakás szar, de főleg az úgynevezett "supportjuk" botrány, meg az, hogy néha a szerver gyors, néha meg iszonyatosan lassú, vagy egyszerűen nem elérhető az oldal (pedig az állítólagos rendelkezésre állási idő náluk valami 98%, plusz ezt írják: "Kizárólag kiváló minőségű IBM eszközökkel biztosítjuk a szinte állandónak mondható rendelkezésre állást, valamint folyamatos felügyelettel csökkentjük az esetleges meghibásodások számát." - hahaha :D
Amikor jeleztem a problémákat, akkor a supportos csávó kijelentette, hogy ha nem tetszik, akkor válasszak más szolgáltatót. Ezt nevezem jó hozzáállásnak!
Drupal futtatására is valóban alkalmatlan (próbáltam).

Egy nagy előnye van, hogy a 3 GB-os tárhelyméret ellenére ingyenes.
Úgy emlékeztem, hogy át lehetett irányítani más domainről is a névszervert, igazából csak emiatt javasoltam kezdetnek, átmeneti megoldásnak, de ezek szerint tévedtem, ahogy írod, csak náluk regelt domainhez lehet tárhelyet rendelni (mondjuk ez végül is érthető a tárhelyért cserébe).
Szóval akkor a Newhosting nem téma. :D

Abban is egyetértek moballal, hogy a Tárhelypark viszont már egészen más kategória, pozitív értelemben. Jó a support (csetelni is lehet velük, és tök normálisan és gyorsan reagálnak a problémákra), az oldal rendelkezésre állása kifogástalan eddigi tapasztalataim alapján, meg a sebességgel sincs probléma, korrekt cpaneles admin-felület van, plusz nem drágák.
Ha úgyis magyar a célközönséged, akkor őket mindenképp tudom ajánlani.

Ha 200 MB felett vagy, akkor sajnos tényleg csak a 3900 Ft-os, 1 GB-os csomag marad, és akkor már (3900 Ft [tárhely]+1200 Ft [domain] =) 5100 Ft-nál vagy, az havonta 425 Ft.
Szerintem az sem vészes.

De persze nem akarlak rábeszélni, csak én már annyira megcsömörlöttem az ilyen UW-s, ATW-s, FW-s tárhelyektől, annyi korlátot állítanak, meg extra szívást, hogy inkább másnak is mást ajánlok (minőséget).

Sk8erPeter

(#10034) RootRulez válasza Sk8erPeter (#10033) üzenetére


RootRulez
félisten

Ééés ezt a dima.hu-t nem ismered? :U 6k két évre a 3gb domainnel, az elég baráti és elég sok oldal van náluk (referencia)

Speeedfire köszi, de ha már belevágok, akkor tényleg maximálisan olyat szeretnék, amivel úgy őrjönghetek, ahogy akarok...

[ Szerkesztve ]

═════════════════════════════════════════

(#10035) Sk8erPeter válasza RootRulez (#10034) üzenetére


Sk8erPeter
nagyúr

Nem. :(

Sk8erPeter

(#10036) Sk8erPeter válasza orkester (#10031) üzenetére


Sk8erPeter
nagyúr

Nem nagyon értem a kódodat.
if(mysql_num_rows($item_exists)<1)
Nyomatsz egy ilyet, de én nem látok előtte semmiféle adatbázis-lekérést (vagy nem másoltad be azt a kódrészletet, vagy eleve rossz az elgondolás).

Amúgy mivel inicializálod az $RSS_DOC objektumot?
A korábbi kódokat sem látjuk (legalább csak részleteket).

Ha már feltetted a kérdést: a <font> tagek használata 2012-ben már nagyon gáz, elavult dolog. Meg a mysql_query is :D mondjuk a PDO helyette sokkal jobb választás lenne (lásd Tele von Zsinór korábbi rövid írását erről: [link]).
De ha már mysql_query, mindenképp használnod kellene a query előtt a mysql_real_escape_string() függvényt, hogy escape-elve legyenek a változótartalmak, mielőtt berakod adatbázisba őket.

Sk8erPeter

(#10037) Speeedfire válasza RootRulez (#10034) üzenetére


Speeedfire
nagyúr

Megértem. :)
Olcsó normálisban én is a tárhelyparkot tudom ajánlani.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#10038) orkester válasza Sk8erPeter (#10036) üzenetére


orkester
senior tag

Ez a teljes kód:
<?php
header("Content-Type: text/html; charset=utf-8");

$db_hostname="xyx";
$db_username="xyx";
$db_password="xyx";


if(isset($_GET['feed_url']))
{
$feed_url = $_GET['feed_url'];
}
else
{
die("Need to pass the (consistent) 'feed url'");
}



try
{


$db = mysql_connect($db_hostname,$db_username,$db_password);
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
if (!$db)
{
die("Could not connect: " . mysql_error());
}
mysql_select_db("xyx", $db);

echo "Starting to work with feed URL '" . $feed_url . "'";



libxml_use_internal_errors(true);
$RSS_DOC = simpleXML_load_file($feed_url);
if (!$RSS_DOC) {
echo "Failed loading XML\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}



$rss_title = $RSS_DOC->channel->title;
$rss_link = $RSS_DOC->channel->link;
$rss_category = $RSS_DOC->channel->category;
$rss_description = $RSS_DOC->channel->description;
$rss_date = $RSS_DOC->channel->pubDate;


foreach($RSS_DOC->channel->item as $RSSitem)
{

$item_id = md5($RSSitem->title);
$fetch_date = date("Y-m-j G:i:s");
$item_title = $RSSitem->title;
$item_date = date("Y-m-j G:i:s", strtotime($RSSitem->pubDate));
$item_url = $RSSitem->link;
$item_category = $RSSitem->category;
$item_description = $RSSitem->description;


echo "Processing item '" , $item_id , "' on " , $fetch_date , "<br/>";
echo $item_title, " - ";
echo $item_date, "<br/>";
echo $item_url, "<br/>";


$item_exists_sql = "SELECT item_id FROM rssingest where item_id = '" . $item_id . "'";
$item_exists = mysql_query($item_exists_sql, $db);
if(mysql_num_rows($item_exists)<1)
{
echo "<font color=green>Inserting new item..</font><br/>";
$item_insert_sql = "INSERT INTO rssingest(item_id, feed_url, item_content, item_title, item_date, item_url, item_tema, fetch_date) VALUES ('" . $item_id . "', '" . $feed_url . "', '" . $item_description . "', '" . $item_title . "', '" . $item_date . "', '" . $item_url . "', '" . $item_category . "', '" . $fetch_date . "')";
$insert_item = mysql_query($item_insert_sql, $db);
}
else
{
echo "<font color=blue>Frissítés</font><br/>";
$item_insert_sql = "UPDATE rssingest SET item_tema = ('" . $item_category . "') WHERE item_id = '" . $item_id . "'";
$insert_item = mysql_query($item_insert_sql, $db);
}

echo "<br/>";
}

} catch (Exception $e)
{
echo 'Caught exception: ', $e->getMessage(), "\n";
}
?>

És szeretném ha pl. ebből az RSS részletből nem csak az 1. <category> mező kerülne az adatbázisba:
<item>
<link>
http://www.pafi.hu/_pafi/palyazat.nsf/ervdocidweburlap/490FAC2B35FC9E0EC1257A0F0038DC43
</link>
<title>
<![CDATA[
Milyen kérdést intéznék a miniszterekhez, ha képviselő lennék?
]]>
</title>
<description>
<![CDATA[
A kíirók pályázatot hirdetnek gyermekintézmények számára a Gyermekek Világnapja alkalmából.
]]>
</description>
<category>gyermek, ifjúság</category>
<category>közművelődés</category>
<category>művészet</category>
<category>szociális</category>
<pubDate>Sun, 03 Jun 2012 23:51:34</pubDate>
</item>

PSN: orkester ** Aki tud olyan nemzetközi hírről, ami a Ft-ot nem gyengíti dobjon egy privátot - 2012.05.24. óta 0db üzenet ** Ha nem válaszolok valószínűleg le vagy tiltva és nem véletlenül. ** Ha valami karcos, kopott, megrágta a kutya, kérlek ne hirdesd újszerűnek, köszi!

(#10039) Sk8erPeter válasza orkester (#10038) üzenetére


Sk8erPeter
nagyúr

Ciklussal kell végigmenni az $rss_category tartalmán.

A feltöltés attól függ, hogy néz ki az adatbázis-szerkezeted, hogyan szeretnéd megoldani.
Több sort szeretnél feltölteni, kategóriánként? Vagy vesszővel elválasztva, azonos sorba (nagyon gagyi megoldás)?

Egyszerű kiírós foreach:
foreach ($rss_category as $category_index => $category) {
echo $category, '<br />';
}

Sk8erPeter

(#10040) orkester válasza Sk8erPeter (#10039) üzenetére


orkester
senior tag

Köszi, jó lesz azonos sorba is.

Amit írtál kódot azt hova kéne tennem? Mert próbáltam, de ugyanúgy mintha csak 1 kategória sorral foglalkozna.

PSN: orkester ** Aki tud olyan nemzetközi hírről, ami a Ft-ot nem gyengíti dobjon egy privátot - 2012.05.24. óta 0db üzenet ** Ha nem válaszolok valószínűleg le vagy tiltva és nem véletlenül. ** Ha valami karcos, kopott, megrágta a kutya, kérlek ne hirdesd újszerűnek, köszi!

(#10041) Sk8erPeter válasza orkester (#10040) üzenetére


Sk8erPeter
nagyúr

A foreach($RSS_DOC->channel->item as $RSSitem) blokkon belülre.

Így lehet vesszővel elválasztott stringet kapni a kategóriákból:

$categories = array();

foreach ($rss_category as $category_index => $category) {
$categories[] = $category;
}

$categories_string = implode(',', $categories);

Ha így vesszővel elválasztva jó lesz, akkor az INSERT résznél ezt a $categories_string változó tartalmát pakolhatod bele az adatbázisba az $item_category helyett mysql_real_escape_string()-gel, hogy escape-elve is legyen.

[ Szerkesztve ]

Sk8erPeter

(#10042) riska1982


riska1982
tag

Sziasztok!

Szeretnék egy kis segítséget kérni:

Keresek egy olyan dolgot, amit az utóbbi időkben a nagyobb weboldalak használnak, de sajnos nem tudom mi a neve, ezért nem tudok hogyan rákeresni.

Egész pontosan a beúszó ablakokról van szó.
Pl: www.hvg.hu ha kiválasztasz egy cikket és legörgetsz az aljáig, akkor beúszik egy ablak, hogy olvasta már ezt a cikket?

Illetve ugyanezen az elven működik:
www.sg.hu
www.origo.hu

Tehát ugyanezt a hatást szeretném én is elérni, hogy ha legörgetek az oldal aljáig, akkor beússzon egy ablak.

Erre tud valaki linkelni egy exsamplet? Vagy kérlek a nevét áruljátok el a modulnak.

Köszi

https://autofejlesztes.hu Ahol az autódhoz szinte mindent megtalálsz. 06/70-507-08-38

(#10043) Siriusb válasza riska1982 (#10042) üzenetére


Siriusb
veterán

Szia.

Például amit kutyuli javasolt nekem régebben: http://imakewebthings.com/jquery-waypoints/sticky-elements/

(#10044) Sk8erPeter válasza Siriusb (#10043) üzenetére


Sk8erPeter
nagyúr

kutyuli :D
Na, ennek a pluginnek nem akart most egyszerűen beugrani a neve, kösz :D

(#10042) riska1982 :
Ennek nem sok köze van a PHP-hoz. :N
Az a plugin tényleg jó, amit Siriusb linkelt.
De ami neked ebből konkrétan kell, az inkább ez:
jQuery Waypoints - Scroll Analytics

[ Szerkesztve ]

Sk8erPeter

(#10045) sonar


sonar
addikt

Sziasztok,

Lassan agybajt kapok és ezzel az egyszerű dologgal nem birok el.
Annyit próbáltam csinálni, hogy beolvasom az első sort és ha "Kör" -rel kezdődik a sor akkor eltárolom az utána lévő értéket. No most eddig akárhogy próbáltam sehogy se jött össze. substr -nél is csak 2 karaktert ad vissza "Kö"
Ha ékezet nélkül csinálom akkor minden rendben van.
Mi lehet a gond? :R
<?php
header('Content-type: text/plain; charset=utf-8');
$file = fopen("e.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
//while(!feof($file))
// {
// echo fgets($file). "<br />";
$strTemp=fgets($file);
$sKor=substr($strTemp,0,3);
echo strlen($sKor). "<br />";
//printf ($sKor);
echo strcmp($sKor,"Kör");
// }
fclose($file);
?>

e.txt:
Kör 1

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#10046) Sk8erPeter válasza sonar (#10045) üzenetére


Sk8erPeter
nagyúr

A karakterkódolásaid mindenhol stimmeljenek, legyen a karakterkódolás konzekvens - tehát ha az a fájl, ahonnan meghívod, UTF-8 kódolású, akkor a forrásfájl is legyen az. Notepad++-szal meg tudod nézni, most ANSI-ban vagy UTF-8 kódolásúban van-e. Valamelyik legyen a kettő közül, vagy konvertáld.
Esetleg megpróbálkozhatnál az mb_strlen, mb_substr és társaival.

Egyébként a content-type-nál a text/plain helyett nem text/html kéne neked? Csak hogy ne plain textként írja ki pl. a <br />-t.

[ Szerkesztve ]

Sk8erPeter

(#10047) riska1982 válasza Sk8erPeter (#10044) üzenetére


riska1982
tag

Hálásan köszönöm mindkettőtöknek! :R

https://autofejlesztes.hu Ahol az autódhoz szinte mindent megtalálsz. 06/70-507-08-38

(#10048) orkester válasza Sk8erPeter (#10041) üzenetére


orkester
senior tag

Köszi, de így csak felveszi minden egyes <item>-ből az 1. <category> sort és hozzáírja a változóhoz, nekem pedig az kéne, hogy minden <item>-ből kivegye az összes <category> sort és azokat tegye egy változóba.

PSN: orkester ** Aki tud olyan nemzetközi hírről, ami a Ft-ot nem gyengíti dobjon egy privátot - 2012.05.24. óta 0db üzenet ** Ha nem válaszolok valószínűleg le vagy tiltva és nem véletlenül. ** Ha valami karcos, kopott, megrágta a kutya, kérlek ne hirdesd újszerűnek, köszi!

(#10049) Sk8erPeter válasza orkester (#10048) üzenetére


Sk8erPeter
nagyúr

Pedig azzal kezdtem a hozzászólásomat, hogy leírtam, melyik foreach blokkon belülre kellene tenned. :)

Mutatok inkább komplett kódot a tiéd alapján, amiben definiálok egy my_var_export() függvényt, ami tesztelésre kiváló, hogy megnézd, mi az adott változó tartalma, és az adott változó milyen típusú. Nálam most az RSS feedet tartalmazó XML-fájl neve test.xml lesz.
A teszt kedvéért az XML-fájlt kiegészítettem a tiéden felül egy saját <item>-mel is.

index.php:

<?php

header('Content-Type: text/html; charset=utf-8');

function my_var_export($variable, $text = '...') {
return '<p>' . $text . ' (type: "' . (gettype($variable)) . '"):</p><pre>' . var_export($variable, TRUE) . '</pre>';
}

$feed_url = 'test.xml';

libxml_use_internal_errors(true);
$RSS_DOC = simpleXML_load_file($feed_url);
if (!$RSS_DOC) {
echo "Failed loading XML\n";
foreach (libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}


foreach ($RSS_DOC->channel->item as $RSSitem) {

$categories = array();

foreach ($RSSitem->category as $category_index => $category) {
$categories[] = $category;
}

$categories_string = implode(',', $categories);

echo my_var_export($categories_string, '$categories_string');

}

test.xml:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">

<channel>
<title>Test RSS feed</title>
<link>http://example.com</link>
<description>Read RSS feed</description>
<item>
<link>
http://www.pafi.hu/_pafi/palyazat.nsf/ervdocidweburlap/490FAC2B35FC9E0EC1257A0F0038DC43
</link>
<title>
<![CDATA[
Milyen kérdést intéznék a miniszterekhez, ha képviselő lennék?
]]>
</title>
<description>
<![CDATA[
A kíirók pályázatot hirdetnek gyermekintézmények számára a Gyermekek Világnapja alkalmából.
]]>
</description>
<category>gyermek, ifjúság</category>
<category>közművelődés</category>
<category>művészet</category>
<category>szociális</category>
<pubDate>Sun, 03 Jun 2012 23:51:34</pubDate>
</item>
<item>
<link>
http://prohardver.hu/tema/php_kerdesek_2/friss.html
</link>
<title>
<![CDATA[
PHP kérdések
]]>
</title>
<description>
<![CDATA[
A Prohardver! lapcsalád PHP-kérdésekkel foglalkozó fóruma.
]]>
</description>
<category>webfejlesztés</category>
<category>programozás</category>
<category>PHP</category>
<category>Prohardver!</category>
<pubDate>Thu, 07 Jun 2012 13:05:05</pubDate>
</item>
</channel>

</rss>

==============================================

KIMENET:

$categories_string (type: "string"):
'gyermek, ifjúság,közművelődés,művészet,szociális'

$categories_string (type: "string"):
'webfejlesztés,programozás,PHP,Prohardver!'

==============================================

Ebből jól látszik, hogy vesszővel elválasztva bekerült egy változóba az összes kategória.
Természetesen a sima vesszős megoldás nem feltétlenül jó, ha a fent látható módon a "gyermek, ifjúság" egyetlen kategóriának minősül, mert egy vessző mentén történő "szétrobbantásnál" külön kategóriába kerülhet.
Ezért a legjobb lenne szépen szétválasztani, many-to-many relation alkalmazásával az adatbázisban.

[ Szerkesztve ]

Sk8erPeter

(#10050) orkester válasza Sk8erPeter (#10049) üzenetére


orkester
senior tag

Így már hibátlan, nagyon köszönöm! :R

Egyébként jó helyre tettem csak amit ezelőtt írtál abból kimaradt egy rész :)
$RSSitem->

[ Szerkesztve ]

PSN: orkester ** Aki tud olyan nemzetközi hírről, ami a Ft-ot nem gyengíti dobjon egy privátot - 2012.05.24. óta 0db üzenet ** Ha nem válaszolok valószínűleg le vagy tiltva és nem véletlenül. ** Ha valami karcos, kopott, megrágta a kutya, kérlek ne hirdesd újszerűnek, köszi!

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.