- Egy szenzor, két zoomkamera: újraírta a Huawei a mobilfotózás történetét
- Bemutatkozott a Poco X7 és X7 Pro
- Xiaomi 11 Lite 5G NE (lisa)
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Google Pixel topik
- Samsung Galaxy A55 - új év, régi stratégia
- Milyen okostelefont vegyek?
- Mobil flották
- Netfone
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
Dave-11 #15317 üzenetére
Fentebb azt írtad, minek KELLENE benne lennie. De továbbra sem osztottad meg, hogy csinálod a feldolgozást. Mondjuk írogathatunk még pár hsz.-t oda-vissza, de jobb lenne, ha inkább egyből ellátnál minket a szükséges infókkal, hogy tudjunk neked érdemben segíteni, ne csak találgassunk.
Mutasd meg, hogy dolgozod fel azt, hogy "van egy sor, és abban vannak egymástól vesszővel majd egy szóközzel elválasztva". Kóddal, konkrétan, ne csak azt mondd el, hogy KELLENE működnie, hanem hogy csinálod most, és akkor több eséllyel jövünk rá, miért nem úgy működik, ahogy szeretnéd.
Amúgy Trisztán korábban javasolta már a trim() használatát is.Ezt csak most látom:
"A fájlt egyébként UTF-8-as kódolásban mentem, de majd rápróbálok a BOM nélkülire még egyszer."
Milyen racionális érvet tudnál felhozni amellett, hogy nem eleve "UTF-8 without BOM" a karakterkódolása a fájlodnak, és ami miatt tartalmaznia kell szerinted a BOM-karaktert? -
trisztan94
őstag
válasz
Dave-11 #15312 üzenetére
Így berakja szóköz nélkül?
$q = $db->prepare("INSERT INTO tabla (nev) VALUES (:nev)");
$q->execute(array(":nev" => trim($aktualis_nev)));Lehet az a baja, hogy nem adtál meg neki hosszt. Sokat szptam korábban egy PostgreSQL adatbázis miatt. Miért nem MySQL-t használsz?
"A varchar alatt a character varying-ot érted?"
-
Tele von Zsinór
őstag
válasz
Dave-11 #14806 üzenetére
Próbálhatod akárhogy ellenőrizni, abban mindig lehet probléma, egy olyan eset, amire nem gondoltál. A teljesen biztos megoldás az, ha te generálod a fileneveket.
Pontosan erre gondoltam. Ha ő kontrollálja az index.php-t, akkor onnantól azt csinál a gépeden, amit akar. Itt nyilván korlátot szab a webszerver/php beállítása, de bármi, amit ezután csinálsz, csak kármentés lehet, ráadásul a gépet is nulláról újra kell telepíteni. Ez a téma viszont túlmutat a topik keretein.
A típusellenőrzés meg szerintem nem evidens olyannak, aki feltöltött file-t nem tud áthelyezni. Ráadásul az egy olyan probléma, amit messzi nem triviális jól megoldani.
-
Tele von Zsinór
őstag
válasz
Dave-11 #14802 üzenetére
Ez így biztonsági hiba. A file neve usertől kapott adat, így megbízhatatlan. Mi van például akkor, ha valaki "../index.php" néven feltölt valamit? Rögtön felülírod a saját kódod és máris nem a tiéd a szerver. (Persze ha tényleg ott az indexed.)
Én úgy szoktam megoldani, hogy insert után a primary key alapján nevezem el a feltöltött filet; az megbízható adat.
-
Sk8erPeter
nagyúr
válasz
Dave-11 #14724 üzenetére
php.ini fájlban legyen engedélyezve a két megfelelő extension:
extension=php_pgsql.dll
extension=php_pdo_pgsql.dllez a két bejegyzés legyen benne!
A MySQL és PostgreSQL szerverek pedig futhatnak egymás mellett nyugodtan, mert alapértelmezetten más porton kommunikálnak (pont a konfliktus elkerülése érdekében). -
Tele von Zsinór
őstag
válasz
Dave-11 #14095 üzenetére
Először fel kell tölteni, utána történnek az ellenőrzések. Amíg nincs nálad a file, értelmetlen volna bármit ellenőrizni, hisz könnyedén meg tudnám csinálni, hogy képet mondok, de phpt küldök.
Ilyennel nincs gond, mind webszerver, mind php oldalon meg lehet adni egy felső korlátot, amin túl nem foglalkozik a feltöltéssel. Ekkor a tmp-be sem kerül, a te scripted sem hívódik meg.
-
Peter Kiss
őstag
válasz
Dave-11 #13880 üzenetére
What is PHP's mysqli Extension?
The mysqli extension, or as it is sometimes known, the MySQL improved extension, was developed to take advantage of new features found in MySQL systems versions 4.1.3 and newer. The mysqli extension is included with PHP versions 5 and later.
The mysqli extension has a number of benefits, the key enhancements over the mysql extension being:
•Object-oriented interface
•Support for Prepared Statements
•Support for Multiple Statements
•Support for Transactions
•Enhanced debugging capabilities
•Embedded server support -
fordfairlane
veterán
válasz
Dave-11 #13159 üzenetére
Egy webáruház rengeteg funkciót integrálhat magába. Alapesetben, ha nincs semmiféle varázslat, akkor is kell egy terméklista, kell egy shopping cart, amibe gyűjti a vásárló a termékeket, és kell egy checkout funkció, ami lezárja a vásárlási folyamatot. Ezt aztán a végtelenségig lehet bonyolítani különféle termék kategorizálási-, csoportosítási funkcióval, a különféle fizetési módokat kiszolgáló payment szolgáltatásokkal egészen odáig, hogy a számfejtéshez szükséges adatokat is megfelelő módon ki lehet nyerni belőle.
-
Sk8erPeter
nagyúr
válasz
Dave-11 #13164 üzenetére
Ne viccelj már... csak gondold végig, mi mindent kell tudnia egy webshopnak. A manapság népszerű webshopokat is évekig fejlesztették, gondolj csak bele: biztonsági rések, plusz szolgáltatások, fizetési lehetőségek, AJAX-osítás, képfeltöltés, rendes kategorizálás, menürendszer (utóbbi kettő fastruktúrában), rendes admin-felület, jogosultságok, és még nagyjából egy órán át sorolhatnám.
Vannak különálló webshopmotorok, és vannak CMS-ekbe (Drupal, WordPress, stb.) beépülő webshopmodulok/pluginek is, igen nagy kódbázissal.
Könnyű végiggondolni, hogy egyedül egyáltalán nem megtérülő vállalkozás fejleszteni saját webshopmotort, de általában csapatban sem.
De egy új webshop kezelésének megtanulása is sok időt igényel, ha nem csak alapfeladatokról van szó. -
lordjancso
senior tag
válasz
Dave-11 #12982 üzenetére
Én ezt a belépéskor vizsgálnám a helyedben.
Azt nem tudom, hogy mi a feltétele a "mana" növekedésnek, mikor "resetelődik" a töltődés (gondolok itt arra, hogy mondjuk a legutóbbi mana használat után 30 percenként nő 1-gyel a manád).
Ha így van, ahogy gondolom, akkor mindig mented, hogy mikor használt a játékos utoljára manát.
Belépéskor összehasonlítod ezt az időpontot a belépés idejével, megnézed, hányszor telt el 30 perc azóta, majd rögtön hozzáadod a mana töltődést.
Ha globálisan akarod csinálni, akkor esetleg írsz egy cron job-ot, amit 30 percenként meghívsz. -
DeltaPower
addikt
válasz
Dave-11 #12982 üzenetére
A kifejezés, amit keresel: cron job.
Megjelenítés: veszel egy divet, ami az életerő csík lesz, mondjuk 200 pixel széles, adsz neki háttérszínt. Ha nem teljes az életerő, akkor 200*(aktuális_életerő / max_életerő) pixel szélesre kell állítanod. Ezt berakod egy 200 széles, 1px borderes divbe, hogy látsszon, hogy hol van a max.
-
Peter Kiss
őstag
válasz
Dave-11 #12793 üzenetére
A require-t érdemesebb, "erősebb" hibát dob. (A hiba az hiba, include esetén nagyobb az esély, hogy figyelmetlenségből elhagyunk valamit.)
Plusz info, hogy a _once verziók sokkal lassabbak, csak akkor használd ezeket, ha tényleg van esély arra, hogy kétszer töltenél be valamit (láttam már class loader-ben is _once-t, facepalm).
-
Lacces
őstag
válasz
Dave-11 #12768 üzenetére
Majd add meg a php kódot is, ami elindítja az sql query-t és tárolja az eredményt is. Mert már lehet ott gond van.
Itt meg adjál meg "becenevet" az oszlopoknak
SELECT p.id, p.title, u.id, u.name
Ilyenre:
SELECT p.id as pid, p.title as ptitle, u.id as uid, u.name as unamePlusz a hibát is bedobhatnád.
-
fordfairlane
veterán
válasz
Dave-11 #12733 üzenetére
Ezzel csak az a baj, hogy undefinde-ot ír ki, és nem tudom hogy miért
Azért ír undefined-et, mert a javascriptet a böngésző értelmezője hatja végre, a javascript változók a kliensgép memóriájában jönnek létre, míg a PHP a kiszolgálóoldalon teszi ugyanezt.
Semmiféle automatizmus nincs a HTTP protokollban erre a célra, ezt a változót valahogy el kell küldeni a szervernek, ugyanúgy, ahogy az űrlap mezőit is. Hidden mezőt célszerű használni, ahogy írták előttem.
-
Dave-11
tag
válasz
Dave-11 #12643 üzenetére
Úh ezer bocsánat, közben pár kérdésre megtaláltam a választ, de ha mégis lenne valami tanácsotok ahhoz amit leírtam, akkor kérlek írjatok
Viszont az még továbbra is fennáll egy dolog: mikor adatot viszek fel az adatbázisba, ott ugyan fura karakterekkel jelenik meg, de mikor egy lekérdezéssel kiíratom őket egy php dokumentumban, ott normálisan jelenik meg. Ez baj kéne hogy legyen? Nektek is így van, vagy nektek normálisan megjeleníti az adatbázisban? -
Sk8erPeter
nagyúr
válasz
Dave-11 #12247 üzenetére
Általában nem szoktam közvetlenül adatbázisban kotorászni, egy működő webalkalmazásnál nem is túl egészséges, csak NAGYON kényszermegoldás, végső esetben, egyébként elvileg tilos. Egyébként ha tudod, hogy mit csinálsz, és jól is csinálod, nem történik tragédia, de inkább írd meg úgy (vagy használd úgy) a webalkalmazásodat, hogy ne kelljen belekotorni közvetlenül az adatbázisba.
A tábla karakterkódolásánál én utf8_hungarian_ci-t szoktam asszem választani. -
Sk8erPeter
nagyúr
válasz
Dave-11 #12245 üzenetére
A leírásodból nem épp az derül ki, hogy nem volt gond a karakterkódolással.
Ha választasz egy karakterkódolást, akkor MINDENHOL azt használd. Tehát mindenhol UTF-8-at használj, a fájljaid is UTF-8-kódolásúak legyenek, az adatbázis-kapcsolat is, header()-rel is küldj ki UTF-8-at, és a meta tagek közt is ezt a karakterkódolást add meg. -
Sk8erPeter
nagyúr
válasz
Dave-11 #12239 üzenetére
"Megpróbáltam a dolgot ismét, és oda jutottam, hogy nem kellenek ezek az átalakítások meg kapcsolódáskor a SET NAMES dolog."
Miből jutottál erre a konklúzióra?
Ha nem vágod a dolgot, akkor szerintem ne kérdőjelezd meg a hasznosságát.
Biztos nem annyira nagy baromság, ha nagy CMS-ek is (mint pl. a Drupal), meg frameworkok is használják. -
CSorBA
őstag
válasz
Dave-11 #11116 üzenetére
Nálam még van egy ilyen az index elején:
header("Content-Type: text/html; charset='UTF-8'");Illetve bevallom őszintén, nem tudom pontosan mire jó, de anno volt valami ilyesmi problémám, azóta benne van a db kezelésemnél az alábbi pár sor és kész:
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARACTER SET 'UTF8'");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
mysql_query("SET character_set_results = 'UTF8'");
mysql_query("SET character_set_server = 'UTF8'");
mysql_query("SET character_set_client = 'UTF8'");Majd egy okosabb megmondja, hogy mi mire jó.
-
CSorBA
őstag
válasz
Dave-11 #9270 üzenetére
A linken elolvashatod miért, de tömören:
Kiválasztod az adatbázisból AHOL a felhasználó="beírt név" és jelszó="beírt jelszó".
Ha mondjuk valaki beírja jelszónak h. valami" OR "a"="a
Akkor kikeresi a felhasználót és jelszót, VAGY pedig az a egyenlő a-val, ami mindig igaz. Tehát mindig teljesül a feltétel.Vagy még komolyabb, beírja h. DROP table, stb stb. És akkor kitöröl minden felhasználót a táblával együtt. Szóval igen nagy felelőtlenség.
Ez a függvény röviden véd az ilyenek ellen, szóval speciális karaktereket, mint például a ' és " kiszedi abból, amire alkalmazod (most konkrétan nagyon sarkítottam). A lényeg, ha ezt alkalmazod egy változóra, akkor utána már szerepelhet az SQL parancsban. Nem kell minden változóra, csak az SQL parancsban lévőkre, és azt is elég csak a parancsban.
Szóval pl.:
$lekeres = mysql_query("SELECT * FROM tagok WHERE name = 'mysql_real_escape_string($username)'")
;Ha már itt tartunk, akkor véleményem szerint nem kell utána 3 ágra bontani (belépés, hibás jelszó, nincs felhasználó) Ilyennél elég kettő, belépés és hibás adatok. Mert ha rájön, hogy legalább a felhasználónevet eltalálta, akkor próbálkozhat a jelszóval. És így legalább a jelszót egyből bele is rakhatod a lekérésbe. De ez lehet csak személyes agymenés.
-
CSorBA
őstag
-
PazsitZ
addikt
válasz
Dave-11 #9244 üzenetére
Ha jól értem az ellenorzes.php-ra áriráníítod a user, nem pedig includolod más fájlba.
Nézd, meg, hogy nincs-e whitespace a <?php nyitó tag előtt.
Ha nincs, gondolom ez az eset áll fenn, akkor én BOM karakterre tippelek. [link](#9249) InfiniteReality:
A kukac használata nagyon egyszerű, de hatalmas szíváshoz vezethet a későbbiekben, amikor majd órákig keresed, valami miért nem működik.Ha egy runtime során kétszer hívsz session_start-ot, akkor szvsz gondold át a kódodat, még párszor.
Ha jól értelmezem a problémád:
ajax, nem ajax, az index.php-tól kérem a tartalmat.
Hogy ajax kérést szolgálok-e ki azt mondjuk akár a kódban is eldönthető, de paraméterből is vezérelheted.
Így az oldalak.php-be nem kell session. -
Sk8erPeter
nagyúr
válasz
Dave-11 #6070 üzenetére
"Csináld így:
echo "<h3>"."Szöveg"."</h3>";"Minek fűzögeted össze ennyiszer? Lehet így is:
echo '<h3>Szöveg</h3>';"szerintem egyes idézőjelek ' ' helyett használj kettősöket " " ha szöveget akarsz kiírni."
Rossz tanács.
A sima aposztróffal való kiíratás gyorsabb lehet, mivel nem kell megvizsgálnia a "fordítónak", hogy van-e behelyettesítendő változó.
Nem mindegy, hogy írod:<?php
$var = 'akármi';
echo 'Itt a változó: $var'; //Kimenet: Itt a változó: $var
echo 'Itt a változó: '.$var; //Kimenet: Itt a változó: akármi
echo "Itt a változó: $var"; //Kimenet: Itt a változó: akármi
?>Itt van egy kis teszt a Weblaborban, a teszteredmények vagy relevánsak vagy nem, a lényeget leírja: ["Karaktersorozatok sebessége" PHP-ben].
-
-
#10382336
törölt tag
válasz
Dave-11 #6070 üzenetére
Le van zárva, de moódosítottam úgy is, amit javasoltál. A teljes kód.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>HTML fájl</title>
</head>
<body>
<h3>Elérhetőségeink</h3>
<?php
echo "<h3>"."Szöveg"."</h3>";
?>
</body>
</html>Így is csak a html-t formázza, aphp-s rész nél elég furcsaságot ír ki. Pontosan ezt:
"."Szöveg".""; ?>
Ez elég érdekes. -
LW
őstag
válasz
Dave-11 #5887 üzenetére
Azzal a könyvvel kezdtem és először nekem sem volt teljesen világos, igaz voltam vagy 14 éves.
Azóta C# révén megismerkedtem az objektumorientált programozzásal és phpban is törekszem rá.
Olyan kérdésem volna hozzátok, hogy ha utf-8 kódolást használok mindenhol és fájlt mentek, akkor hogyan alakítsam át úgy a stringet, hogy a webszerveren a fénykép ne FĂ©nykĂ©p legyen?
Egyelőre itthoni windowsos szerveren próbáltam, ATW terhelyén lehet nincs ilyen gond (csak 3 másik
), még nem próbáltam.
-
j0k3r!
őstag
válasz
Dave-11 #5785 üzenetére
bocs, lejart a szerkesztesi ido.
azert erdekes felepitese lehet annak a konyvnek, hogy a var_dump (vagy barmilyen mas) fuggvenyt mar tudod hasznalni, de meg nem tudsz elagazasokat, ciklusokat irni, sot meg a tomboket se ismer(het)ed.
ajanlanam inkabb ezt a konyvet, szerintem sokkal logikusabb a felepitese.
Új hozzászólás Aktív témák
Hirdetés
- RTX 4080 SUPER,16GB. Ryzen 7 7800X3D, 32 RAM Fury RGB! Garancia!
- Asztali PC , i7 9700K , RX 5700 XT , 32GB DDR4 , 500GB NVME , 1TB HDD
- Dell Inspiron 5406 2-in-1i5-1135G7 16GB DDR4 3200 512GB NVME 14" FHD Érintőkijelző W11Pro
- Eladó MacBook Pro 14" M1 Pro (2021) 16/512 99% akku Makulátlan állapotban!
- Újszeru GIGABYTE G5 - 15.6" FullHD 144Hz - i7-13620H - 48GB - 1TB - RTX 4050 - Win11 - 1,5 év gari
- BESZÁMÍTÁS! Gigabyte B450 R7 5700X 32GB DDR4 512GB SSD RX 6700XT 12GB Rampage SHIVA be quiet! 650W
- Dell D6000 univerzális dokkoló USB-C/ USB-A, DisplayLink & Dell WD15 (K17A) USB-C + 130-180W töltő
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- Hp USB-C/Thunderbolt 3 dokkolók: USB-C Universal, G2, G4, G5, Hp Elite/Zbook- Thunderbolt 4 G4
- Azonnali készpénzes félkonfig / félgép felvásárlás személyesen / csomagküldéssel korrekt áron
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest