próbálom normálisan megfogalmazni, hogy hátha segyít vki nekem is. Szóval mivel kell kezdõdnie egy egyszerû modul kódjának, hogy azt a Php-nuke os rendszer elfogadja, és rendesen behozza a neki szánt helyen?
Sziasztok!
Honlapom Ha hibás linkre mennek a honlapomon, akkor hogyan lehetne azt elérni, hogy egy ehhez hasonló lapra továbbítsa az egyént? Atw szervert használok.
Tudnátok adni valami nagyon egyszerû, alapszintû leírást PHP-rõl? hogy egyáltalán mi is ez meg hogy mûködik? Annó a fix tévén elmagyarázta egy fószer és frankón értettem, de az már régen volt...:(
Üdv! Érdekelne...hogyan lehet optimizálni egy oldal mysql-ét? Mert az enyém rohadt lassúúú! És nem a szerver miatt, mert már többet is próbáltam... Szóval hogy lehet gyorsítani az oldal és a mysql szerver köszi kapcsolatot...thx!
a tábláktól és a szervertõl függ! mi van a mysql-edben?
áhhh...valszeg a szerver nembírja... havi 1200ft-ért nemcsoda... Egy neveldét üzemeltetek: http:/harcosnevelde.hu De nemnagyon bírja a szerver a strapát! :D
hát akkor egyértelmû :D a server a szar nem a sql rendszered bár ha nagyon össze viszaság van benne akkor az valamilyen szinten lasitja de nem sokat számít szerintem!
sok mindentõl függhet a sebesség - hány weboldalt visz még az a szerver. ha sokat akkor egyidõben sok oldallekérés jelentõsen lassíthatja - milyen erõs gép a szerver. ha egy régi 700-as p3-as akkor ne várj csodát - az sql azon a gépen van-e vagy van külön sql szerver. az elõbbi a gyakoribb, profibb helyeken, ill. ahol sok gép van a hostingban van külön sql szerver
gyorsítani lehet a táblák optimalizásásával, ill. ha nagyobbacska a tábla, érdemes leindexeltetni, akkor gyorsabban tud keresni a SELECT-tel, meg általánossában is kicsit gyorsabb (phpmyadminnal mindet meg lehet csinálni)
dataglobe-nál vagyunk. nemtudom mi a véleményetek róla...
dromon van 8000-es topik is, és ugyanolyan gyors mint a pár postos (pedig ott van rengeteg lekérdezés, mire legenerál egy oldalt a fórum) ha 2000 sortól akad, akkor ott komoly gondok lehetnek. ha nem indexelted le, akkor tedd meg. de a szarul megírt kód is lassíthatja, neked kéne tudnod...
no, indexeltem, meg optimalizáltuk a táblákat, és sokkal gyorsabb lett... THX! :))
mekkorák a tábláid? hány regelt tagod van és mennyi adatot tárolsz roluk? gyorsíthatod ha a sok felesleges adatot nem kéred! ha ez egy játék oldal vagy mi a turo akkor felesleges polgári név meg egyébb dolog :) ezzel is tudod gyorsitani! gondold végig mi az ami felesleges és azt szedd ki! bár ez nem sokat gyorsít....
Üdv! Abban kérnék segítséget hogy ha weblapot szerkesztek (Namo 6-al) és zenét akarok betenni alá akkor azt hogyan tudom megoldani hogy ne csak szóljon hanem pl egy az oldalom elhelyezett gombbal, képpel ki is lehessen kapcsolni, majd újra be. THX.
legjobban gyorsítani úgy lehet, hogy a lekéréseknél nem SELECT *-gal választasz ki, hanem csak azt amit kell: SELECT name,email,points FROM...
legjobban úgy lehet gyorsítani ha elhelyez egy saját servert az axi adatparkban :D
No skacok. új feladat: Pár napja kaptunk levelet a tárhelyszolgáltatótól, hogy vmit kezdjünk az oldallal, mert szó szerint megkajáljuk a hosting gépeket. (Az oldalon naponta kb. 1000 bejelentkezett látogató, és kb. 90e oldalletöltés van)Ezért elkezdtük átnézni, és szûrögetni a fájlokat. Így mostanra a szerver terhelés 85%-ról 65%-ra csökkent(Az oldal rendkívül zabálja lefele a mysql-t, ezért a SELECT *-ok eltüntetésével próbáltuk menteni a helyzetet).
Azt szeretném kérni tõletek, hogy segítsetek, hogy optimizálhatnánk jobban az oldalt. Gondolok itt php, mysql tippekre. (a motor végülis csak annyi, hogy az index-be includeolja bfele a fájlokat) Az oldal abszolute homemake, és még tapasztalatlanul csináltuk. Ezért kérem az építõ jellegû tippeket. Mikre figyeljek, miket hanyagoljak, jó módszereket szeretnék az oldal optimizálásához.
Thx, Remélem tudtok segíteni!
Nézzetek annak utána, hogy lehetne cache-eltetni a lapokat. Pl. smarty..?
Helló! Az sql adatbázis motortól függõen figyelembe veszi a generált indexeket. (create index...) Tapasztalatom szerint a lényegre törõ utasítások,(csak azokat a mezõket kell lekérdezni amire szükség van) és az indexek jelentõs mértékben meggyorsítják a választ.Ezzel egyidejûleg csökkentik a kiszolgáló gép terhelését. Az utasítások szintakszisa erõsen sql függõ( msSQL,MySQL,Interbase,...)
Az mindegy hogy: 5 select helyett 1-ben kérjük le mind az 5 tartalmát? Ez jobb lenne, vagy lényegtelen?
halihó! nem tudjátok véletlenül hogy hogy tudok hibaüzenetet csálni php-ban hasonló képpen mint javaban a jobb egér klikk tiltásánál? ;)
A felugró figyelmeztetõ ablakra gondolsz, amin csak egy OK gomb van? Javascriptben a következõképp lehet megoldani <script type="text/javascript"> alert ('Vigyázz!') </script>
PHP-ben erre nincs mód, hacsak nem illeszted be a fenti Javscript kódot: print ("<script type=\"text/javascript\"> alert ('Vigyázz!') </script>");
mind1 megoldottam máshogy :) de a szöveg az meg van szabva hogy hány karakter lehet? mert pár karakterel müködik de sokkal már nem jelenik meg a hibbaüzenet :(
1. Igen, oda illeszd be mivel a print függvény (vagy az echo függvény), generál a böngészõ számára kimenetet. A PHP-ben nincsen olyan külön függvény, ami ilyesmi felugró "ablakot" generálna, ezért ajánlottam a HTML-be ágyazott Javascript kód használatát. (Bár a Javascript egyes böngészõknél, tûzfalaknál letiltható) 2. Valószínûleg van (biztonsági) korlátja a kiírható mennyiségnek. Ekkor a következõ trükköt lehet alkalmazni: egymás után többször kell meghívni az alert() függvényt. 3. Milyen más módon oldottad meg? Kiváncsi vagyok rá!
megvan a hiba! az áltláthatóság kedvéért a printen belül megtörtem a szöveget enterel hogy alul ne keljen görgetni ezért nem müködött! De mostmár mûködik! köszönöm szépen a segítséget!
szöveg az lemaradt :) ezzel mi a gond emberek? mintha ciklusba lenne és ismételgeti ujbol megjelenik az ablak a szöveggel és amint az okra klikelet ismét :(
Nézd meg mégegyszer a kódot figyelmesen. A <META HTTP-EQUIV=Refresh CONTENT='0'; URL='site.php'>[/i aAz oldal betöltõdése után 0 azaz nulla másodperccel (azaz azonnal) betölti a site.php-t, ami valószínûleg ugyanaz, ami ezt a kódrészletet tartalmazza.
Csak hogy képben legyél egy hirlevél küldõ scripten dolgozok a site.php amit be illesztek az oldalamba ebben csak html kod van egyelöre, de késöbbiekben lesz benne statisztika miatt php elem is!
a work.php ami elvégiz a modosítást az adatbázisomon majd a végén van az az elem amit idemásoltam!
Szerintem a site.php-t ne <META HTTP-EQUIV=Refresh CONTENT='0'; URL='site.php'> módon hívd be, hanem így: <?php print ("<script>alert('szöveg')</script>"); include ("site.php"); ?>
Vagy: <?php print ("<script>alert('szöveg')</script>"); header("Location: site.php"); ?> Bár ez utóbbinál nem fog várni a script, és egybõl ugrik...
na ez kell nekem hogy szinte el se tünjön a site.php :)
skacok, ha én azt akarom hogy egy csávó ne tudjon a honlapomra jönni, azt hogy intézhetném el? IP ugye kizárva, mert ip-t váltani könnyû. cookie-kat is könnyû letörölni. Esetleg a host-al lehet vmit kezdeni?
Esetleg állíts be badword-filter-t. Felsorolsz egy rakat trágár szót, és ha valaki be akarja írni str_replace függvénnyel kicseréled ***-okra. A host-tal nagyon nem tudsz kezdeni semmit, szoros öszefüggésben van az IP címmel.
Tehát tegyük fel, hogy van egy badwords.txt-d amiben fel vannak sorolva trágár szavak. Kb. így: marha,ökör,tehén,boci,ló - szóval vesszõvel elválasztva vannak a szavak. (Ez csak egy példa!) Tegyük fel továbbá, hogy a beadott szöveget egy $bemenet változóban tárolod.
Ekkor a kód a következõképp néz ki: $badwordsfile = "badwords.txt"; if (file_exists($badwordsfile)) { $handle = fopen($badwordsfile, "r"); //Megnyitjuk a badwords.txt-t while (!feof($handle)) { $buffer = fgets($handle, 4096); //Beolvassuk egy bufferbe a file tartamát $badword = explode(",", $buffer); //Szavakra szedjük szét $bemenet = str_replace($badword, "****", $bemenet); //És cserélünk } fclose($handle); //Lezárjuk a badwords.txt-t }
Üdv!
Namo 6-ot használok webszerkesztõnek. Van egy nagy problémám. Vannak a layer-ek (szerintem ezek más szerkesztõkben is megtalálhatók) ezek olyan beszúrható ablakocskák amikbe bármit helyezhetsz és azt bárhova mozgathatod az oldalon. Ha egymás alá raksz dolgokat akkor ugyebár görgethetõvé vélik az oldal (lefelé). Az a probléma hogy egy adott pont után nem engedi ezeket a layer-eket lejjebb, tehát minthogyha ott valami pont lenne amin nem mehet túl, így nem tudom tovább bõíteni az oldalat lefelé. Nagyon fontos lenne hogy valaki segítsen. Elõre is kössz.
Ugyanez egyszerûbben:
$badwordsfile = "badwords.txt"; // szavak fájlja $db = @file($badwordsfile); // beolvassuk egy tömbbe, ha megnyitható if (!$db) { return; } // ha nem nyitható, akkor csókolom...
for($i=0; $i<count($db); $i++) { // ahány sor van, annyiszor végignézi $bemenet = str_replace($db[$i],"***",$bemenet); // és cserebere ha talált vmit }
itt nem vesszõzni kell, hanem egymás alá minden sorba 1 szót (átláthatóbb) ^^
Van egy rossz hírem: nem minden böngészõ kezeli (ugyanis ez kifejezetten Netscape találmány) rendesen a layer-ek (<layer>) használatát, illetve nincsen benne a hivatalos HTML-referenciában sem. Szóval nemigazán javaslom a használatát.
Sziasztok! 1.Soha nem csináltam weblapot és nem is akarok még :D 2.Csináltam 1 phps-fajlszerkezetet FD scrit-el Amugy aza gondom hogy az FD script (RULZ!!!) a gyökér könyvtárba tesz 1 pontot pedig megvan neki tiltva hogy ilyet mutathasson. Rákattintva pedig a download.php nevü fajlt ajánja fel letöltésre a böngészõ. Azt tudod hogy az elérési helye "./.." de ha letiltom azt hoyg mutassa ".." ot akkor ha belépek 1 kreát mappába nincs lehetöségem visszalépni mert nincs benne a ".." mert ugye megtiltottam a megjelenítést. Ezen töröm a fejem egy ideje és nem hagy nyugodni. Lehet hogy:-a szolgáltato a xar (cjb) -a script a rossz -az lenne a megoldás ha másik listázot használnék nem tom. jajj asszem sok lessz remélem valaki tud segiteni vagy ha nem ,akkor esetleg valami tanácsot, e-bookot ajánlhatna nékem. THX!!! ui:JA és:"Hülye ,azért nem vagyok":D
HY AGAIN! TÁRGYTALAN!
sziasztok!
van egy form, egy input mezõvel és van egy submit gomb hozzá, a form action-je egy php scriptre mutat, a php-nak annyit kellene csinálnia, hogy egy .txt fájlba elmenti a textboxba írt szöveget úgy, hogy minden elküldött szöveget külön sorban kezdjen el mert most simán egymás után rakja õket. hogyan lehet sort emelni (a \n-t próbáltam de lehet, hogy nem jó helyre írtam szóval, ha ez a megoldás akkor hova kell írni??) thx elõre is!
\n kell a végére, vagy úgyis lehet hogy a kódban a végén nyomsz egy entert
$x = $szoveg." ";
de lehet chr()-el is sortördelni, stb.
skacok nekem is fájlkezelésel van gondom! van egy adott fájl pl xxx.txt ebben egymás alatt sorok hogy tudnám megoldani azt hogy ha a html imput mezõjébe beirják az adott sort megnézi hogy van-e olyan a fájlban ha van törli azt a sort ha nincs kiirja printel hogy nem található az adott szó (sor)
Üdv. Kéne egy kis segítség. Ha html-ben szerkesztek weblapot akár Namo-val akár Macromedia-val azt hogy tudom megcsinálni hogy legyen egy legördülö lista ami tartalmazza az általam beírtakat és ha az illetõ rákkatint egy adott dologra akkor az oda ugrik az oldalon ahol az a bizonyos szó vagy a hozzá tartozó kép van.
<?php $bemenet = $_POST["mezo"]; //A mezo-nak elnevezett beviteli mezõ lekérése
$wordsfile = "xxx.txt"; //A szavak listája $db = @file($wordsfile); // beolvassuk egy tömbbe, ha megnyitható if (!$db) { return; } // ha nem nyitható, akkor csókolom....
$megvan=0; for($i=0; $i<count($db); $i++) { // ahány sor van, annyiszor végignézi if ($db[$i] == $ bemenet) { //ha megvan... unset $db[$i]; //...töröljük... $megvan++; //...és jelezzük hogy megtaláltuk } }
if ($megvan==0) { //ha nincs meg... print ("Nem található a(z) ".$bemenet." szó!"); //...jelezzük } else { $handle = fopen($wordsfile, "w"); //Megnyitjuk az állományt felûlírásra for($i=0; $i<count($db); $i++) { // ahány sor van, annyiszor végignézi fwrite ($handle, $db[$i]."\n"); //Kiírjuk } fclose($handle); //Lezárjuk az állományt } ?>
én még esetleg tennék egy continue;-t a $megvan++ után, hogyha megtalálta amit keresett lépjen ki a ciklusból, ne keressen tovább (feltételezve hogy max. 1 találatot adhat. ha több egyforma is lehet, akkor nemkell) :)
kösz ez már olyannyira részletes hogy egy kezdõ is kiigazodik rajta jár a tábla csoki ;)
a böngészõven irta már foglamam sincs de ha kel viszacsálom a php-t és emgnézem ugyanis most mûkódik csak mindig azt irja hogy nem találja pedig ott van :( az a bizonyos sor :(
Idézet a PHP-manual-ból: "Ha meg szeretnél szüntetni egy kulcs/érték párt, használd az unset() függvényt."
A hozzá tartozó forráskód: "unset($arr[5]); // Ez eltávolítja az elemet a tömbbõl" unset($arr); // Ez az egész tömböt törli Forrás
Ja és teszteltem: zárójel nélkûl hibát ír ki (ami teljesen igaz, hisz ez egy függvény!), zárójellel jól mûködik!
Sima parse error-t írt ki. Nota bene (jól jegyezd meg): mindig teszteld a kódot mielõtt közölnéd, lehet, hogy lefelejtettél belõle valamit! (Én is csak utólag tettem meg, ezért bocsi)
98%-ban amit beírok tökéletesen szuperál (ha mégsem, akkoris valami zárójel, vagy sorvégi lezárás elmaradás van), már kinõttem a soronkénti tesztelés korszakból :D
semmi baj amúgy én már annak örülök hogy van aki segít! amúgy valami a keresésnél nem jó hisz hiába van az a bizonyos szó benne a fájlba továbra is kiirja hogy nem találja :(
Azért nem találja, mert a file beolvasásakor, beolvassa a file végén lévõ sorvége/kocsivissza jeleket is. Mivel az nem egyezik a sorvége/kocsivissza jel nélküli, a form-ból beadott szöveggel, nem találja sehol.
Például az xxx.txt tartalma a következõ: alma barack cseresznye dinnye
Mindegyik sor végén (a dinnye után is!) ott van egy új sor (\n), és Windows esetén egy kocsivissza (\r) jel. Ha a beviteli mezõbe beadod a cseresznye szót (így sorvége-jel nélkûl), mivel a cseresznye nem fog megegyezni a cseresznye\r\n vagy cseresznye\n kifejezéssel, a szkript nem talál!
Tehát, mielõtt cserére kerûlne a sor, ki kell törölni ezeket a huncut jeleket: $db[$i]=str_replace("\r","",$db[$i]); $db[$i]=str_replace("\n","",$db[$i]); ezt a két sort a if ($db[$i] == $ bemenet) { //ha megvan... elé rakd.
És még egy kis finomítás: mivel az unset() függvény nálam furcsa módon a keresett kifejezés után is törölt, ezért helyette az alábbi megoldást javaslom: $db[$i]=str_replace($db[$i],"",$db[$i]);
Ez csak törli a tömb adott értékét, ezért a kiírásnál a következõ módosítást javaslom: if ($db[$i] != "") { fwrite ($handle, $db[$i]."\n"); //Kiírjuk } Tehát csak akkor írunk, ha nem üres a tömb eleme.
Így a végleges kód a következõ lesz: <?php $bemenet = $_POST["mezo"]; //A mezo-nak elnevezett beviteli mezõ lekérése
$wordsfile = "xxx.txt"; //A szavak listája $db = @file($wordsfile); //Beolvassuk egy tömbbe, ha megnyitható if (!$db) { return; } //Ha nem nyitható, akkor csókolom
$megvan=0; for($i=0; $i<count($db); $i++) { //Ahány sor van, annyiszor végignézi $db[$i]=str_replace("\r","",$db[$i]); //Kocsivissza jel kiiktatása $db[$i]=str_replace("\n","",$db[$i]); //Soremelés jel kiiktatása if ($db[$i] == $bemenet) { //Ha megvan... $db[$i]=str_replace($db[$i],"",$db[$i]); //...kitöröljük... $megvan++; //...és jelezzük hogy megtaláltuk. } }
if ($megvan==0) { //Ha nincs meg... print ("Nem található a(z) ".$bemenet." szó!"); //...jelezzük } else { $handle = fopen($wordsfile, "w"); //Megnyitjuk az állományt felûlírásra for($i=0; $i<count($db); $i++) { //Ahány sor van, annyiszor végignézi if ($db[$i] != "") { //Ha nem üres a tömb eleme... fwrite ($handle, $db[$i]."\n"); //...kiírjuk } } fclose($handle); //Lezárjuk az állományt } ?>
ezt kiprobáltad? csak mert mire az elõzõben átirogatam a tömböket a saját kis scriptemhez meg átalakítottam egy picit addigra kifolyt a szemem :)
Karrdél! Na most foglalkozzunk a te problémáddal: a te esetedben a varázsszó: az oldalon belüli "könyvjelzõ". Ilyet a hiperlinkek létrehozására alkalmas <a> tag name attribútumával tehetsz meg.
Tegyük fel, hogy van egy dokumentumod, amiben könyvjelzõket akarsz elhelyezni. Nevezzük content.htm-nek. Lásd az alábbi kódrészletet: <!-- content.htm --> <h2><a name="bev">Bevezetõ</a></h2> <p>Ide kerûl a bevezetõ tartalma...</p> <h2><a name="elso">1. fejezet/a></h2> <p>Ide kerûl az elsõ fejezet...</p> <h2><a name="masodik">2. fejezet</a></h2> <p>Ide kerûl a második fejezet...</p> Mint láthatod, a name attribútum határozza meg a "könyvjelzõkett" (bev, elso, masodik) a dokumentumon belûl.
Tegyük fel, hogy a tartalomjegyzék egy toc.htm elnevezésû állományban van. Ennek a kódrészlete így néz ki: <!-- toc.htm --> <p><a href="content.htm#bev">Ugrás a bevezetõre</a></p> <p><a href="content.htm#elso">Ugrás az 1. fejezetre</a></p> <p><a href="content.htm#masodik">Ugrás a 2. fejezetre</a></p> Mint látható, a kettõskereszt (#) után szerepel a könyvjelzõ neve.
De tegyük fel, hogy ezt az egészet egy oldalon szeretnéd látni. Ebben az esetben a legegyszerûbb megoldás a frameset használata: <frameset rows="*" cols="200,*"> <frame src="toc.htm" name="leftFrame" id="leftFrame" title="leftFrame" /> <frame src="content.htm" name="mainFrame" id="mainFrame" title="mainFrame" /> </frameset> Ez egy külön állományban foglal helyet.
Ha frameset-et használsz, a toc.htm a következõképp módosul: <!-- toc.htm --> <p><a href="content.htm#bev" target="mainFrame">Ugrás a bevezetõre</a></p> <p><a href="content.htm#elso" target="mainFrame">Ugrás az 1. fejezetre</a></p> <p><a href="content.htm#masodik" target="mainFrame">Ugrás a 2. fejezetre</a></p> Az <a> tag target attribútuma gondoskodik arról, hogy a másik frame-ben jelenjen meg a tartalom.
A legutóbbi kódot használtad? Hol hagy üres sort? A legutolsó sornál? Máshol nem hagyhat... Akkor módosítsd ezt a sort: fwrite ($handle, $db[$i]."\n"); //...kiírjuk
Erre if ($i == (count($db)-1)) { fwrite ($handle, $db[$i]); } else { fwrite ($handle, $db[$i]."\n"); //...kiírjuk } Ha az utolsó sort írja, akkor nem fog sorvége jelet kirakni.