- iPad topik
- Canon MILC: EOS R és M topik
- Milyen billentyűzetet vegyek?
- Megérkezett a Razer DeathAdder V3 Hyperspeed verziója
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- AMD Navi Radeon™ RX 6xxx sorozat
- Kormányok / autós szimulátorok topicja
- 3D nyomtatás
- TCL LCD és LED TV-k
Hirdetés
-
Megérkezett a Razer DeathAdder V3 Hyperspeed verziója
ph A Pro és a vezetékes változat után tehát itt a Razer saját rádiós megoldását használó változat, mely 8 grammal könnyebb is az előbbinél.
-
Ellopták a Tesla akkumulátor-titkait
it Beperelte egy korábbi beszállítóját a Tesla, és azzal vádolja, hogy üzleti titkokat lopott a Tesla akkumulátorgyártási technológiájával kapcsolatban.
-
Több Redmi, mint kolbász
ma Újabb premier készül, a Redmi 13 5G-n a sor.
Új hozzászólás Aktív témák
-
Tele von Zsinór
őstag
válasz
Speeedfire #4757 üzenetére
Nézd meg mégegyszer: biztosan utf8 kódolási a fileod? Biztosan utf8-ként próbálja megjeleníteni a böngésző?
-
Tele von Zsinór
őstag
válasz
Speeedfire #4780 üzenetére
Azt mondja a php, hogy a $_SESSION tömbben nincs captcha indexű elem. Nézd át mégegyszer a kódot, ami berakná, illetve nézd meg var_dump()-al.
-
Tele von Zsinór
őstag
válasz
Speeedfire #4778 üzenetére
Ez mi akart lenni, em vagy px?
-
Tele von Zsinór
őstag
válasz
Speeedfire #4784 üzenetére
Csináld úgy, hogy van egy fileod, ami elintézi a kezdeti dolgokat: db kapcsolat, session_start, ilyenek, és require_once-al húzod be. Ekkor biztosan csak egyszer fogsz például sessiont indítani.
"Minden oldal külön fileban" - ez így van nálam is, mondjuk még jobban is szét vannak darabolva. Azonban a wwwrootban egyetlen file van, az úgynevezett front controller, ez dobja szét a megfelelő, kívülről nem látható phpnak a kérést. Innentől nem kell bohóckodni olyanokkal sem, mint ellenőrizni, a db osztályod közvetlen van-e hívva, vagy include()-al.
[ Szerkesztve ]
-
Tele von Zsinór
őstag
válasz
Speeedfire #4790 üzenetére
A require_once() annyit csinál, hogy a fordítás elején berakja az includeolt filet a hívás helyére, és error szintű hibát generál, ha nem tudja olvasni. Mindemellett megnézi, az a file volt-e már require/include hívás áldozata, és ha igen, akkor kihagyja.
A require és az include között a fontos különbség, hogy a require a fordítás elején húzza be (ezért az error), az include csak akkor, amikor odaér a futtatás (ezért csak warningot dob), utóbbit ezért szokták feltételekbe is rakni, mert csak akkor hajtódik végre, ha muszáj.Ha jól értem, egy egyszerű szűrés kell neked. Nem feltétlen kell új file, ha van olyan oldalad, ahol ezeket már listázod valahogy, abba kell belenyúlnod a következőképp: ahol az adatbázisnak átadott queryt állítod össze, tegyél be egy ellenőrzés: ha a $_GET tömbben van mondjuk egy filter kulcsú elem, akkor annak az értékét berakod a query where záradékába. Mivel a listázásig már csak a szűrt elemek jutnak el, ennyivel megúszod a dolgot.
-
Tele von Zsinór
őstag
válasz
Speeedfire #4791 üzenetére
Előbbi file 17-es sorában átadod a kategória id-jét, eddig jó. Most a másodikba kell belerakni, hogy szűrjön is rá:
$sql = "SELECT `kategoria`.`kat`, `tartalom`.`szoveg`, `tartalom`.`datum`, `tartalom`.`url`, `tartalom`.`webcim`, `users`.`nick`
FROM kategoria, tartalom, users
WHERE ((kategoria.sorszam = tartalom.katid) AND (users.id = tartalom.fid) and (tartalom.elfogadva='1') AND kategoria.sorszam='". mysql_real_escape_string($_GET['sorszam'])."') ";
if (isset($_GET["get"])) {
$sql .= "AND tartalom.katid = \"" . mysql_real_escape_string($_GET["get"]) . "\"";
}
$sql .= " ORDER BY `tartalom`.`sorszam` ASC"; -
Tele von Zsinór
őstag
válasz
Speeedfire #4794 üzenetére
Ha megnézed a rákövetkező hozzászólásom, látod, hogy plusz három sor az egész. Ez nem bonyolítás, és megfelel a DRY (don't repeat yourself) paradigmának is.
-
Tele von Zsinór
őstag
válasz
tgabi333 #4799 üzenetére
Van fordítás: a php először egy bytecodet generál a scriptedből, és azt futtatja utána. Az, hogy nem kézzel kell fordítanod, hanem automatikusan történik a háttérben, más kérdés. Egyes cachelési megoldások, mint az APC, részben arra alapulnak, hogy a bytecodet cachelik, így a fordítást megúszod a következő kéréskor. Sok időt lehet vele nyerni, nem véletlen ajánlja a framewokök többsége, hogy tedd fel és engedélyezd éles szerveren.
Most megnéztem biztosra: php.net szerint valóban nincs különbség abból a szempontból, hogy mikor húzza be az includeolt/requireolt filet, de az include csak E_WARNING-ot, míg a require E_ERROR-t dob hiba esetén, így az utóbbinál ott meg is akad a futtatás.
Utasítás alatt azt érted, hogy nem függvényhívás, hanem nyelvi elem? -
Tele von Zsinór
őstag
válasz
Speeedfire #4804 üzenetére
Próbáld meg úgy, hogy beteszel egy hidden mezőt, és abban továbbítod az id-t. Ha úgyis get-ben megy a formod, jó lesz így is.
-
Tele von Zsinór
őstag
válasz
Speeedfire #4807 üzenetére
strlen(), substr()
-
Tele von Zsinór
őstag
válasz
Speeedfire #4850 üzenetére
Nem tudom, mit csinál az intro() függvényed, de így látatlanban a substr()-t hívja. Az oldalad utf8, egy multibyte kódolás, ezért az mb_substr()-t használd, hogy jó legyen.
A hiba abból jön, hogy az utf8 esetenként több byteot használ egy karakter reprezentálására, míg a sima substr() úgy tekinti, hogy egy byte egy karakter. Ezért a tied néha csonkolja.
-
Tele von Zsinór
őstag
válasz
Speeedfire #4859 üzenetére
Használd az "u" módosítót, ez mondja meg a PCRE-nek, hogy unicode karaktereket használsz.
-
Tele von Zsinór
őstag
válasz
Speeedfire #4909 üzenetére
Mire kell?
-
Tele von Zsinór
őstag
válasz
Speeedfire #4914 üzenetére
Amire te gondolsz amiatt van, mert a böngészők mappá(k)nak nézik a te keresőbarát url-ed. Megoldás lehet a statikus dolgoknál az abszolút url, a /-el kezdődő url, vagy a <base> tag.
-
Tele von Zsinór
őstag
válasz
Speeedfire #4918 üzenetére
És ha /-el kezdődő url-eket használsz a script meg link tagokban? Így a hosttól kezdi nézni a böngésző.
-
Tele von Zsinór
őstag
válasz
Speeedfire #4922 üzenetére
Mi az, hogy nem tudja értelmezni?
Nézd meg az egyik, az aláírásomban szereplő oldalt: tibia.hu. Itt is vannak aldomainek (az oldal nyelvének meghatározására), és /-el kezdődően vannak behúzva a css-ek és a képek. Remekül működik. -
Tele von Zsinór
őstag
válasz
Speeedfire #4938 üzenetére
Hogy tisztázzuk: hol a gond, megjelenítésnél vagy tárolásnál?
Optimalizálási tipp: tároláskor küldd rá a geshit, ne megjelenítéskor. -
Tele von Zsinór
őstag
válasz
Speeedfire #4941 üzenetére
localhost alatt nem jelzi az escapelést, míg szerveren rendesen látszódik.
Úgy hangzik, mintha a magic_quotes_gpc beállításod nem ugyanaz lenne a két gépen.
-
Tele von Zsinór
őstag
válasz
Speeedfire #4962 üzenetére
Azonnal ISE500, vagy pár másodperc várakozás után? Utóbbi esetben kifogysz a futási időből, a hibaüzenetet meg elrejti a php (display_errors = off). Pechedre az ezt megnövelő függvény a legtöbb ingyenes tárhelyen tiltva van, de azért egy próbát megér: set_time_limit().
-
Tele von Zsinór
őstag
válasz
Speeedfire #4964 üzenetére
Hibaüzenetek a fejlesztői gépen ugye be vannak kapcsolva? A php.ini display_errors beállítására gondolok. Dev gépen legyen be, prod gépen pedig kikapcsolva.
-
Tele von Zsinór
őstag
válasz
vakondka #5002 üzenetére
Igen, de az az igazi, ha csinálsz egy tömböt a user által elfogadott nyelvekkel, prioritási sorrendben, majd megnézed, melyik a legkorábbi eleme, ami a másik tömbben is benne van, ami meg az oldalad által támogatott nyelveket tárolja. Ha egyik sincs, akkor meg az oldalad nyelveinek első eleme a default.
-
Tele von Zsinór
őstag
válasz
Speeedfire #5006 üzenetére
Filenév generálásakor str_pad.
-
Tele von Zsinór
őstag
válasz
Speeedfire #5009 üzenetére
static public function resizeAndMove($from_path, $to_path, $max_width, $max_height)
{
@ini_set("memory_limit", "128M");
$image_info = getImageSize($from_path);
switch ($image_info['mime']) {
case 'image/jpeg': $o_im = imageCreateFromJPEG($from_path); break;
//add more if needed
default:
return false;
}
$o_wd = imagesx($o_im) ;
$o_ht = imagesy($o_im) ;
if ($o_ht >= $o_wd) {
if ($o_ht > $max_height) {
$lamda = $max_height / $o_ht;
} else {
$lamda = 1;
}
} else {
if ($o_wd > $max_width) {
$lamda = $max_width / $o_wd;
} else {
$lamda = 1;
}
}
$t_ht = round($lamda * $o_ht);
$t_wd = round($lamda * $o_wd) ;
$t_im = imageCreateTrueColor($t_wd,$t_ht);
imageCopyResampled($t_im, $o_im, 0, 0, 0, 0, $t_wd, $t_ht, $o_wd, $o_ht);
imagePNG($t_im, $to_path );
imageDestroy($o_im);
imageDestroy($t_im);
} -
Tele von Zsinór
őstag
válasz
Speeedfire #5012 üzenetére
.=, nem pedig . =, és az else ágadat gondold át megint.
[ Szerkesztve ]
-
Tele von Zsinór
őstag
válasz
Speeedfire #5014 üzenetére
Késő este ez van.
Rendben, csak az üres blokk, meg a közvetlen alatta levő sor behúzása miatt úgy nézett ki, hogy elnézted.
-
Tele von Zsinór
őstag
válasz
Speeedfire #5023 üzenetére
<ol start="42">
-
Tele von Zsinór
őstag
A . a stringösszefűzés-operátor, nem is működik más típusra.
A mysql_query hívás nem tömböt ad vissza, hanem egy erőforrás-mutatót, amivel szépen a mysql_fetch_* függvények segítségével tudod megkapni az eredményeket.
Először le kell kérned az összes kapott rekordot akár egy tömbbe (végülis minek a kettő), aztán a shuffle hívás összekeveri őket. Innentől meg egy foreach-csel egyszerű kiírni.
-
Tele von Zsinór
őstag
Nagyban meg tudják egyszerűsíteni az életet (mondjuk speciális esetekben nehezíteni is
), én különösen azt szeretem, ahogy az objektumok közötti kapcsolatokat kezelik.
Propelt használok most már három éve, eleinte önmagában, utóbbi időben pedig mint a symfony modell rétege. Doctrine-nal csak kísérletezgettem, de a propel jobban tetszett.
Mindkettő elég jól dokumentált, és a propelt is újra aktívan fejlesztik. Javaslom, nézd meg mindkettőt, és használd a szimpatikusabbat. -
Tele von Zsinór
őstag
válasz
Speeedfire #5041 üzenetére
Mert nem ellenőrzöd, hogy van-e olyan kulcs (mondjuk isset-tel), hanem rögtön az értékét kéred le és értékeled ki a feltételben. Vagy tedd isset()-be, vagy használj foreach-t a kézzel növelgetés helyett.
-
Tele von Zsinór
őstag
válasz
Speeedfire #5043 üzenetére
De nem azt ellenőrzöd, amit kéne.
while ($_FILES['media']['name'][$i]) {
Azt mondtad, ide írja a hibát, mégpedig azért, mert nem létezik $i indexű elem az adott tömbben. Ennek a létezését nem ellenőrzöd.
Tényleg foreach-csel járnál a legjobban, az garantálja, hogy minden kulcson végigmenj. Ha mindenképp while-ozni akarsz, akkor meg while(list($k, $v) = each($_FILES["media"]["name"])), persze reset($_FILES["media"]["name"] után. -
Tele von Zsinór
őstag
válasz
bena_butus #5053 üzenetére
<?php
$start = DateTime::createFromFormat("Y-m-d", "2007-07-06");
$end = new DateTime();
$diff = $start->diff($end);
echo $diff->format("%y ev %m honap %d nap\n");kimenete:
maerlyn@biliskner:~/tmp$ php tmp.php
3 ev 0 honap 22 napmegjegyzés: a DateTime::diff függvény csak php 5.3-tól kezdve létezik.
-
Tele von Zsinór
őstag
válasz
bena_butus #5055 üzenetére
Létrehozok két DateTime objektumot, az elsőt a srác születési dátumára (ha jól értettem a te kódodból), a másikat paraméter nélkül, így az aktuális időt veszi fel értékül.
A harmadik sorban veszem a kettő különbségét, eredményül kapok egy DateInterval objektumot, aminek az értékét végül formázva kiírom. -
Tele von Zsinór
őstag
válasz
Speeedfire #5080 üzenetére
A célszerver adatbázismotorjának beállításától függ. Ha engedik a külső kapcsolódást, akkor meg is vagy: localhost helyett a szerver címét írod be.
Ingyenes tárhelyekről nincs tapasztalatom, de egy megnézést megér. -
Tele von Zsinór
őstag
válasz
Ősember #5077 üzenetére
Nyilván nem, mert a substr legfeljebb kettő karaktert fog visszaadni.
A +22-vel trükközést sem értem. Ha azért csinálod, mert a string legelején megtalálva mégis hamis lenne az ifed, akkor használd az ekvivalencia operátort (===), ha nem találja, a visszatérési értéke ekvivalens false-al, amúgy a találat helye.
Harmadrészt az $isAvailable változót hiába állítod, mert nem lesz elérhető a függvénytörzsön kívülről. -
Tele von Zsinór
őstag
válasz
Ősember #5094 üzenetére
A dokumentáció szerint:
If length is given and is positive, the string returned will contain at most length characters beginning from start (depending on the length of string).
[...]
If length is given and is 0, FALSE or NULL an empty string will be returned.tehát nem számol nulladik karaktert, ha hármat akarsz visszakapni, akkor hármat írj oda.
A $contentben van valami? A $pos1 milyen értéket kap? Ha kiírod a trim(substr($content,$pos1,3)) értéket visszaadás helyett, mit kapsz?
-
Tele von Zsinór
őstag
válasz
Speeedfire #5097 üzenetére
Nem csak a tinymce, sőt: az asztali szövegszerkesztők (word, OOo writer) is így viselkednek: enter = új bekezdés, shift+enter = sortörés.
-
Tele von Zsinór
őstag
válasz
Ősember #5103 üzenetére
Milyen kódolású a $content? Ha utf8, akkor használd az mb_substr() függvényt a sima substr() helyett.
-
Tele von Zsinór
őstag
Egy jó szolgáltató rugalmas kéne hogy legyen e tekintetben, de az Options direktívát jó eséllyel tudod állítani .htaccess-ből is. Ahol én vagyok, eleve tiltva van a listázás.
Mappa jog módosítás annyit segíthet, hogy ha leveszed az execute jogot a mappáról, akkor nem lehet listázni, például ls-el, de közvetlen elvileg elérhetők a fileok. Egy próbát megér a dolog.
Nagyon összetett dolog a .htaccess, kiterjedt lehetőségekkel. Egy-egy részre jó eséllyel találsz használható leírást gugliban (ami neked kell, az például a mod_rewrite, de a témába beletartozik a reguláris kifejezések használata is), de egyben biztosan nem.
-
Tele von Zsinór
őstag
A home.php elejére (session_start után persze) rakott var_dump($_SESSION) mit mond?
Tudsz: header("Location: home.php"); die();
die azért kell, mert különben folytatná a futást a login.php, feleslegesen. Éles kódban ajánlott valami html kimenet, elmagyarázandó, hogy tovább lettél irányítva, meg egy link.
Új hozzászólás Aktív témák
- Lenovo ThinkStation P720 Workstation: 2db Xeon proci + 128GB RAM + Quadro RTX4000 8GB + 512GB SSD
- Lenovo ThinkStation P720 Workstation: 2db Xeon proci + 64GB RAM + Quadro P4000 8GB + 512GB SSD + Win
- HP Pavilion x360 14-ek Convertible - ÚJ - 14" TOUCH notebook - i5-1235U, 16GB, 512SSD, Win11
- DJI AVATA Pro-View Combo drón (DJI goggles 2) - 2 akku, Motion Controller 2 - 1 év garancia
- LETISZTULT PC ÁTLAG FELADATOKRA - AMD R5 5600G - 16GB DDR4 RAM - 500GB NVME SSD