Hirdetés
- Gurulunk, WAZE?!
- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- hdanesz: Elektromos autózás - első élmények
- Brogyi: CTEK akkumulátor töltő és másolatai
- ricshard444: iPhone 17 Pro Max - Kedves téglám
- Magga: PLEX: multimédia az egész lakásban
Új hozzászólás Aktív témák
- 
			
			válasz  fordfairlane
							
							
								#16299
							
							üzenetére fordfairlane
							
							
								#16299
							
							üzenetéreJaj bocs, elfelejtettem írni, hogy átneveztem ordertoxml.php-ra mert félreérthető neve volt.  
- 
			
			válasz  Sk8erPeter
							
							
								#16297
							
							üzenetére Sk8erPeter
							
							
								#16297
							
							üzenetéreÖsszeszedtem ami kell és remélem tudtok segíteni. Az eddigieket is nagyon köszönöm  Itt a 3 PHP fájl: 
 [link]Semmi sem titkos, csak így egyszerűbb.  
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16291
							
							üzenetére tothjozsi96
							
							
								#16291
							
							üzenetéreHát ja, sajnos nem meglepő, hogy rohadt lassú, mert tele van regexpekkel, egyenként újból és újból végigkotorássza a szöveget arra a kifejezésre, amelyik esetleg illeszkedik (mármint mindegyik regexpre külön-külön), stb., plusz elég karbantarthatatlan is a kód, mert nem valami tömbszerű megoldás van, vagy bármi általánosabb, hanem az str_replace-ekhez vagy épp preg_replace-ekhez be van drótozva stringként az adott smiley - ezenkívül belerak további lassításokat, ilyenekkel, hogy előbb preg_match-csel ellenőrzi, van-e illeszkedés, és AZUTÁN preg_replace-el. Szerintem keress valami jobb kódot/library-t, rengeteg szócikk van Stack Overflow-n. Hozzáteszem, ez a smiley-cserélős móka egyáltalán nem triviális probléma, nehéz általános megoldást írni rá szerintem, ami minden esetet lefed. (#16281) tothjozsi96 : 
 "Próbáld meg kivenni a strlen-t, szerintem az lesz a baja ..."
 Miért lenne már az strlen a baja? (#16292) Des1gnR : 
 Hibajelzés be van kapcsolva?
 "Viszont ha oda illesztem be ezt a kis kódot ahová kellene, akkor nem hozza létre az XML-t " "
 És ennyi a hibajelenség, semmi több?
 Amúgy mondom, nagyon gáz ez a megoldás, hogy a rendeles.php fájlodba be van okádva minden. Rakd már egy globális függvénybe legalább, amit include-olás (/require) után meghívsz, még az is jobb.
 Amúgy ha már ilyen jellegű kódbeillesztés, akkor inkább require_once()-t használj, az garantáltan csak egyszer include-olja a kódot.A kódot sem ártana legalább nagyvonalakban ismernünk... (Nem kell az egész, csak legalább valami útmutatás, hogy mi történik a fájlodban.) (#16293) tothjozsi96 : 
 "Az include("rendeles.php")-t próbáltad már?"
 Ugye tudod, hogy mi a különbség a require() és az include() között? Semmit nem oldana meg lecserélni a require()-t include()-ra. Annyi különbség lenne, hogy abban az esetben, ha nem létezne a fájl, nem produkálna egy fatális hibát. Semmit nem oldana meg lecserélni a require()-t include()-ra. Annyi különbség lenne, hogy abban az esetben, ha nem létezne a fájl, nem produkálna egy fatális hibát.
- 
			
			válasz  tothjozsi96
							
							
								#16295
							
							üzenetére tothjozsi96
							
							
								#16295
							
							üzenetéreKiírnia nem is kell semmit. Ha a meghiv.php-m így néz ki: 
 <?php
 include 'rendeles.php';
 ?>
 Akkor is létrejön az XML.
- 
			
			
- 
			
			válasz  tothjozsi96
							
							
								#16293
							
							üzenetére tothjozsi96
							
							
								#16293
							
							üzenetérePróbáltam, de nem változik semmi.  
- 
			
			
- 
			
			válasz  Sk8erPeter
							
							
								#16290
							
							üzenetére Sk8erPeter
							
							
								#16290
							
							üzenetéreSajnos kétértelmű, de jól érted, a PHP-t szeretném meghívni egy másik PHP-ból. Próbaképpen csináltam egy meghiv.php-t amely így néz ki: <?php 
 require 'rendeles.php';
 ?>Ez így frankón működik is. Lefut a rendeles.php és létrehozza az XML fájlt az adott mappába. Viszont ha oda illesztem be ezt a kis kódot ahová kellene, akkor nem hozza létre az XML-t  
- 
			
			válasz  Sk8erPeter
							
							
								#16288
							
							üzenetére Sk8erPeter
							
							
								#16288
							
							üzenetéreA format_comment valójában arra van hogy a kettős pont D-ből ez legyen:  Tehát csak bizonyos helyeken van meghívva. Igen, tehát a teljesítményt jó lenne ha nem fogná vissza. 
 De ez egy ilyen letöltött kód, tehát nem saját.Elég rosszul van megírva, de mutatok egy examplet.  function format_comment($text, $strip_html = true) 
 {
 global $smilies, $TBDEV;
 $s = $text;
 unset($text);
 // This fixes the extraneous ;) smilies problem. When there was an html escaped
 // char before a closing bracket - like >), "), ... - this would be encoded
 // to &xxx;), hence all the extra smilies. I created a new :wink: label, removed
 // the ;) one, and replace all genuine ;) by :wink: before escaping the body.
 // (What took us so long? :blush:)- wyz
 $s = str_replace(";)", ":wink:", $s);
 if ($strip_html)
 $s = htmlsafechars( $s );
 if( preg_match( "#function\s*\((.*?)\|\|#is", $s ) )
 {
 $s = str_replace( ":" , ":", $s );
 $s = str_replace( "[" , "[", $s );
 $s = str_replace( "]" , "]", $s );
 $s = str_replace( ")" , ")", $s );
 $s = str_replace( "(" , "(", $s );
 $s = str_replace( "{" , "{", $s );
 $s = str_replace( "}" , "}", $s );
 $s = str_replace( "$" , "$", $s );
 }
 
 // [code] tag (do first to make sure we take it out of the equation
 $s = preg_replace( "#\[code\](.+?)\[/code\]#ies", "code_tag( '\\1' )", $s );
 
 // [list]
 while( preg_match( "#\n?\[list\](.+?)\[/list\]\n?#ies" , $s ) )
 {
 $s = preg_replace( "#\n?\[list\](.+?)\[/list\]\n?#ies", "BB_list('\\1')" , $s );
 }
 
 while( preg_match( "#\n?\[list=(a|A|i|I|1)\](.+?)\[/list\]\n?#ies" , $s ) )
 {
 $s = preg_replace( "#\n?\[list=(a|A|i|I|1)\](.+?)\[/list\]\n?#ies", "BB_list('\\2','\\1')" , $s );
 }
 
 
 // [b]Bold[/b]
 $s = preg_replace("#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $s);
 // [i]Italic[/i]
 $s = preg_replace("#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $s);
 // [u]Underline[/u]
 $s = preg_replace("#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $s);
 
 $s = preg_replace( "#\[(left|right|center)\](.+?)\[/\\1\]#is" , "<div align=\"\\1\">\\2</div>", $s );
 
 while( preg_match( "#\[indent\](.+?)\[/indent\]#is" , $s ) )
 {
 $s = preg_replace( "#\[indent\](.+?)\[/indent\]#is" , "<blockquote>\\1</blockquote>", $s );
 }
 
 $s = preg_replace( "#\(c\)#i", "©", $s );
 $s = preg_replace( "#\(tm\)#i", "™", $s );
 $s = preg_replace( "#\(r\)#i", "®" , $s );
 
 // [img]http://www/image.gif[/img]
 $s = preg_replace("/\[img\](http:\/\/[^\s'\"<>]+(\.(jpg|gif|png)))\[\/img\]/i", "<img border=\"0\" src=\"\\1\" alt='' />", $s);
 // [img=http://www/image.gif]
 $s = preg_replace("/\[img=(http:\/\/[^\s'\"<>]+(\.(gif|jpg|png)))\]/i", "<img border=\"0\" src=\"\\1\" alt='' />", $s);
 // [color=blue]Text[/color]
 $s = preg_replace("#\[color=([^\];\d\s]+)\](.+?)\[/color\]#is",
 "<span style='color:\\1;'>\\2</span>", $s);
 // [color=#ffcc99]Text[/color]
 /* $s = preg_replace(
 "/\[color=(#[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9])\]((\s|.)+?)\[\/color\]/i",
 "<font color='\\1'>\\2</font>", $s);
 */
 // [url=http://www.example.com]Text[/url]
 $s = preg_replace(
 "/\[url=([^()<>\s]+?)\](.+?)\[\/url\]/i",
 "<a href=\"\\1\">\\2</a>", $s);
 // [url]http://www.example.com[/url]
 /* $s = preg_replace(
 "/\[url\]([^()<>\s]+?)\[\/url\]/i",
 "<a href=\"\\1\">\\1</a>", $s);
 */
 // [size=4]Text[/size]
 $s = preg_replace(
 "#\[size=([1-4])\](.+?)\[/size\]#si",
 "<span style='font-size:\\1em;line-height:100%'>\\2</span>", $s);
 // [font=Arial]Text[/font]
 $s = preg_replace(
 "/\[font=([a-zA-Z ,]+)\](.+?)\[\/font\]/i",
 "<span style='font-family:\\1;'>\\2</span>", $s);
 // //[quote]Text[/quote]
 // $s = preg_replace(
 // "/\[quote\]\s*((\s|.)+?)\s*\[\/quote\]\s*/i",
 // "<p class=sub><b>Quote:</b></p><table class=main border=1 cellspacing=0 cellpadding=10><tr><td style='border: 1px black dotted'>\\1</td></tr></table><br />", $s);
 // //[quote=Author]Text[/quote]
 // $s = preg_replace(
 // "/\[quote=(.+?)\]\s*((\s|.)+?)\s*\[\/quote\]\s*/i",
 // "<p class=sub><b>\\1 wrote:</b></p><table class=main border=1 cellspacing=0 cellpadding=10><tr><td style='border: 1px black dotted'>\\2</td></tr></table><br />", $s);
 // Quotes
 $s = format_quotes($s);
 // URLs
 $s = format_urls($s);
 // $s = format_local_urls($s);
 // Linebreaks
 $s = nl2br($s);
 // [pre]Preformatted[/pre]
 $s = preg_replace("/\[pre\]((\s|.)+?)\[\/pre\]/i", "<tt><span style=\"white-space: nowrap;\">\\1</span></tt>", $s);
 // [nfo]NFO-preformatted[/nfo]
 $s = preg_replace("/\[nfo\]((\s|.)+?)\[\/nfo\]/i", "<tt><span style=\"white-space: nowrap;\"><font face='MS Linedraw' size='2' style='font-size: 10pt; line-height: " .
 "10pt'>\\1</font></span></tt>", $s);
 // Maintain spacing
 $s = str_replace(" ", "  ", $s);
 foreach($smilies as $code => $url) {
 $s = str_replace($code, "<img border='0' src=\"{$TBDEV['pic_base_url']}smilies/{$url}\" alt=\"" . htmlsafechars($code) . "\" />", $s);
 }
 return $s;
 }És az a baj hogy lefut az összes elméletileg és azért lassul meg ilyen csúnya módon. 
- 
			
			  Sk8erPeter nagyúr válasz  Des1gnR
							
							
								#16289
							
							üzenetére Des1gnR
							
							
								#16289
							
							üzenetéreJa, akkor sorry, ezek szerint félreértettem azt, hogy a "Van egy PHP fájlom amely létrehoz egy XML fájlt az ftp-n. Ezt egy másik PHP-n keresztül szeretném meghívni, de nem tudom hogyan kell." mondatban az "ezt" mire vonatkozik.  Ha jól értem, most nálad az van, hogy van egy fájlod, aminek a kódja egy az egyben ki van dobálva, az kreálja az XML-fájlt. Te pedig ezt a műveletet valamilyen másik fájlból szeretnéd végrehajtani. 
 Hát akkor tedd ezeket a kódokat egy függvénybe/osztály metódusába, valami értelmesen szervezett struktúrába, include-old ezt a fájlt a másik PHP-fájlból, majd egyszerűen csak hívd meg a megfelelő függvényt/metódust, és meg is vagy.
 Gondolom így értetted...Bár elvileg lehetne simán include-olni is, de az ilyen egy az egyben, bármi normálisan kitalált struktúra nélkül kidobált kód mindenképp kerülendő. 
- 
			
			válasz  Sk8erPeter
							
							
								#16288
							
							üzenetére Sk8erPeter
							
							
								#16288
							
							üzenetéreIlyet nem írtam  Szerk: Igen  
- 
			
			  Sk8erPeter nagyúr válasz  norby10
							
							
								#16278
							
							üzenetére norby10
							
							
								#16278
							
							üzenetéreA HTML-kódodat is meg kellene mutatnod, mármint konkrétan a form vonatkozó elemét, vagyis a fájlmezőt. Ha azt írod, 1 elemmel működik, többel nem, az így elsőre arra utal, hogy nem tömbszerűen adtad meg a name HTML-attribútum értékét. Vagy valami hasonló. Szóval jó, hogy a backendet megmutattad, de kellene az is, amit a kliens lát. (#16287) Des1gnR : 
 Mit jelent az, hogy XML-t "meghívni"?   
 Szerk.:
 a köv. üzenetből úgy tűnik, én értettem félre, és a PHP-fájlt akarod meghívni, az úgy más.(#16276) tothjozsi96 : 
 Mit tartalmaz ez a format_comment() függvény?
 Másik kérdés, hogy van-e értelme állandóan átalakítgatnod, ahelyett, hogy eleve átalakítva mentenéd el. Persze lehet, hogy nálad pont arra van szükség, hogy a "nyers" formában töltődjön fel, de úgy tűnt, elég egyszerű esetről van szó nálad, tehát feltölthetnéd a sorokat eleve formázva is. Így megjelenítéskor nem kéne átalakítgatni semmit. Már ha jól értem a gondodat.
 Meg megmutathatnád, egészen konkrétan, kódszinten hogyan alakítod át.
 A tisztításra (pl. script-tagek eltávolítása, stb.) meg rengeteg kész library van, lehet, hogy érdemes lenne megfontolni ilyenek használatát, pl. olyat, ami a teljesítményt sem veti vissza.
- 
			
			Sziasztok! Van egy PHP fájlom amely létrehoz egy XML fájlt az ftp-n. Ezt egy másik PHP-n keresztül szeretném meghívni, de nem tudom hogyan kell. 
 Tudnátok segíteni?Szerk: Fontos lenne, hogy az XML-t létrehozó PHP tartalma ne jelenjen meg sehol. 
- 
			
			  Orionk senior tag 
- 
			
			  norby10 csendes tag válasz  tothjozsi96
							
							
								#16281
							
							üzenetére tothjozsi96
							
							
								#16281
							
							üzenetérede azért Köszi 
- 
			
			  norby10 csendes tag válasz  tothjozsi96
							
							
								#16281
							
							üzenetére tothjozsi96
							
							
								#16281
							
							üzenetérenem ez a megoldás, még mindig az a probléma 
- 
			
			
- 
			
			  norby10 csendes tag válasz  tothjozsi96
							
							
								#16279
							
							üzenetére tothjozsi96
							
							
								#16279
							
							üzenetérebe van az elöző postban 
- 
			
			
- 
			
			  norby10 csendes tag Sziasztok lenne egy kis gondom, írtam egy feltöltő kódot, amivel több filet töltök fel.Annyi a gond vele, hogy felmásolja a fileokat de 0byte a méretük, vagyis mégse másolja fel! Mi lehet a gond? 
- 
			
			válasz  Sk8erPeter
							
							
								#16262
							
							üzenetére Sk8erPeter
							
							
								#16262
							
							üzenetéreBocsi, csak telefonról írtam. Az a baj hogy van ez a memcache üzenőfal amiben segítettél. 
 Volt szó róla hogy vannak smiley-ek amit meg akarok jeleníteni, de erre van egy függvény-em ami kiválogatja hogy mi engedélyezett, tehát nincs minden engedélyezve pont ezért mert valaki beírja hogy <script> alert ....Gondolom ismerős ... Az a baj hogy ha a foreach-on belül teszem rá a formázás fgv-t tehát format_comment($text) akkor nagyot terhel mert soronként fut le, de nekem globálisan kellene. Na most, ha a memcache->get("uzenofal")-ra ráteszem ezt akkor az a baj hogy nem ír ki egy üzenetet sem, de van bent egy count és írja hogy van 102 üzi, na most próbaképpen rátettem a memcache get-re egy htmlspecialchars-t úgy már az üzenetek számát sem írta ki ...  
- 
			
			  DNReNTi őstag válasz  Speeedfire
							
							
								#16274
							
							üzenetére Speeedfire
							
							
								#16274
							
							üzenetéreKár, hogy minden ilyen program Budapesten van, vannak érdekesnek tűnő előadások, de hát k. drága a benzin.    
- 
			
			  Speeedfire félisten Kint vannak az idei webconf programok.  
- 
			
			  wis tag válasz  peterfihugo
							
							
								#16271
							
							üzenetére peterfihugo
							
							
								#16271
							
							üzenetéreKérdezd le szerveroldalon: 
 <?php
 $user_ip = $_SERVER["REMOTE_ADDR"];
 $json = file_get_contents('http://ipinfo.io/'. $user_ip);
 $geolocation = json_decode($json, true);
 $city = $geolocation['city'];Ez csak egy példa, file_get_contents helyett használhatsz curl-t is. 
 Vagy kliens oldalon összepakolod az url-t JQuery-vel.
- 
			
			  peterfihugo csendes tag Sziasztok, eléggé kezdő vagyok a témában ezért kellene tőletek egy kis segítség: 
 Nah szóval adott ez a kódrészlet…innen le is tölthetitek, ha úgy jobban átlátjátok.....hxxp://pressuretackle.com/show.rar
 hxxp://szallasok.hu/hotel-wellamarin-zamardi/szallas <- itt meg is tekinthetitek élőben, hogy mit is csinálna ez az egész valójában. A jobb oldalon lévő karikában az Oszkár telekocsis logós részre kattintva átvinne az Oszkár telekocsi oldalára ez a hivatkozás -><script> 
 $.get("http://ipinfo.io", function (response) {
 $(".tartozkodasi_hely").html(response.city);
 var hely = 'Az Ön jelenlegi becsült tartózkodási helye:\n' +response.city;
 //alert(hely);
 }, "jsonp");
 </script>
 <a href="http://utitars.oszkar.com/day-<?= date("j"); ?>/honnan-/hova-<?=$hotel["telepules"]; ?>/month-<?= date("n"); ?>/year-<?= date("Y"); ?>/" target="_blank" title="Utazzon Oszkárral | Úticél: <?=$hotel["telepules"]; ?>">nah most a hivatkozásban a “hova-” ugye php-val megoldottam saját adatbázisból. Ami nekem nagyon kellene, az az, hogy a “honnan-…..” a pontok helyére hogyan vihetném be az előzőleg scripttel behívott response.city értékét (ami ugye ip alapján a város nevét írja ki. Mert ugye a tartozkodasi_hely nevű class-ba a script behívja ezt az értéket, de a href-be hogy tudnám kiíratni a script által meghatározott város nevét a “honnan-” után? 
 fúú…már nagyon idegesít a dolog, és lehet hogy nem tudtam leírni érthetően, mit szeretnék, de azért bízom benne, hogy tudtok nekem segíteni 
- 
			
			  Orionk senior tag válasz  fordfairlane
							
							
								#16268
							
							üzenetére fordfairlane
							
							
								#16268
							
							üzenetéreIgen, inkább indítottam egyet. Viszont nem értem, hogy ennek a Facebook beágyazásnak miért kell webszerver. Itt van ez az oldal LINK AZ OLDALHOZ Ha az oldalon a piros hőlégballon fölé viszitek az egeret, akkor az elindul. Nálam Chrome on, amikor elindul, akkor a PNG képnek a körvonalai mozognak és nem olyan szépek. Ez mitől lehet és hogyan lehetne javítani ? köszi 
- 
			
			  Orionk senior tag válasz  fordfairlane
							
							
								#16266
							
							üzenetére fordfairlane
							
							
								#16266
							
							üzenetéreköszi szépen. Ehhez kellene webszerver ?  , de miért ? Most csak statikus html oldalt csinálok php nélkül. , de miért ? Most csak statikus html oldalt csinálok php nélkül.Indítsak hozzá egy apachot ? 
- 
			
			  fordfairlane veterán válasz  Orionk
							
							
								#16265
							
							üzenetére Orionk
							
							
								#16265
							
							üzenetéreNálam localhoston működik. Ennyi az oldal: <!DOCTYPE html> 
 <html lang="hu">
 <head>
 <meta charset="utf-8">
 </head>
 <body>
 <script>(function(d, s, id) {
 var js, fjs = d.getElementsByTagName(s)[0];
 if (d.getElementById(id)) return;
 js = d.createElement(s); js.id = id;
 js.src = "//connect.facebook.net/hu_HU/sdk.js#xfbml=1&version=v2.0";
 fjs.parentNode.insertBefore(js, fjs);
 }(document, 'script', 'facebook-jssdk'));</script>
 <div class="fb-like-box" data-href="https://www.facebook.com/degazholegballonklub" data-colorscheme="light" data-show-faces="true" data-header="true" data-stream="true" data-show-border="true"></div>
 </body>
 </html>Ha webszerver nélkül, közvetlenül nyitom meg az oldalt a böngészőben, akkor nem megy. 
- 
			
			  Orionk senior tag válasz  DNReNTi
							
							
								#16264
							
							üzenetére DNReNTi
							
							
								#16264
							
							üzenetéreEzt kaptam Scriptnek : <script>(function(d, s, id) { 
 var js, fjs = d.getElementsByTagName(s)[0];
 if (d.getElementById(id)) return;
 js = d.createElement(s); js.id = id;
 js.src = "//connect.facebook.net/hu_HU/sdk.js#xfbml=1&version=v2.0";
 fjs.parentNode.insertBefore(js, fjs);
 }(document, 'script', 'facebook-jssdk'));</script>Ezt meg DIVnek : <div class="fb-like-box" data-href="https://www.facebook.com/degazholegballonklub" data-colorscheme="light" data-show-faces="true" data-header="true" data-stream="true" data-show-border="true"></div> Kipróbálod légyszi, hogy neked beteszi-e ? Őszintén nem tudom, hogy mire gondolsz ezzel a kérdéssel: 
 Van app kiválasztva aminek az id-ját felhasználja a jssdk?
- 
			
			  Orionk senior tag Sziasztok ! Használt már valaki ilyen Facebook ablak legeneráló akármit? 
 https://developers.facebook.com/docs/plugins/like-box-for-pagesHa igen, akkor közülük valakitől egy kis segítséget kérnék szépen. Kitöltöm, hogy milyen szeretném, hogy legyen a Facebook ablakom és megnyomom a Get Code gombot. Ezután kapok egy rövid scriptet, amit rögtön a <body> után kell bemásolnom, meg egy rövid DIVet, ami tartalmazza magát az ablakot, amit legeneráltattam és oda helyezem, ahova akarom. Sajnos ezt megcsinálom és mégsem rakja ki az ablakomat. Kellene még valami javascript fájl,vagy valami ? köszi szépen. 
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16258
							
							üzenetére tothjozsi96
							
							
								#16258
							
							üzenetére1. légyszi használd a "Válasz" linket, még a saját hozzászólásodhoz is, hogy bárhonnan követhető legyen az üzenetszál, hogy most ez melyik téma folytatása  (jelen esetben kitalálható, de akkor is (jelen esetben kitalálható, de akkor is ) )
 2. ez tipikusan olyan kérdés volt, amire semmi értelmeset nem lehet válaszolni Nulla konkrét részlet, hogy mi nem működik, mi a pontos hiba (kb. ilyen "nem működik, mi lehet a gond"-szintű hibajelzés), nulla konkrét kód, stb. Szóval így nem fogjuk kitalálni, mi lehet a gond nálad. Nulla konkrét részlet, hogy mi nem működik, mi a pontos hiba (kb. ilyen "nem működik, mi lehet a gond"-szintű hibajelzés), nulla konkrét kód, stb. Szóval így nem fogjuk kitalálni, mi lehet a gond nálad.(#16252) Lacces : 
 isset($data[$key])
 --> a foreach-ciklusban ennek a feltételnek nem sok értelme van. Nyilván igaz lesz, miután ezeken a kulcsokon mész végig.
- 
			
			  Kommy veterán Sziasztok, lehetséges olyat csinálni php segítségével, hogy van egy mappám benne fájlok xxx_dátum_yyy.txt formátumban, ezek egy játék log fájljai, az yyy jelöli, hogy éppen melyik session fut a szerveren, az xxx pedig a szerver neve. A kérdésem az lenne ezzel kapcsolatban, hogy lehetséges e úgy olvasni ezeket a fájlokat, hogy Szerver nevenként külön az utolsó módosítási dátumút. 
- 
			
			Lejárt a szerk. idő ... Rátettem a formázást és nem listázza ki az üzeneteket.  
- 
			
			válasz  Sk8erPeter
							
							
								#16251
							
							üzenetére Sk8erPeter
							
							
								#16251
							
							üzenetéreRájöttem, köszi! 
 A memcache->get-re ráteszem a formázást és úgy csak egyszer fog lefutni. 
 Köszi! 
- 
			
			  Lacces őstag válasz  fordfairlane
							
							
								#16255
							
							üzenetére fordfairlane
							
							
								#16255
							
							üzenetéreA felső sql-es változó másolásából maradt vissza  . .
 De aposztróf kiszedése ellenére sincs semmi változás...De most megy, újraindtottam az adatbázist, és viszi... a PDO-s commit paranccsal 
- 
			
			  Lacces őstag válasz  Peter Kiss
							
							
								#16253
							
							üzenetére Peter Kiss
							
							
								#16253
							
							üzenetéreElméletben nem, a többinél sincs, és ennél sem szerepel a példák alapján... 
- 
			
			  Lacces őstag Hali. Kellene egy PDO expert személy. Most egy kicsit natívan fejlesztek, és meglepődöm, hogy egyedül az update nem működik nálam (Select, delete, és insert igen) Ez a következő kód: pastebin 
 try {
 $sql = "UPDATE tbl_events " .
 "SET name=':name', city=':city', place=':place', event_start_date=':event_start_date', event_end_date=':event_end_date', " .
 "description=':description', category_id=':category_id', owner_id=':owner_id', coord_latitude=':coord_latitude', " .
 "coord_longitude=':coord_longitude', picture_path=':picture_path', is_adult=':is_adult', created_on=':created_on', updated_on=':updated_on' " .
 "WHERE id=':id'";
 // $sql = str_replace(':id', $id, $sql);
 // foreach($data as $key => $value) {
 // $value = (isset($data[$key]) || $data[$key] == "" ? $value : null);
 // $sql = str_replace(':'.$key, $value, $sql);
 // }
 // echo $sql;
 // echo "<br>";
 $stmt = self::$db->prepare("UPDATE tbl_events " .
 "SET name=':name', city=':city', place=':place', event_start_date=':event_start_date', event_end_date=':event_end_date', " .
 "description=':description', category_id=':category_id', owner_id=':owner_id', coord_latitude=':coord_latitude', " .
 "coord_longitude=':coord_longitude', picture_path=':picture_path', is_adult=':is_adult', created_on=':created_on', updated_on=':updated_on' " .
 "WHERE id=':id'");
 $stmt->bindValue(':id', $id, \PDO::PARAM_INT);
 foreach($data as $key => $value) {
 $value = (isset($data[$key]) || $data[$key] == "" ? $value : null);
 $stmt->bindValue(':'.$key, $value);
 }
 $stmt->execute();
 
 } catch (\PDOException $ex) {
 return $ex;
 }Az $stmt->execute() 1-es értékkel tér vissza. De az adatbázisban nem látom az update hatását, semmit sem csinál... viszont ha kikomenteztem az sql kiíratos részt, akkor megkaptam az sql query-t, megyek szépen a phpmyadmin-ban bemásolom, és láss csodát updatelte a kíván sort az adatbázisban, és ez fura... szóval az sql query az jó. És a PDO execute metódusa is 1-el tér vissza, de a PDO által nem frissül... 
 Mi lehet ennek az oka?
 Sőt a bajt tovább tetézi, hogy a MySQL error logjában sincs semmi...
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16250
							
							üzenetére tothjozsi96
							
							
								#16250
							
							üzenetéreFelhasználói szemszögből egyáltalán érzékelhető ez a különbség? 
 Egyébként egy kerülő megoldás az lehetne, hogy egyből, még feltöltés előtt cseréled ezeket a szövegeket.
- 
			
			válasz  Sk8erPeter
							
							
								#16249
							
							üzenetére Sk8erPeter
							
							
								#16249
							
							üzenetéreLenne egy érdekesség amit most vettem észre. 
 Ezeken az üzeneteken van formázás, amibe nagyon sok str_replace van.Gyakorlatilag alapból a fal lefut ez a formázás nélkül: 0.0009 alatt. De így ezzel a formázással tehát ami be teszi a smileyeket meg ilyesmiket így már 0.02 vagy 0.06, tehát jóval nagyobb mint előtte. És elvileg soronként értelmezi a foreach miatt, nem tudom hogy ezen lehet-e egyszerűsíteni ...  
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16248
							
							üzenetére tothjozsi96
							
							
								#16248
							
							üzenetéreDe attól még akkor sem jó így, az előző magyarázatot továbbra is fenntartom...  Úgy szokás, hogy hozzárendelsz egy-egy szerepkört a júzerekhez, ami egy tágabb fogalom, benne foglaltatik pl. az is, hogy ő törölhet, módosíthat, blabla, ő csak módosíthat, de nem törölhet, és így tovább... tehát azt érdemes ellenőrizni, hogy az adott júzernek van-e konkrétan olyan joga (nem szerepköre, mert a szerepkör tágabb fogalom, amiben több jogosultság is benne lehet), hogy töröljön. Na mindegy, ez csak egy javaslat, érdemes lehet megfontolni, hogy később ne legyenek problémáid belőle. Úgy szokás, hogy hozzárendelsz egy-egy szerepkört a júzerekhez, ami egy tágabb fogalom, benne foglaltatik pl. az is, hogy ő törölhet, módosíthat, blabla, ő csak módosíthat, de nem törölhet, és így tovább... tehát azt érdemes ellenőrizni, hogy az adott júzernek van-e konkrétan olyan joga (nem szerepköre, mert a szerepkör tágabb fogalom, amiben több jogosultság is benne lehet), hogy töröljön. Na mindegy, ez csak egy javaslat, érdemes lehet megfontolni, hogy később ne legyenek problémáid belőle. 
- 
			
			válasz  Sk8erPeter
							
							
								#16247
							
							üzenetére Sk8erPeter
							
							
								#16247
							
							üzenetéreAz csak egy példa volt, már 40 van megjelenítve. 
 A rang pedig jó, pont az a lényeg hogy ami SQL-ben megvan adva az szerint van UC_CLASSKülön van definiálva...  
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16246
							
							üzenetére tothjozsi96
							
							
								#16246
							
							üzenetéreHát itt 20-at jelenítesz meg, 40-et akartál.  De végül is oké. Amúgy azt hittem, csak a csatlakozott kliensnek akarsz megjeleníteni ennyit, az fura, ha pont az adminnak kevesebbet jelenítesz meg, mint amennyi van, legalább biztosíts lehetőséget a továbbiak törlésére (lapozásra) is az adminnak. De végül is oké. Amúgy azt hittem, csak a csatlakozott kliensnek akarsz megjeleníteni ennyit, az fura, ha pont az adminnak kevesebbet jelenítesz meg, mint amennyi van, legalább biztosíts lehetőséget a továbbiak törlésére (lapozásra) is az adminnak. 
 Ez az >= UC_MODERATOR kicsit fura feltétel, szerepköröknek kellene lennie, és akinek van joga törölni, csak az törölhessen, ebből még gond származhat, ha ilyen "nagyobb-egyenlő, mint valami konstans" feltételt raksz be (mi van, ha bővíted a szerepköröket, és nagyobb számot kell rendelni valami másik szerepkörnek, akinek nem kéne, hogy joga legyen a törléshez) - csak egy szerepkör legyen, aki tud törölni, ezt rendelgesd hozzá júzerekhez, és annak az egyenlőségét ellenőrizd inkább.
 És ez továbbra is csak egy átmeneti megoldás, csak hogy működjön a dolog legalább, ennél azért jóval szebben is lehet, hogy ne mindig nagy tömbökkel operálj, szóval majd később ezt a megoldást azért szépítsd. 
 De örülök, ha sikerült működésre bírni, szívesen.
- 
			
			válasz  Sk8erPeter
							
							
								#16245
							
							üzenetére Sk8erPeter
							
							
								#16245
							
							üzenetéreÍgy nem egyszerűbb??? echo "Összesen: " . $valami . " üzenet van beküldve!<br />"; 
 $szam = 1;
 foreach($adatok as $eredmeny) {
 if (get_user_class() >= UC_MODERATOR) {
 $del="<span class='date' title='Törlés'><a href=/memcache_fal.php?del=".$eredmeny["id"]."><img src='pic/torles.gif' style='height:10px; border:none;' /></a></span>";
 }
 echo "<span class='date'>[".strftime("%H:%M",$eredmeny["date"])."]</span> $del <a href='javascript:window.top.SmileIT(\"[b]$eredmeny[username]:[/b]\",\"shbox\",\"shbox_text\")'><img style='height:10px; border:none;' alt='Válasz' title='Válasz' src='pic/jobbra.gif' /></a> <a href='$BASEURL/userdetails.php?id=".$eredmeny["userid"]."' target='_blank'>" . get_user_class_color($eredmeny["class"], $eredmeny["username"]) . "</a> " . $eredmeny["text"] . "<br />";
 if ($szam++ == 20) break;
 }És kész is!  
 Köszi még egyszer! 
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16244
							
							üzenetére tothjozsi96
							
							
								#16244
							
							üzenetéreFasza, ha működik.  Általános gyakorlat az, hogy a szuperglobális tömböket NEM használjuk fel közvetlenül, alaposan validáljuk előtte.  "Már csak egy utolsó dolog van vissza, nem tudom hogy limitáljam max. 40 üzenetet akarok megjeleníteni, de nem tudom hogy tudnám így a tömbök miatt." 
 Hát úgy, hogy a tömb utolsó 40 elemét veszed. Pl. array_slice-t használhatsz erre a célra. Egy egyszerű példa:
 http://stackoverflow.com/questions/5468912/php-get-the-last-3-elements-of-an-array/5468954#5468954
 Természetesen neked nem 3 kell, hanem 40.
 DE arra figyelj, hogy előtte count()-tal ellenőrizd le, hogy több eleme van-e, mint 40, és ha igen, csak akkor szabdald fel, és vedd az utolsó 40 elemét.Viszont az is lehet, hogy ezt már érdemes lenne vagy a memcache-nek egy külön kulcsa alatt tárolni, vagy adatbázisba pakolni, és kitörölni a memóriából, mert ha úgysem érdekes jelen esetben, akkor minek terpeszkedjen a memóriában feleslegesen. 
- 
			
			válasz  Sk8erPeter
							
							
								#16243
							
							üzenetére Sk8erPeter
							
							
								#16243
							
							üzenetéreZsír, meg is oldottam megint a kiegészítéseddel a problémát!  Így néz ki a törlés része: if (isset($_GET['del'])){ 
 $conversations = $memcache->get('uzenofal');
 unset($conversations[$_GET['del']]);
 $memcache->set('uzenofal', $conversations, MEMCACHE_COMPRESSED, 999);
 }És így a bevitel: $conversations_current = array($azonosito => 
 array('id' => $azonosito, 'date' => time(), 'username' => $username, 'userid' => $userid, 'class' => $class, 'text'=> $text),
 );Tehát a tömb azonosítója megegyezik a tömb-ben tárolttal és így simán ki lehet olvasni mindent, és uniqid()-vel fut szépen! Már csak egy utolsó dolog van vissza, nem tudom hogy limitáljam max. 40 üzenetet akarok megjeleníteni, de nem tudom hogy tudnám így a tömbök miatt. 
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16242
							
							üzenetére tothjozsi96
							
							
								#16242
							
							üzenetéreSzívesen! 
 Jó a felvetés, legegyszerűbb (még ha nem is szép) megoldás jelen esetben az lenne, ha maga az azonosító lenne a tömbindex, és annak értéke pedig az adatokat tartalmazó tömb lenne. Ez továbbra is tömbök tömbje, ahogy a korábbi megoldás is volt, csak annyi különbséggel, hogy itt explicite meghatározod a tömbindexet, nem pedig az automatikus számozásra bízod (mivel eddig numerikus indexek voltak használva, 0, 1, 2, ...).
 Tehát valahogy így, pszeudokóddal:$conversations = array( 
 AZONOSÍTÓ1 => array(
 "text" => "asdasd",
 ),
 AZONOSÍTÓ2 => array(
 "text" => "blabla",
 ),
 AZONOSÍTÓ3 => array(
 "text" => "qweqwe",
 ),
 );az AZONOSÍTÓ1, AZONOSÍTÓ2, stb. kulcs lehet szám, vagy lehet egy string is (attól függően, milyen típusú azonosítót használsz). 
 Akár redundánsan is tárolhatod az azonosítót, úgy, hogy pl.:AZONOSÍTÓ3 => array( 
 'id' => AZONOSÍTÓ3,
 'text' => 'qweqwe',
 ),Ez bizonyos esetekben leegyszerűsítheti a dolgot, persze figyelni kell rá, hogy ez konzisztens maradjon, ne legyen egyik helyen ilyen azonosító, másik helyen amolyan. 
 Egyébként tényleg érdemes lehet bevezetni egy osztályt, hogy szebben tudd tárolni és kezelni az adatokat.Jelen esetben ezzel az egyszerű megoldással tehát úgy tudnád törölni, hogy egyszerűen írsz egy unset($conversations[AZONOSÍTÓ3]); sort, ezzel kitörölve az adott tömbindexet, és ezután replace-eled a korábbi tömböt a memcache-ben, és meg is vagy. Itt is egyébként figyelni kell arra, nehogy egy másik csatlakozott kliens egy korábbi kiolvasott adatból tudjon beírni, úgy, hogy visszarakja valahogy ezt az értéket a tömbbe... 
 Ezért is mondom, hogy szebb megoldást továbbra is valamilyen NoSQL-megoldással lehetne készíteni.
- 
			
			válasz  Sk8erPeter
							
							
								#16241
							
							üzenetére Sk8erPeter
							
							
								#16241
							
							üzenetéreNagyon köszi az eddigi segítséged. Egy kérdésem van, hogy szedjem ki az adott tömbömből azt az értéket amit valaki törölni akar? Mondjuk van 40. üzenet, és valaki kitörli a 35.-et, akkor azt hogy??? Ezt meg tudnám oldani, de nem értem hogy hogy vegyem ki, mert nyilván memcache->delete kellene, de nem tudom hogy mert ezért van az ID, hogy behatároljuk hogy hova tartozó az üzenet. Gondolkodom erősen, ha van ötleted akkor ...  
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16240
							
							üzenetére tothjozsi96
							
							
								#16240
							
							üzenetéreTehát akkor mégis működik a kódom, amit mutattam?  Ahogy elnézem, csak annyi különbség van, hogy a get-metódusnál nem array-t használsz, és hogyha ez így működőképes, az számomra arra utal, hogy hibás/hiányos a hivatalos dokumentáció: Ahogy elnézem, csak annyi különbség van, hogy a get-metódusnál nem array-t használsz, és hogyha ez így működőképes, az számomra arra utal, hogy hibás/hiányos a hivatalos dokumentáció:
 http://hu1.php.net/manual/en/memcache.get.php
 itt ezeket a fejléceket írja:
 string Memcache::get ( string $key [, int &$flags ] )
 array Memcache::get ( array $keys [, array &$flags ] )
 Magyarul ezek szerint ha string kulcsot adsz meg, akkor stringet is kapsz vissza; de Te a kódod szerint tömböt kaptál vissza. Akkor itt a hivatalos doksiban kéne lennie még legalább egy mixed Memcache::get ( string $key [, int &$flags ] ) sornak is... Ez így logikus is lenne, hiszen a set-metódussal is mixed állítható be, így lekérésnél is nyilván mixed lehetne. Na, ezt is megtudtuk.DE: 
 - jól érzed, ez az 'id' => rand(1,999999999) sor teljesen rossz. Mi van, ha a rand() eredményeként éppen olyan azonosító jön ki, ami már létezik? Sehol nem ellenőrzöd. De amúgy sem szokás sehol így generálni az azonosítót. Ja, és az azonosító nem feltétlenül kell, hogy szám legyen (lásd uniqid()), vagy ha mégis az kell, akkor oldd meg, hogy inkrementálva legyen, de akkor meg figyelni kell arra is, hogy ha több kliens is csatlakozik, akkor atomikusan történjen az inkrementálás, ne tudjanak korábbi/"kettő közötti" állapotot kiolvasni. Cél egyáltalán ezt feltölteni majd valami adatbázisba, hogy meglegyenek a régi adatok? Mert ha nem, szerintem simán használhatnád a uniqid() függvényt, és meg is vagy. Ha adatbázisba feltöltöd, ott max. akkor problémás, ha az id-hez egy automatikusan inkrementálódó int van beállítva; az nyilván nem fogadja el az angol ábécé karaktereit.
 Az inkrementálós megoldáshoz nem ártana valami lockolás, hogy egyszerre csak egy kliens tudja módosítani az értéket, de simán megtehetnéd azt, hogy egyszerűen a set/replace-szel egy MÁSIK kulcsot állítasz be, ami ezt a számot tárolja, azt lekéred, megnöveled, stb.
 - minek kéred le a replace/set után még egyszer az adatokat a get-metódussal? Hiszen már ott van a $conversations-tömbödben. Mondjuk annyiból jó lehet, hogy ha közben más kliens módosította az adatokat, akkor azt is megkapod...
 - erre a feladatra szerintem tényleg jobb lenne valami NoSQL-megoldás, amiről korábban írtam."Amúgy ez a compress asszem valami tömörítés a memcache-ben." 
 Igen (MEMCACHE_COMPRESSED), de ezt szerintem hagyd ott szépen, ahogy mutattam, lásd:
 http://stackoverflow.com/questions/2105663/what-is-compression-for-in-phps-memcache/2106096#2106096
- 
			
			válasz  Sk8erPeter
							
							
								#16239
							
							üzenetére Sk8erPeter
							
							
								#16239
							
							üzenetéreIgen, csak este volt és már majdnem letöröltem mindent azért mert nem jött össze.  Oké, itt a működő kód. 
 $conversations_before = $memcache->get('uzenofal');
 // új értékek
 $conversations_current = array(
 array('id' => rand(1,999999999), 'date' => time(), 'username' => $username, 'userid' => $userid, 'class' => $class, 'text'=> $text),
 );
 
 // ellenőrzöd, hogy van-e egyáltalán már ilyen érték feltöltve, mert csak akkor lehet replace-elni ezzel a kulccsal később!
 // összefűzöd a két tömböt
 $conversations = ($conversations_before !== FALSE) ? array_merge($conversations_current, $conversations_before) : $conversations_current;
 // replace, ha van már ilyen kulcs, set, ha nincs még
 if($conversations_before !== FALSE) {
 $memcache->replace('uzenofal', $conversations, MEMCACHE_COMPRESSED, 999);
 }
 else {
 $memcache->set('uzenofal', $conversations, MEMCACHE_COMPRESSED, 999);
 }
 }
 $adatok = $memcache->get('uzenofal');
 foreach($adatok as $eredmeny) {
 if (get_user_class() >= UC_MODERATOR) {
 $del="<span class='date' title='Törlés'><a href=/memcache_fal.php?del=".$eredmeny["id"]."><img src='pic/torles.gif' style='height:10px; border:none;' /></a></span>";
 }
 echo "<span class='date'>[".strftime("%H:%M",$eredmeny["date"])."]</span> $del <a href='javascript:window.top.SmileIT(\"[b]$eredmeny[username]:[/b]\",\"shbox\",\"shbox_text\")'><img style='height:10px; border:none;' alt='Válasz' title='Válasz' src='pic/jobbra.gif' /></a> <a href='$BASEURL/userdetails.php?id=".$eredmeny["userid"]."' target='_blank'>" . get_user_class_color($eredmeny["class"], $eredmeny["username"]) . "</a> " . format_shoutbox($eredmeny["text"]) . "<br />";
 }Viszont lenne még egy kérdésem.  A törlést nem tudom hogy oldjam meg. 
 Nagyon faintosan működik így is.
 De amint látod az ID ahogy beírom az elég "random". Mivel eddig volt egy ilyen megoldásom hogyha van értéke a memcache-nek akkor az id az növekvő, tehát $memcacheérték + 1 ha nincs akkor meg értelemszerűen 1-ről indul ... Amúgy ez a compress asszem valami tömörítés a memcache-ben. 
 A memcache-ben még benne hagytam az idő-t, de azt majd kiveszem, mert csak akkor fog frissülni hogyha újat írnak be. 
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16238
							
							üzenetére tothjozsi96
							
							
								#16238
							
							üzenetéreSzívesen, de akkor másold már be légyszi azt a kódot (legalább egy körülbelülit), ami működik, ha már ennyit szenvedtünk vele...  (Nekem most nincs kedvem agyalni a témán, de a megoldás érdekelne.) (Nekem most nincs kedvem agyalni a témán, de a megoldás érdekelne.)(#16237) : Ja, nyilván nem jó, mert ötezerszer szerepel benne az "uzenofal" kulcs...  
- 
			
			válasz  Sk8erPeter
							
							
								#16236
							
							üzenetére Sk8erPeter
							
							
								#16236
							
							üzenetéreKöszi a segítséget. 
 Megoldódott!!! Az array nem kellett a get-re. 
 Így jó!
- 
			
			válasz  Sk8erPeter
							
							
								#16236
							
							üzenetére Sk8erPeter
							
							
								#16236
							
							üzenetéreKicsit nézegettem, most így írja be, de szerintem ez se jó ...  array(1) { ["uzenofal"]=> array(2) { ["uzenofal"]=> array(2) { ["uzenofal"]=> NULL [0]=> array(2) { ["username"]=> string(5) "coder" ["text"]=> string(4) "heló" } } [0]=> array(2) { ["username"]=> string(5) "coder" ["text"]=> string(3) "asd" } } } 
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16235
							
							üzenetére tothjozsi96
							
							
								#16235
							
							üzenetére"Mellesleg felesleges a replace mert mindennek van külön ID-je és ahogy mondtam ez üzenőfal ..." 
 Ez hogy jön ide, hogy mindennek van külön id-je? Sehogy: eddig az volt a problémád, hogy a korábbi értékek egyszerűen törlődnek, mert szimplán felülírtad őket a Memcache::set metódussal. Arra kellett a replace, hogy a korábbi és az új értékek egyesítéséből keletkező tömbbel helyettesítsd a régebben feltöltött tömböt. Sehogy: eddig az volt a problémád, hogy a korábbi értékek egyszerűen törlődnek, mert szimplán felülírtad őket a Memcache::set metódussal. Arra kellett a replace, hogy a korábbi és az új értékek egyesítéséből keletkező tömbbel helyettesítsd a régebben feltöltött tömböt.
 Így meg tudod tartani a régebbi és az új értékeket is. (Persze itt majd figyelj a memóriahasználatra, erre írtuk, hogy a túl régieket törölni kéne a memóriából, előtte esetleg beírva adatbázisba, ha meg akarod tartani hosszú távon, hogy visszakereshető legyen később.)
- 
			
			válasz  Sk8erPeter
							
							
								#16234
							
							üzenetére Sk8erPeter
							
							
								#16234
							
							üzenetéreÉn már nagyon megvagyok zavarodva.  
 Mellesleg felesleges a replace mert mindennek van külön ID-je és ahogy mondtam ez üzenőfal ...Az adatokat var_dump-al kaptam, amúgy. Bocs, este van már látom mi a baj ...  
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16233
							
							üzenetére tothjozsi96
							
							
								#16233
							
							üzenetéreEz egy brutálisan egymásba ágyazott tömb (nem "dupla tömb", hanem sokszorosan egymásba ágyazott darab, az "uzenofal" kulccsal ellátott tömbbe beírtál egy másik "uzenofal" kulccsal ellátott tömböt, és abba egy továbbit, stb...), amiből egyértelműen következik, hogy rosszul történik a beírás. Ergo nem igaz az, hogy "szépen beírja", mert rossz. 
- 
			
			Most így szépen beírja, csak kiolvasni nem tudom eddig még. array(2) { ["uzenofal"]=> array(2) { ["uzenofal"]=> array(2) { ["uzenofal"]=> array(2) { ["uzenofal"]=> array(2) { ["uzenofal"]=> array(2) { ["uzenofal"]=> array(2) { ["uzenofal"]=> NULL [0]=> array(5) { ["id"]=> int(1) ["username"]=> string(5) "coder" ["class"]=> int(8) ["userid"]=> string(1) "1" ["text"]=> string(3) "csá" } } [0]=> array(5) { ["id"]=> int(1) ["username"]=> string(5) "coder" ["class"]=> int(8) ["userid"]=> string(1) "1" ["text"]=> string(3) "asg" } } [0]=> array(5) { ["id"]=> int(1) ["username"]=> string(5) "coder" ["class"]=> int(8) ["userid"]=> string(1) "1" ["text"]=> string(5) "asdfh" } } [0]=> array(5) { ["id"]=> int(1) ["username"]=> string(5) "coder" ["class"]=> int(8) ["userid"]=> string(1) "1" ["text"]=> string(4) "asdh" } } [0]=> array(5) { ["id"]=> int(1) ["username"]=> string(5) "coder" ["class"]=> int(8) ["userid"]=> string(1) "1" ["text"]=> string(2) ":D" } } [0]=> array(5) { ["id"]=> int(1) ["username"]=> string(5) "coder" ["class"]=> int(8) ["userid"]=> string(1) "1" ["text"]=> string(2) "új" } } [0]=> array(5) { ["id"]=> int(1) ["username"]=> string(5) "coder" ["class"]=> int(8) ["userid"]=> string(1) "1" ["text"]=> string(2) ":D" } } Mivel dupla tömb ezért így is próbálkoztam, de nem jó ... $adat = $memcache->get("uzenofal"); 
 foreach($adat as $valami) {
 foreach($valami as $kulcsom) {
 echo $kulcsom["text"];
 }
 }
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16231
							
							üzenetére tothjozsi96
							
							
								#16231
							
							üzenetéreDe már megint mi a frász ez a kód?  
 Miért raksz egy foreach-ciklust a tömb-definiálásba? Csak hogy konkretizáljuk, én így értettem, hogy merge-ölöd a tömböt (tehát összefűzöd) a korábbi értékekkel, először lekérve a korábbi értéket, majd replace-elve (persze ellenőrizd először, hogy van-e már feltöltve egyáltalán ilyen érték!): // korábbi értékek 
 // http://hu1.php.net/manual/en/memcache.get.php
 // eszerint a get-nek array-t kell megadni, ha array-t vársz
 $conversations_before = $memcache->get(array('uzenofal'));
 
 // új értékek
 $conversations_current = array(
 array('id'=>1, 'text'=>'qwe'),
 array('id'=>1, 'text'=>'ret'),
 );
 
 // ellenőrzöd, hogy van-e egyáltalán már ilyen érték feltöltve, mert csak akkor lehet replace-elni ezzel a kulccsal később!
 // összefűzöd a két tömböt
 $conversations = ($conversations_before !== FALSE) ? array_merge($conversations_before, $conversations_current) : $conversations_current;
 // replace, ha van már ilyen kulcs, set, ha nincs még
 if($conversations_before !== FALSE) {
 $memcache->replace('uzenofal', $conversations, MEMCACHE_COMPRESSED, 999);
 }
 else {
 $memcache->set('uzenofal', $conversations, MEMCACHE_COMPRESSED, 999);
 }Persze ezt most csak kézzel írtam, nem teszteltem, de a gondolatmenet remélem átjött. 
 Szóval vág? 
- 
			
			válasz  Sk8erPeter
							
							
								#16230
							
							üzenetére Sk8erPeter
							
							
								#16230
							
							üzenetéreDe, tehát ezt a szerver tárolja. 
 Szóval mindenki "kliens" látja."Miért nem kéred le felülírás ELŐTT az előző értéket, fűzöd hozzá ehhez a tömbhöz az új értékeke" Ezzel próbálkozok, de nem megy ... ÁÁÁÁÁÁÁÁÁÁÁ 
 De így most szupi!!!$valami = array( 
 array("id" => $_GET["id"], "text" => $_GET["text"]));
 foreach($valami as $gecike) {
 $akarmi = array(
 array("id" => $gecike["id"], "text" => $gecike["text"]),
 array("id" => 5, "text" => "mindegy"),
 array("id" => 10, "text" => "asdasd"),
 );
 }Tehát most: 
 1valamicske
 5mindegy
 10asdasdEzt írja a böngésző és: 
 http://localhost/?id=1&text=valamicskeSzóval kiírja az összes értékét a tömb-nek, jöjjön a memcache rá és lássuk hogy jó-e. 
 Izgulok. 
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16228
							
							üzenetére tothjozsi96
							
							
								#16228
							
							üzenetéreÉn értelek, csak te nem értesz.  Miért nem kéred le felülírás ELŐTT az előző értéket, fűzöd hozzá ehhez a tömbhöz az új értékeket, és replace-eled EZUTÁN a korábbi tömböt? Első körben. Miért nem kéred le felülírás ELŐTT az előző értéket, fűzöd hozzá ehhez a tömbhöz az új értékeket, és replace-eled EZUTÁN a korábbi tömböt? Első körben.
 Vagy most az a baj, hogy ha csatlakozik egy másik kliens, akkor annál még nincs beállítva ez az érték, vagy mi?
- 
			
			Tehát, egyszerű példával mutatom. Van egy ilyen kódom: $akarmi = array( 
 array("id" => 5, "text" => "mindegy"),
 array("id" => 10, "text" => "asdasd"),
 );
 foreach($akarmi as $cucc) {
 $conversations = array(
 array("id" => $_GET["id"], "text" => $_GET["text"]),
 array("id" => $cucc["id"], "text" => $cucc["text"]),
 );
 }
 foreach($conversations as $beszelgetes) {
 echo $beszelgetes["id"] . " - " . $beszelgetes["text"] . "<br />";
 }És ebből ez jön vissza: 
 1 - valamicske
 10 - asdasdTehát, az 1-es mező az GET-el megvan adva, szóval 
 http://localhost/?id=1&text=valamicskeÉs amint látszik az 5-ös kimarad de a 10-est beírja. 
- 
			
			válasz  Sk8erPeter
							
							
								#16227
							
							üzenetére Sk8erPeter
							
							
								#16227
							
							üzenetéreNem értjük egymást. 
 Nekem az a problémám hogy nem tudom tárolni a régebbi bejegyzéseket is.
 Mindig csak az ujjat írja fel, a régi megy a levesbe.Tehát, a memcache set úgy működik hogy mindig újra írja az egész kulcs értékét. 
 Na most, így mindig elveszik az "előző" üzenet.Tehát, valahogy tárolnom kell a GET tartalmát és a memcache előző tartalmát. 
 Így érted?
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16225
							
							üzenetére tothjozsi96
							
							
								#16225
							
							üzenetéreJó, hát most nem tudom tesztelni, akkor használd a replace-t, úgy, hogy a módosított tömböt rakod a helyére, és kész, első megközelítésként jó lesz, aztán szépíted, ha lehet. Direkt azért linkeltem az előbb, ne csak a hsz. felét olvasd el. (#16226) : Ez a kód most remélem csak egy rossz vicc volt!  
- 
			
			Közben kezdek rájönni a megoldásra. $conversations = array( 
 array("id" => $id, "text" => $text),
 foreach($cache as $ertek) {
 array("id" => $ertek["id"], "text" => $ertek["text"]),
 }
 );
 $memcache->set("uzenofal", $conversations, false, 999);Tehát kell a tömb-be egy foreach ami külön létrehozza a sorokat és így tárol. 
 Így jó is lenne az üzenőfal szerintem!!! De viszont valami hiba van, mert semmit se jelez ...Gondolom valami szintaktika hibás mert array(), foreach hááát ... 
- 
			
			válasz  Sk8erPeter
							
							
								#16224
							
							üzenetére Sk8erPeter
							
							
								#16224
							
							üzenetéreKicsit megnézegettem ezt a Memcache->add-ot. 
 Ez kb. arra jó hogy egyszer beállít egy fix értéket, ami utána nem módosul, max. ha lejár a memcache ideje.
 Akár mit írok be már nem írja felül az értékét a kulcs-nak.Jelen esetben nem jobb mint a set ... 
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16223
							
							üzenetére tothjozsi96
							
							
								#16223
							
							üzenetéreFontolóra vehetnéd a Memcache::add metódust is, így az előbbi megoldás helyett, ahol egy nagy tömbben töltöd fel a beszélgetéseket, akár egyenként is feltölthetnéd, tehát így: foreach($conversations as $conversation) { 
 echo $conversation["id"] . " - " . $conversation["text"] . "<br />";
 $memcache->add('beszelgetes', $conversation, MEMCACHE_COMPRESSED, 99);
 }Próbát megér, még nem használtam, majd írd meg, ez mit eredményez, ha lekéred az adatokat. Így elvileg bármikor tudsz hozzáadogatni, nem írja fölül, mint a set. 
 (Ott van még a replace-metódus is egyébként, ha majd az kéne, de ezt próbáld meg előbb.)Egyébként fontolóra vehetnéd valamilyen NoSQL-megoldás használatát is (mint pl. a mongoDB), az ilyen feladatokra szintén nagyon hatékony tud lenni (lásd Facebook). 
- 
			
			válasz  Sk8erPeter
							
							
								#16222
							
							üzenetére Sk8erPeter
							
							
								#16222
							
							üzenetéreOké, mindjárt megnézem mit csinál erre. 
 Jó lenne nagyon ez a memcache üzenőfal.
 Kicsit már lemondtam róla. Na, így már faxa!!!  array(4) { [0]=> array(2) { ["id"]=> int(1) ["text"]=> string(11) "első üzenet" } [1]=> array(2) { ["id"]=> int(2) ["text"]=> string(14) "második üzenet" } [2]=> array(2) { ["id"]=> int(3) ["text"]=> string(15) "harmadik üzenet" } [3]=> array(2) { ["id"]=> int(4) ["text"]=> string(15) "negyedik üzenet" } } Ezt adja vissza var_dump-al, tehát működik. 
 Már csak azt kellene megfejtenem hogy hogy mentsem el az új adatot és a régit egyben!
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16221
							
							üzenetére tothjozsi96
							
							
								#16221
							
							üzenetéreŐ, de miért nem magát a $conversations tömböt tárolod, úgy, ahogy van?  
 http://php.net/manual/en/memcache.set.php
 a függvény fejléce a doksiban:
 bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )
 Mint látható, a második paraméter "mixed", tehát nincs korlátozva, hogy milyen típust állíthatsz így be.
 Próbáld ki ezt (nem tudom most tesztelni):foreach($conversations as $beszelgetes) { 
 echo $beszelgetes["id"] . " - " . $beszelgetes["text"] . "<br />";
 }
 $memcache->set("beszelgetes", $conversations, false, 99);A $conversations tömbhöz meg értelemszerűen hozzáadhatsz, illetve abból törölhetsz, aztán újból beállíthatod az előbbi módon (elvileg jónak kéne lennie). Egyébként itt a harmadik paraméternél nem lenne jobb false helyett használni esetedben pl. a MEMCACHE_COMPRESSED vagy más konstanst? 
 http://stackoverflow.com/questions/2105663/what-is-compression-for-in-phps-memcache/2106096#2106096U.i.: plíz használd a Programkód gombot, miután kijelölted a kódot! Köszi! 
- 
			
			Úgy nézem hogy sajnos nem fog működni ez a full memcache üzenőfal.  $conversations = array( 
 array("id" => 1, "text" => "első üzenet"),
 array("id" => 2, "text" => "második üzenet"),
 array("id" => 3, "text" => "harmadik üzenet"),
 array("id" => 4, "text" => "negyedik üzenet"),
 );foreach($conversations as $beszelgetes) { 
 echo $beszelgetes["id"] . " - " . $beszelgetes["text"] . "<br />";
 $memcache->set("beszelgetes", array("id" => $beszelgetes["id"], "text" => $beszelgetes["text"]), false, 99);
 }$memoriaban = $memcache->get("beszelgetes"); 
 var_dump($memoriaban);Így megnéztem, és csak a negyedik üzenetet tárolja, tehát nem jó ...  Nem tudom hogy lehetne tárolni a régieket, mert máshogy nem lehet kiolvasni az összeset csak foreach-al. 
- 
			
			válasz  Sk8erPeter
							
							
								#16219
							
							üzenetére Sk8erPeter
							
							
								#16219
							
							üzenetéreMegvilágosodtam kicsit, értem már hogy kell kiolvasni, de van egy problémám. 
 Hogy tároljam úgy hogy az előző üzenetek is megmaradjanak???
 Mivel a memcache úgy működik hogy van 1 kulcsom és azon belül vannak az adatok.
 Na most, hogy tároljam az előző üzeneteket is?
 Így lehetne hogy $memcache->set("uzenofal", $_GET["text"] . $regiuzikCsak így az a baj hogy nincsen elválasztva hanem egybe van az összes üzenet. 
 Mert . van ott, de ha beírom hogy , akkor nem menti el.Ezt nem értem hogy lehetne ... 
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16218
							
							üzenetére tothjozsi96
							
							
								#16218
							
							üzenetéreÚgy értettem, hogy nem stimmel az a mondat, hogy "Nyilván jquery-vel látszik csak a különbség", mert nincs köze a jQuery-nek ahhoz, hogy miért gyors a dolog. Azért gyors, mert a memóriában tárolsz, onnan olvasol, és nincs ott az adatbázis-kezelési overhead. Plain JavaScripttel, meg teljesen más megközelítéssel is meg lehetne írni az egészet, a lényeg a gyorsaságban jelen esetben a szerveroldal (mert az a szűk keresztmetszet, a kliensoldali kód nyilván gyors, hacsak nem egy szutyok).  Jé, most lettem PH! félisten, atyaúristen.  
- 
			
			válasz  Sk8erPeter
							
							
								#16217
							
							üzenetére Sk8erPeter
							
							
								#16217
							
							üzenetéreMivel ez az üzenőfal iframe-el működik ezért alapból túl nagy sebesség különbözet nincsen ránézésre. 
 Tehát egy átlag felhasználó nem fogja észre venni ...
 Köszi, és megnézem! 
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16214
							
							üzenetére tothjozsi96
							
							
								#16214
							
							üzenetéreEnnek itt mi értelme van? Ha már tényleges felhasználás a cél, akkor miért nem egyértelműen használod fel a kulcsokat, miért általánosan akarsz végigmenni a tömbön? A másik, hogy remélem, ez a tömb csak példa, és nem úgy néz ki a gyakorlatban, hogy összekutyulva asszociatív tömb és numerikus kulcssal ellátott tömb egyben. Akkor már miért nincs az 5-nek, meg a "mégvalami"-nek is valami normális indexe? Ha tényleg nincs, hát akkor adjál nekik (nem egy CMS által generált kódot használsz, ahol néha ilyen ocsmány kutyult tömböket használnak, hanem te írod az egész kódot), ha van, akkor meg aszerint használd a kulcsokat, ne általánosan akarj végigmenni foreach-ciklussal. Legalábbis az elég furcsa, ha az a valódi felhasználás, hogy igazából nem is tudod egyértelműen már a kódból, hogy mi is van a tömbben. Egyébként már írták neked, hogy használd tömbök tömbjét, miért nem teszed?  Most nem is tudom, hogy működik a megoldásod (vagy ez csak példakód?). Sőt, ami szebb lenne, miért nem használod inkább objektumok tömbjét? Most nem is tudom, hogy működik a megoldásod (vagy ez csak példakód?). Sőt, ami szebb lenne, miért nem használod inkább objektumok tömbjét?
 A tömbök tömbje mondjuk ilyen lehetne:
 $conversations = array(
 array("id" => 5, "text" => "asdasdasd"),
 array("id" => 6, "text" => "blabla"),
 );
 de ez finoman szólva nem valami szép, inkább objektumok tömbje kéne. Szóval definiálnál egy osztályt, amiben értelmesen tárolhatnád az adatokat, lenne több attribútuma, aztán példányosítanád. Ezerszer nagyobb rugalmasságot kapnál cserébe.(#16213) : Nem "ágyazott" foreach-ciklus, hanem EGYMÁSBA ágyazott ciklus. Ha nem lenne egyértelmű, ez két egymásba ágyazott foreach-ciklus (és ezt a végtelenségig lehet bővíteni): 
 foreach(...) {
 foreach(...) {
 // ...
 }
 }(#16216) : 
 "Nyilván jquery-vel látszik csak a különbség"
 Hogy mi van? Mégis mi a frász köze lenne a jQuery-nek a dolog gyorsaságához? Mégis mi a frász köze lenne a jQuery-nek a dolog gyorsaságához? 
- 
			
			
- 
			
			  DNReNTi őstag válasz  tothjozsi96
							
							
								#16214
							
							üzenetére tothjozsi96
							
							
								#16214
							
							üzenetéreVan valami különösebb oka annak, hogy adatbázis helyett ezt a megoldást választottad? 
- 
			
			Ti ezt hogy íratnátok ki úgy hogy az id szerint törje a sorokat és hozzá legyen rendelve a text??? $tomb = array("id" => 1, 5, "text" => "valami", "mégvalami"); foreach($tomb as $kulcs => $value) { 
 echo $value . "<br />";
 }
- 
			
			válasz  Sk8erPeter
							
							
								#16212
							
							üzenetére Sk8erPeter
							
							
								#16212
							
							üzenetéreNéztem a var_dump-al és print_r-el is, szépen kiír mindent, de értelemszerűen ürítve lenne a fal, igazából naponta törlődne a memcache-ből az értéke, mellesleg txt fájlba van mentve minden napról mentés is hogyha valami fontosról volt szó vagy valaki káromkodott és törölte. ![;]](//cdn.rios.hu/dl/s/v1.gif) Meg próbálom ezt az "ágyazott foreach-ciklus"-t megvalósítani. 
 Köszi!
- 
			
			  Sk8erPeter nagyúr válasz  tothjozsi96
							
							
								#16211
							
							üzenetére tothjozsi96
							
							
								#16211
							
							üzenetéreMár szó volt a tömbök tömbjéről, és ehhez értelemszerűen két egymásba ágyazott foreach-ciklusra lesz szükséged, hogy normálisan elérd a tömbben tárolt tömb kulcsait/értékeit. Már ha jól értem, mit szeretnél, hogy először csak mindent jól ki akarsz íratni, és annyi; bár lehet, hogy félreértelek, jó lenne tudni, nálad mit jelent az, hogy $value...  (Na, látod, ez a hátránya az ilyen fos változóneveknek. (Na, látod, ez a hátránya az ilyen fos változóneveknek. ) Egyébként hogy értelmesen lásd, mit tartalmaz egy tömb, csak egy gyorsteszt erejéig debuggolhatnál, vagy írasd ki az értékét var_export()-tal, print_r()-rel, var_dump()-pal, stb... (Nyilván aztán amint megtudtad, mi van benne, ezeket a sorokat selejtezd ki, amúgy is illik inkább normálisan debuggolni a kódot, nem kiíratni minden hülyeséget.) ) Egyébként hogy értelmesen lásd, mit tartalmaz egy tömb, csak egy gyorsteszt erejéig debuggolhatnál, vagy írasd ki az értékét var_export()-tal, print_r()-rel, var_dump()-pal, stb... (Nyilván aztán amint megtudtad, mi van benne, ezeket a sorokat selejtezd ki, amúgy is illik inkább normálisan debuggolni a kódot, nem kiíratni minden hülyeséget.)
 De lehetőleg felejtsd el az ilyen változóneveket, mint az $array, meg $value, mert ezek a nevek semmit nem mondanak a változók tartalmáról, így ha ránézel a kódra, mindig előbb el kell gondolkodni rajta, az mit is tartalmaz pontosan. Nem kell félni a hosszú, beszédes változónevektől, SŐT."Elég sokat terhel az SQL fal, és így szinte 0% load.  " "
 Hát ha minden a memóriában tárolódik, és onnan is kell kiolvasni, akkor nem csoda, mivel semmiféle adatbázis-kapcsolódási, oda való feltöltési (lockolási, stb.) overhead nincs a dologban. Viszont ahogy Athlon64+ említette, épp emiatt ne felejtsd el a túl régieket törölni, különben szép kis memóriahasználatod lesz.(#16205) kemkriszt98 : 
 Akkor fasza, ha megoldódott, viszont az echo után használj már szóközt, háthogynézezmárkianélkül. 
- 
			
			Lejárt a szerk. idő De megnéztem így: 
 foreach($adatok as $array => $value) {
 print($value . "<br />");
 }Így kiír mindent, de viszont úgy tördeli a sorokat ahogy vannak az értékek, azt nem tudom hogyan tudom kiolvasni külön-külön, tehát most egy sorban van egy adat. 
 Nekem meg úgy kellene hogy soronként és egy sor például: date, username, textNem tudom hogy hogyan tudnám megoldani. 
 Elég sokat terhel az SQL fal, és így szinte 0% load. 
- 
			
			válasz  Peter Kiss
							
							
								#16209
							
							üzenetére Peter Kiss
							
							
								#16209
							
							üzenetéreEz a lényeg: 
 Adatokat innen nyerem ki:
 $adatok = $memcache->get("uzenofal");És így kiír mindent szépen. 
 print_r($adatok["date"] . "<br />" . $adatok["text"]);De így egybe írja ki, nekem meg sor tördelve kell! 
- 
			
			  Peter Kiss őstag válasz  tothjozsi96
							
							
								#16208
							
							üzenetére tothjozsi96
							
							
								#16208
							
							üzenetéreMutass kódot. 
- 
			
			válasz  Peter Kiss
							
							
								#16207
							
							üzenetére Peter Kiss
							
							
								#16207
							
							üzenetéreEz már megoldva, de viszont hogy írassam ki???  
 Mert foreach() nem jó valamiért ...
- 
			
			  Peter Kiss őstag válasz  tothjozsi96
							
							
								#16206
							
							üzenetére tothjozsi96
							
							
								#16206
							
							üzenetéreTömbök tömbjét tárolod mondjuk (a set() második paramétere)?  Annyit kell csak tenned, hogy a túl régi üzeneteket mindig takarítsd ki előtte. Annyit kell csak tenned, hogy a túl régi üzeneteket mindig takarítsd ki előtte.
- 
			
			Lenne egy kérdésem, hátha valaki tud segíteni. 
 Éppen egy memcache üzenőfalat írok, tehát semmi féle sql nincs benne.
 Az a bajom vele hogy mindig csak az új adatokat írja be, gyakorlatilag szépen írja is amit kell neki csak nem tudom hogy hogyan tároljam el a régieket is ... Tehát van ez a sor: 
 $memcache->set("uzenofal", array("date" => time(), "class" => $class, "userid" => $userid, "username" => $username, "text" => $text), false, 999);És nekem kellene a régi adat, tehát így mindig csak egy üzenet lesz eltárolva ami a legújabb, próbáltam úgy is hogy array("date" => time(), $cache["date"]) ... 
 De így se jó, nyilván az $cache = $memcache->get("uzenofal")-al ... 
 Aki ilyen nagy tömb szakértő vagy ért hozzá annak megköszönném ha segítene! Szerk.: 
 Közbe rájöttem hogyha nem nem elválasztó jelekkel csinálom hanem ponttal tehát time() . $cache["date"] akkor így már jó ...
 De nem tudom hogy írassam ki az adatokat.
- 
			
			  kemkriszt98 tag válasz  kemkriszt98
							
							
								#16204
							
							üzenetére kemkriszt98
							
							
								#16204
							
							üzenetéreígy módosították a parancsot és végre valahára működik  
 wget --delete-after http://artclublumir.com/cron/cron.php > /home/artclubl/public_html/cron/cron_log.txt
- 
			
			  kemkriszt98 tag válasz  Sk8erPeter
							
							
								#16203
							
							üzenetére Sk8erPeter
							
							
								#16203
							
							üzenetére1. Az if-nek az a története, hogy mikor anno ajánlottad a mysql_connect() helyett a PDO-t akkor még feltett szándékom volt NEM megtanulni a PHP-t így nem is nagyon néztem, hogy mit vágok ki a példakódokból... de át fogom írni úgy ahogy az előbb tanácsoltad... 
 2. Bemásoltam itt 
 3.Igen, ha beírom a böngésző címsorába írom vagy parancssorból futtatom akkor minden tökéletes.
 4.A beírt parancsot is megosztottam (akkor te is hozzászóltál) és azt mondtátok, hogy jó... mást meg nagyon nem írhattam el mert a pontos idő beállítása grafikus felületen történik...Egyébként azóta a szolgáltató közölte, hogy be kell állítani a portod de úgy se nagyon működik.... 
- 
			
			  Sk8erPeter nagyúr válasz  kemkriszt98
							
							
								#16189
							
							üzenetére kemkriszt98
							
							
								#16189
							
							üzenetéreEz az if($send) egy elég értelmetlen feltétel, főleg, hogy már ezelőtt a sor előtt az execute-tal végre próbálsz hajtani egy műveletet, és ha ez a változó mondjuk NULL, akkor már korábban kapsz erre az arcodba egy hibaüzenetet (mivel nyilván NULL értékkel rendelkező változón nem igazán lehet metódust meghívni). Meg azt írtad, dobódik egy kivétel, "Connection timed out" üzenettel. De másold már be a PONTOS, teljes hibaüzenetet! 
 Még valami:
 $con = new PDO('mysql:host=mysql5.hostbase.net;dbname=artclubl_luminita','*','*');HELYETT így kellene inicializálnod a PDO-t: $con = new PDO( 
 'mysql:host=mysql5.hostbase.net;dbname=artclubl_luminita',
 "*",
 "*",
 array(
 PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;',
 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
 )
 );A PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION azért érdekes, hogy kivétel dobódjon probléma esetén, és ne ilyen béna if-else ellenőrzésekre legyen szükség. Emiatt pedig try-catch blokkba kell raknod az egészet, és megfelelően loggolni a hibaüzeneteket. Itt azt írod, hogy "direkt URL-lel" megy. Tehát ha szépen beírod a böngésződ címsorába, akkor az UPDATE-művelet is sikeresen lefut, nincsen időtúllépés? 
 Sőt, ha parancssorból hajtod végre, akkor is sikeresen lefut az UPDATE-művelet?
 Magyarul egyedül akkor van probléma, ha a tárhelyszolgáltató admin-felületén szerkesztgetett, oda beírt ütemezett feladat futna le? Igazából erről olyan sok részletet nem osztottál meg, hogy hogyan csináltad, arra lehetne tippelni, hogy elrontottál valamit a szerkesztéskor, de tényleg csak tippelgetni lehet ennyi alapján.(#16199) PumpkinSeed: 
 "Nem láttam még olyan oldalt aminek ez hozta volna meg a sikert."
 Én igen, SoundCloud, YouTube, ... 
 (Jó, értem én... ) )
- 
			
			  emitter őstag Sziasztok! Ha valakinek van kedve és ideje, a jarokelo.hu közösségi ügybejelentő weboldalnál php-programozót keresnek (önkéntes munkában): link 
Új hozzászólás Aktív témák
Hirdetés
- Battlefield 6
- PlayStation 5
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Bambu Lab 3D nyomtatók
- Xiaomi 15T Pro - a téma nincs lezárva
- Gurulunk, WAZE?!
- Hollow Knight és Silksong
- Egérpad topik
- Filmvilág
- Számtech boltosok memoárjai, azaz amikor kiborulunk...
- További aktív témák...
- ASUS TUF A15 FA507 - 15.6"FHD 144Hz - Ryzen 7 7435HS - 16GB - 1TB - Win - RTX 4050 - 2,5 év garancia
- Bomba ár! HP ProBook 450 G8 - i3-1115G4 I 8GB I 256SSD I HDMI I 15,6" FHD I Cam I W11 I Gar
- HIBÁTLAN iPhone 12 Pro 256GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3107, 100% Akkumulátor
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- HP ProBook 440 G5 i3-7100 laptop
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
 
								 
							
 
								 
							 
							

 
								 
							
 "
" Semmit nem oldana meg lecserélni a require()-t include()-ra. Annyi különbség lenne, hogy abban az esetben, ha nem létezne a fájl, nem produkálna egy fatális hibát.
 Semmit nem oldana meg lecserélni a require()-t include()-ra. Annyi különbség lenne, hogy abban az esetben, ha nem létezne a fájl, nem produkálna egy fatális hibát. 
								

 
							 
								 
							 
								 
							 
								 
							 
								 
							
 
								 
							 
								 
							 
								 , de miért ? Most csak statikus html oldalt csinálok php nélkül.
 , de miért ? Most csak statikus html oldalt csinálok php nélkül. 
								 
							 
								 
							



![;]](http://cdn.rios.hu/dl/s/v1.gif)

 
								 
							 
								 
							 
								
