- Samsung Galaxy A34 - plus size modell
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Samsung Galaxy Watch7 - kötelező kör
- Extra erő egy gombnyomásra - Engwe EP-2 Boost
- Hónap végén érkezik a Xiaomi Band 10, ára is van
- Mobilinternet EU-n kívül, eSIM adatcsomagok használata
- Érintésnélküli fizetési megoldások - PayPass via NFC
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Vivo X200 Pro - a kétszázát!
- Fotók, videók mobillal
Új hozzászólás Aktív témák
-
supercow
őstag
Igen, cészerű böngészőben (input field paraméterek, js) és mivel azt ki lehet játszani, a szerver oldalon is feldolgozás előtt még egyszer php-ban is. Nemrég volt róla szó itt a topikban, kicsit olvass vissza.
Attól függően hogy mennyire vagy paranoid, lehet pl CSRF tokennel kiegészíteni az űrlapokat. -
fordfairlane
veterán
Meg voltam róla győződve, hogy ezért akasztás jár komolyabb fejlesztői körökben, de akkor mégsem.
Nem jár akasztás. Azokon a platformokon, ahol nem létezik sem push message, sem permanens kétirányú adatkapcsolat (socket jó darabig nem volt, és a régi böngészőkben ma sincs), csakis a polling marad. A kliens kénytelen rendszeresen a szerverhez fordulni, és lekérdezni, van-e változás, mivel a szerver nem tudja értesíteni erről.
-
supercow
őstag
egyébként amit csináltál nem "gáz megoldás" hanem long polling.
-
supercow
őstag
Tesztelésre én is a saját routeremet állítottam fel, USA-ból csatlakoztak hozzá tegnap, a szerverem még mindig fut, majdnem 24 órája. Port forward routerről saját gépre, 25/2 Invitel DSL kapcsolat és nincs vele gond, instant mennek az adatok. TP-Link 1043ND a router.
Websocketen kívül nem tudom van-e olyan technika ami nem terheli a hálózatot/szervert az állandó kapcsolódással. Ez a baj az X másodkercenként történő lekérésekkel, ahogy mondod favágó de máshogy nem megy. -
supercow
őstag
-
Tele von Zsinór
őstag
Cucka kollega válaszát ennyivel egészíteném ki: a saját gépedre érdemes felrakni apache-php-mysql triót[1] és ott fejleszteni, gyorsabb és egyszerűbb is, egyrészt amiatt, hogy nem másik gépre kell feltölteni mindig, hanem csak mentés-alttab-f5; másrészt jóval beszédesebbre tudod állítani a hibaüzeneteket, a felmerült headeres problémára is kaptál volna ilyet.
"Js már megteszi" - *soha* ne bízz semmiben, amit a felhasználótól kapsz, a bizalom egyik kihasználása az említett SQL injection, de létezik pélául html injection, vagy xss is.
A register_globals régen alapértelmezetten be volt kapcsolva, sokan építettek rá, de elég nagy biztonsági hibákat generált, így most az alap a kikapcsolt, és tudtommal php6-ban már nem is lesz ilyen.[1] kezdetnek javaslok valami egybecsomagot, mint az appserv, wamp, easyphp vagy az xampp. Én a legutóbbit használom.
-
fordfairlane
veterán
(#2506) fordfairlane: Köszi, de még nem sikerült működésre bírnom.
Van egy olyan függvény, hogy headers_sent(), ami jelzi, ha már ki lett küldve a fejléc, és a további header() függvények, mint az átirányításos példád, már nem fognak működni.
if(headers_sent()) echo "Redirecthez tul keso, vilageges";
-
cucka
addikt
Localhosthoz hozzá lehet férni megosztott webhosting esetén?? Sztem nem.
Kb, mintha az extra.hu-n dolgoznék, csak fizetős, és reklámmentes.
A localhost az a saját géped, tehát ennek a mondatodnak nincs értelme, természetesen a saját gépedhez hozzáférhetsz.Miért, és mire jó ez az escape cucc? Erről van szó?
Ez arra jó, hogy a fölös karaktereket eltávolítsa? Ezt a js már megteszi.
SQL injection. Olvass utána, igencsak fontos tudni, hogy működik és hogy lehet védekezni ellene.A bekapcsolt register_globals azt jelenti, hogy műxik a változók globálissá tétele?
Kipróbáltam, műxik. Miért ne építsek rá? Nem megbízható, vagy lehet, hogy kikapcsolják?
A register_globals bekapcsolás után azt csinálja, hogy a $_POST és $_GET tömbökben kapott paramétereket globlális változóként is el lehet érni. Tehát a $_GET['param'] értékét a $param nevű globális változóba pakolja.
A global kulcsszónak (amit amúgy totál rosszul használsz) semmi köze ehhez. -
HolyDay
tag
az ellenőrzés szerkezete jónak tűnik. egy lehetséges hibaforrás az sql lekérdezésben lehet. futáskor iratsd ki a query stringedet, majd futtatsd le az sql szerveren (phpmyadmin, ha rendelkezésre áll). az a gyanúm, hogy olyan lekérdezést futtatsz, ami mindig 0 sorral tér vissza.
látom időközben megoldottad. -
HolyDay
tag
ellenőrzés: illeszd be kérlek azt a kódod, mivel ellenőrzöd!
egy példa az ellenőrzésre:
if(isset($_POST['reg_button'])){
if(user_is_not_registered($_POST)){ // ez a függvény ellenőrzi, h a user regisztrált-e már korábban
register_user($_POST); // ez a függvény regisztrálja a usert
}
else{
$page = "http://www.example.com";
jump_to_page($page);
}
}ha már van kimeneted, akkor érdemes javascripttel eldobni a felhasználót a kívánt lapra. Erre egy példa a jump_to_page() függvény:
function jump_to_page($page){
echo "<script type=\"text/javascript\">";
echo "location.href='".$page."'; ";
echo "</script>";
}ezek a kódok csak példa jellegűek, de használhatóak. Nyilván vannak elegánsabb és a feladatot szebben megoldó kódok is.
-
Tele von Zsinór
őstag
Kimenet: amit elküldesz a usernek, kb. amit kiprintelsz/echozol
Alkalmazáslogika: például míg összeszedsz az adatbázisból egy blogbejegyzést és a kommentjeit, aztán letárolod változókban.
Szétválasztás: a kódod úgy csoportosítod, hogy semmi ne menjen a kimenetre, amíg az alkalmazáslogika nem végzett, utána jön csak az output összeállítása a változókba letárolt dolgok alapján.
Olvasnivaló: az MVC tervezési minta, bár kezdőként nem tudom, ez nem túl sok-e: [link] -
Tele von Zsinór
őstag
Localhoston sem tudod állítani?
Más: querybe escapelés nélkül ne rakj felhasználótól kapott értéket, valamint ne építs a bekapcsolt register_globals-ra. (select * from fotabla... sor, a $felhnev nem kap értéket, gondolom az $_POST["felhnev"] akart lenni).
Még pár megjegyzés a kódhoz:$sorok = mysql_num_rows($eredmeny);
if ($sorok > 0)helyett
if (mysql_num_rows($eredmeny)) {...
tömörebb, jobban olvasható, valamint: a $mindenoke legyen sima igaz/hamis, az elején állítsd hamisra, a levél küldésekor igazra, és a végén a feltétel így ez lesz:
if (!$mindenok)
-
HolyDay
tag
ha jól értem, akkor ez egy regisztráció.
én a következőt tenném az ilyen F5-ös szívások elkerülése végett:
még mielőtt beszúrnék egy új sort az adatbázisba, ellenőrizném, hogy a felhasználóhoz tartozó egyedi azonosító (pl a username stb) létezik-e már az adatbázisban. Ha létezett már, akkor eldobatnám a kezdőlapra. -
cucka
addikt
Kapcsold be a hibajelzést: error_reporting néven keresd meg a php.ini-ben és állítsd E_ALL-ra. Utána olvass vissza pár odlalt, kb. 1-2 hete volt erről szó, hogy a http header-öket módosító műveletek előtt (pl. ilyen a header() függvény) nem szabad kiírni semmit a standard kimenetre.
mod: még valami. mikor kell exit utasítást használni?
Alapvetően nem kell sehol exit-et használni. Amúgy pont ugyanazt csinálja, mint a die(), két néven fut ugyanaz a nyelvi elem. -
Tele von Zsinór
őstag
Nem látom a kódot, ezért csak tipp: kimenetet generálsz, és utána akarsz http fejlécet írni, amire figyelmeztet is a php (ha olyan az error_reporting), hogy hiba és nem lehet.
Gyors, tüneti megoldás az output buffering (ob_start és társai) használata, de a szép (és karbantartható) megoldás az alkalmazáslogika és a kimenet szétválasztása.
Ha nem hiányzik az exit, akkor ne is használdmég egy megjegyzés: az ilyen átirányítás után még lefut a scripted, nem szakad meg azonnal. Továbbá gyakran le van tiltva az ilyen átirányítások automatikus követése, illik a kimenetbe legalább annyit rakni, hogy "átirányítunk ide: link".
-
cucka
addikt
a geolocation mondjuk 95%-os pontosságú (most mondtam hasból egy számot). statisztikánál érdemes és hasznos figyelni, de kereskedelmi weboldal megjelenítését erre építeni nem lehet.
mellesleg van rengeteg fullextrás ingyenes statisztika, nem látom, miért érné meg sajátot írni.
-
paramparya
őstag
Persze, felmásolod a php-t, és van benne cli (command line interface, az futtatja parancssorból a php kódodat.)
PHP4-ben külön cli van, 5-ben már a php.exe végzi ezt...Bár ha php-vel grafikát akarsz varázsolni, meg UI-t csinálni, akkor csináld a szokásos módon:
telepítesz apache-ot, feltelepíted és bekonfigurálod hozzá a php-t, és kész is vagy, esetleg telepítesz egy phpmyadmin-t mellé, és már megvan a kezelőfelületed is -
paramparya
őstag
$fileCount = 0;
$dirHandler = opendir( 'utvonal' );
while ( ( $file = readdir( $dirHandler ) ) !== false )
{
if( $file != '.' and $file != '..' )
{
$fileCount++;
}
}
closedir( $dirHandler );
és a fileCountban ott lesz a fájlok száma
persze ez beleszámolja a könyvtárakat is!
[Szerkesztve]
Új hozzászólás Aktív témák
Hirdetés
- Kerékpárosok, bringások ide!
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Azonnali alaplapos kérdések órája
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Samsung Galaxy A34 - plus size modell
- Gumi és felni topik
- Tőzsde és gazdaság
- Subaru topik
- Windows 7
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- További aktív témák...
- Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1260P 16/512 Iris Xe 2,8K OLED 90Hz
- Új DELL Inspiron 16 Fémházas Multimédiás Laptop 16" -40% Ryzen 7 8840U 8mag 16/1TB FHD+ IPS
- Sony FE 28-70 mm F3.5-5.6 OSS
- PS5 Slim Disc 1TB 2026.10.08 GARANCIA
- Bomba Ár! Dell Latitude 3190 - Intel N4120 I 4GB I 128GB SSD I 11,6" HD I Cam I W11 I Garancia!
- Microsoft Surface Laptop 3 - 15 col - Fekete
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- ÚJ HP EliteBook 840 G8 - 14"FHD IPS - i5-1145G7 - 32GB - 512GB SSD - Win10 - 6 hónap Garancia
- BESZÁMÍTÁS! MSI SUPRIM X RTX 4080 16GB videokártya garanciával hibátlan működéssel
- Dell D6000 univerzális dokkoló USB-C/ USB-A, DisplayLink & Dell WD15 (K17A) USB-C + 130-180W töltő
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged