- antikomcsi: Való Világ: A piszkos 12 - VV12 - Való Világ 12
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- gban: Ingyen kellene, de tegnapra
- Szevam: Érzelmi magabiztosság/biztonság - miért megyünk sokan külföldre valójában?
Hirdetés
-
A virágcsokor mellé hardvert is ajándékozhatunk anyák napján
ph A héten desktop PC-k, monitorok, gamer kiegészítők és házak vannak a kirakatban.
-
A franciáknak elege van abból, hogy minden gyerek mobilozik
it Vissza akarják szorítani a gyerekek és tinédzserek közösségi média- és okostelefon-használatát.
-
Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
ma Részletes anyag került fel az internetre a Sony idei középkategóriás telefonjáról, három helyett két hátlapi kamera várható.
Új hozzászólás Aktív témák
-
cucka
addikt
A struktúra szerintem alapvetően jó így.
Egy apró megjegyzés: private adattagok/függvények helyett a legtöbb esetben érdemesebb protected-et használni. Kívülről nézve nincs különbség, származtatásnál viszont jellemző, hogy szeretnéd használni az ős osztály védett metódusait/adattagjait.
Mondjuk ez a session kezelés osztály pont olyan, ami nem hasonlít a legtöbb esetre. Ezt várhatóan nem fogod származtatni, így teljesen jó a private is. -
cucka
addikt
válasz Sk8erPeter #6899 üzenetére
Szerintem jól írtam
Az absztrakt osztály lényege, hogy ez egy osztály, aminek néhány függvénye csak deklarálva van, de nincsenek definiálva (abstract függvények)Egyébként jókat írsz. Egy kis kiegészítés:
Az abstract class és az interface között az alapető különbség nem az, hogy az egyikben lehetnek definiált függvények, a másikban pedig nem, hanem hogy az interface az egyetlen eszköz php-ban, amin működik a többszörös öröklődés. -
Sk8erPeter
nagyúr
Uhh, bocs, a "néhány" szó nekem elkerülte a figyelmem, vagy hirtelen másképp értelmeztem, de akkor így rendben van.
De legalább így jól ki van fejtve, hátha másnak is hasznos lesz."Az abstract class és az interface között az alapető különbség nem az, hogy az egyikben lehetnek definiált függvények, a másikban pedig nem, hanem hogy az interface az egyetlen eszköz php-ban, amin működik a többszörös öröklődés."
Most ebbe is hadd kössek bele.
Az is alapvető különbség, amit én írtam, mivel az interfész tulajdonképpen csak egy "mintát" ír elő, amit meg kell valósítani. Az absztrakt osztály sokszor ennél konkrétabb szerkezetet határoz meg. Ezenkívül igen, alapvetően egyszeres öröklődés van, tehát egy osztálynak egy őse lehet, DE bármennyi interfészt megvalósíthat (vesszővel elválasztva az egyes interfészek neveit az implements kulcsszó után).Sk8erPeter
-
cucka
addikt
válasz Sk8erPeter #6903 üzenetére
Az is alapvető különbség, amit én írtam, mivel az interfész tulajdonképpen csak egy "mintát" ír elő, amit meg kell valósítani. Az absztrakt osztály sokszor ennél konkrétabb szerkezetet határoz meg.
Az interface lényeges tulajdonsága az, hogy támogatja a többszörös öröklődést, ez az oka annak, hogy berakták a nyelvbe. Ugye lehet írni kizárólag absztrakt függvényeket tartalmazó osztályt, tehát csak ezért nem lett volna értelme az interface-ek bevezetésének. -
Sk8erPeter
nagyúr
válasz Forza_JUVE #6889 üzenetére
Hali!
Szerintem továbbra is maradj a reCAPTCHA-nál.
A korábbi kérdésedre azért nem kaptál itt választ, mert egyben bepakoltál egy tökéletesen formázatlan kódot, így ember legyen a talpán, akinek van kedve ezt végigböngészni (vagy türelme kimásolni, majd berakni NetBeans-projektbe, és ott rámenni az autoformázásra, majd elkezdeni a kutakodást).
Eleve nem is a tutorial szerint használtad a PHP-kódot: [Using reCAPTCHA with PHP].
Itt írja az igen egyszerű példakódot, csupán ezt kell bemásolnod arra az oldalra, ahol a captchát kiíratod, példa:
<html>
<head><title>reCAPTCHA</title></head>
<body> <!-- the body tag is required or the CAPTCHA may not show on some browsers -->
<!-- your HTML content --><form method="post" action="verify.php">
<?php
require_once('recaptchalib.php');
$publickey = "your_public_key"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
<input type="submit" />
</form><!-- more of your HTML content -->
</body>
</html>A kiemelt rész a lényeg.
Validáláskor pedig ezt csinálod:
<?php
require_once('recaptchalib.php');
$privatekey = "your_private_key";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
"(reCAPTCHA said: " . $resp->error . ")");
} else {
// Your code here to handle a successful verification
}
?>Halál egyszerű.
Én ezt javaslom captchák közül.=======
(#6893) LW:
ha már pastebin-re másolod a kódokat, akkor válaszd is ki a PHP-szintaktikát, hogy megfelelően kiemelje, épp az a lényeg, hogy úgy lesz gyorsan átlátható!Sk8erPeter
-
Sk8erPeter
nagyúr
És én ennek hol mondtam ellent?
Ezt írtam, idézem még egyszer: "Ezenkívül igen, alapvetően egyszeres öröklődés van, tehát egy osztálynak egy őse lehet, DE bármennyi interfészt megvalósíthat"Az továbbra is alapvető különbség marad, hogy míg az absztrakt osztályban definiálhatsz függvényeket, addig az interfészekben nem, ott csak kötelezően előírod, hogy a leszármazottak mit valósítsanak meg...
És igen, tulajdonképpen ahogy írod is, a csupa absztrakt függvényt tartalmazó osztály egyenértékű lehet az interfésszel, de nyilván C#-ban és Java-ban sem véletlenül létezik a két különböző stuktúra.
Tulajdonképpen most nem is vitatkozunk, csupán kiegészítgetjük egymást.[ Szerkesztve ]
Sk8erPeter
-
Forza_JUVE
aktív tag
válasz Sk8erPeter #6905 üzenetére
Szia!
Nagyon köszönöm! Megpróbálom!
Üdv.
-
Forza_JUVE
aktív tag
válasz Sk8erPeter #6905 üzenetére
Na úgy tűnik h menni fog a reCAPTCHA, legalábbis sikerült elhelyeznem az ürlapon ... megcsináltam azt a verify.php-t ... és ha pl. kitöltöm a mezőket, de a Captchát nem, akkor jön a hibaüzenet, hogy "The reCAPTCHA wasn't entered correctly. Go back and try it again."
Viszont ha jól írom be, akkor meg ezt kapom egy üres oldalon: "Could not open socket"
Már rájöttem, hogy az a gond, h sikeres kitöltés után nem tudja mit kéne csinálni ... ugye?Vagyis a verify.php -ban a "your code here to handle a successful verification" sor alá kéne egy teendő.
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
"(reCAPTCHA said: " . $resp->error . ")");
} else {
// Your code here to handle a successful verification
}Azt hogyan kéne beírni, hogy pl. egy xy.html lapra ugorjon, ha sikeresen beírta valaki a kódot ??
Köszi.
[ Szerkesztve ]
-
cucka
addikt
-
Forza_JUVE
aktív tag
valamiért mégsem jó, jelenleg ezt írtam be:
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
"(reCAPTCHA said: " . $resp->error . ")");
} else {
// Your code here to handle a successful verification
header("Location: www.google.com");
}
?>Ránézésre mi lehet a baja? Most is a "Could not open socket" üzit kapom!
-
LW
őstag
Visszatértem és még mindig csak kérdezek.
Az összetartozó eljárásokat, ill. függvényeket tartsam egy osztályban (akár singleton), vagy csináljak belőlük sima globális függvényeket?
Mert egyébként ez nem igényelne osztályt, de így mégis rendezettebb.
üdv. LW -
Forza_JUVE
aktív tag
most a die hoz írtam be és ott működik az url
ha egy az egybe átmásolom az else -be, akkor meg ez a rohadt "Could not open socket" jelenik meg ... pedig tuti h jól írom be a kódot. Mit nem tud megnyitni, mi az a socket ???
a recaptchalib.php fájlban megtaláltam a szöveget ... de nem tudom értelmezni:
function _recaptcha_http_post($host, $path, $data, $port = 80) {
$req = _recaptcha_qsencode ($data);
$http_request = "POST $path HTTP/1.0\r\n";
$http_request .= "Host: $host\r\n";
$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
$http_request .= "Content-Length: " . strlen($req) . "\r\n";
$http_request .= "User-Agent: reCAPTCHA/PHP\r\n";
$http_request .= "\r\n";
$http_request .= $req;$response = '';
if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) {
die ('Could not open socket');
}fwrite($fs, $http_request);
while ( !feof($fs) )
$response .= fgets($fs, 1160); // One TCP-IP packet
fclose($fs);
$response = explode("\r\n\r\n", $response, 2);return $response;
}[ Szerkesztve ]
-
cucka
addikt
válasz Forza_JUVE #6910 üzenetére
Hát rosszul írtad
Átirányíthatsz egy relatív útvonalra a szerveren. Példák:
header("Location: xy.html");
header("Location: /some_subdir/index.php?id=1&result=success");Vagy átirányíthasz egy külső oldalra, akkor viszont kell a http elé:
header("Location: http://www.google.com");Az átirányítás után a die() arra van, hogy a szkript maradék része ne fusson le.
A socket-es hibának ehhez nincs semmi köze. -
cucka
addikt
Mehet így is.
Igazából minél többet nézem a kód részleteket, amiket mutatsz, annál kevésbé világos, hogy ez a framework pontosan mit is fog tudni, hova akarsz eljutni? Tulajdonképpen ez (mármint hogy mit tud a framework, hogyan épül fel, stb.) első körben sokkal fontosabb annál, mint hogy most globális függvényként írod-e ezeket meg vagy egy osztály statikus függvényeiként. -
LW
őstag
Kreáltam egy biztonsági rést, itt hozzáférsz förmedvényemhez.
ftp://radigine.dyndns.org
uname: radigine
passwd: radigineNincs vele különösebb célom, csak szeretnék egy (kis) rendszert, ahol nem kell bajlódni az alapvető dolgokkal. Hogy mit tud? Amit kellene, még azt sem. Ez még nagyon alfa verziója a történetnek. Jelenleg annak örülök, ha egy üres fehér lap fogad.
-
emerico2004
aktív tag
Valaki tud segíteni egy ilyen mibe való és mire jó pontosan ? : [link]
-
zka67
őstag
válasz emerico2004 #6916 üzenetére
-
kadam4
tag
válasz Forza_JUVE #6889 üzenetére
Nem tudom miért nem jelenik meg a kép, de leírom, hogy én hogyan csináltam Captcha kódot.
Kiír egy 6 karakterből álló random kódot, a kódot az inputoknál a code_check-be írja be, a captcha_code-ba pedig te írod majd be.
Küldés után pedig, ezt a kettőt kell összehasonlítani, hogy megegyeznek e, ha igen, akkor beíródik a szöveg, ha meg nem, akkor dobjon egy hibaüzenetet.
Ehhez be kell kapcsolni a php_gd2-t, hogy megjelenjen majd a kép(lehet a tiédnél is be kell).Kód:
<?php
$capt="";
$text=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
// Karakterek generálása
$texta=$text[rand('0','25')];
$textb=$text[rand('0','25')];
$textc=$text[rand('0','25')];
$textd=$text[rand('0','25')];
$texte=$text[rand('0','25')];
$textf=$text[rand('0','25')];
//Egybe a 6 karakter
$capt=$texta.$textb.$textc.$textd.$texte.$textf;$im = @ imagecreate ( 90 , 30 );// 90*30-as kép generálása
$background_color = imagecolorallocate ( $im , 255, 255, 0 );//háttérszín
$text_color = imagecolorallocate ( $im , rand('0','255') , rand('0','255') , rand('0','255') );//szöveg színe (random)
$border = imagecolorallocate( $im, 255, 0, 0 );imagettftext ( $im , 15 , 2 , 10 , 20 , $text_color , "ttf.ttf" , $texta ); //méret szög xstart ystart szin ttf text
imagettftext ( $im , 15 , 0 , 22 , 20 , $text_color , "ttf.ttf" , $textb );
imagettftext ( $im , 15 , 20 , 37 , 20 , $text_color , "ttf.ttf" , $textc);
imagettftext ( $im , 15 , 0 , 49 , 20 , $text_color , "ttf.ttf" , $textd );
imagettftext ( $im , 15 , 0 , 61 , 20 , $text_color , "ttf.ttf" , $texte );
imagettftext ( $im , 15 , 0 , 70 , 20 , $text_color , "ttf.ttf" , $textf );
imagepng ( $im, 'captcha.png' );
imagedestroy ( $im );// képet ne cashelje a browser
$cachekiller = time();// kiíratás
echo "
<form method='post' action='sajat link'>
<b>Kód:</b><br><img src='captcha.png?{$cachekiller}' alt='' align='absmiddle'>
<input type='hidden' name='code_check' value='$capt' />
<input type='text' name='captcha_code' value='' size='10' maxlength='6'><br>
<input type='submit' value='Küld'></form>";
?>http://www.mobilgyujtemeny.hu
-
DeltaPower
őstag
ez így nem jó. capcha kódot szöveges formátumban nem küldjük ki, te viszont beteszed egy hidden inputba, ami string függvényekkel feldolgozható. capchának az lényege, hogy a kód csak kép formában megy ki a szerverről.
egy megfelelő módszer például az, hogy lemented sessionba a capcha kódot, és a form elküldése után onnan hasonlítod össze a formban kapott kóddal.Forza_JUVE: a securimage faq-jában (http://www.phpcaptcha.org/faq/) olvasd el a "The image appears but there is no text on the image." részt.
(bocs hogy nem tudtam linkelni de épp kinyírtam a js interpretert )[ Szerkesztve ]
"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser
-
kadam4
tag
válasz DeltaPower #6919 üzenetére
Rendben, akkor megfogadom a tanácsodat és kijavítom.
Köszönöm, hogy szóltál.http://www.mobilgyujtemeny.hu
-
pawee
tag
sziasztok egy egyszerű saját pluginról lenne szó, bekapcsolom úgy is marad, de kiír egy ilyet:
A bővítmény 1 karaktert generált az aktiválás váratlan eredményeként. Ha észlelünk “headers already sent" üzeneteket, vagy RSS problémákat, vagy bármilyen hibát kapcsoljuk vagy töröljük a bővítményt.
a bállításoknál megjelenít a menümet, de miután be akarom állítani, azt írja, hogy siekretelen, újra kellene próbálni :S tudtok segíteni? nem rég óta foglalkozom vele, szóval lehet, h csak vmi kezdő hiba...:S előre is köszi
itt a kód:http://pastebin.com/4T4SLvYK
Minden input az ördögtől érkezik!
-
cucka
addikt
A hibaüzenetet azért kapod, mert a wordpress úgy érzékelte, hogy aktiválás során a scriptednek volt valamilyen kimenete, aminek elvileg nem kéne.
A kimenetet okozhatja sokminden, például
- konkrétan kiírsz valamit
- valami hiba történt és a hibaüzenet kikerült az stdout-ra
- sortörés vagy fölösleges szóköz a script elején vagy végén
- a file elején található BOM. Egyszerű fix: nyisd meg a file-t Notepad++ nevű programmal és állítsd át a karakterkódolást BOM nélkülire.Remélem segített.
-
pawee
tag
?> -t kellett kiszedni a végéről. most szépen be is kapcsol, csak nem csinálja a dolgát
ami annyi lenne, hogy a szövegmezőbe beírunk valamit, amit elment az adatbázisba, majd ezt kiírja nekünk a képernyőre, de már amikor a submitre kattintok akkor azt írja, hogy a beállítás sikertelen meg kellene próbálni később, lehet, hogy valami adatbázis írás/olvasási baja lehet? sajnos nem tudom, má átnéztem párszor a kódot, de nem tudok rájönni, vmi tipp esetleg?Minden input az ördögtől érkezik!
-
Siriusb
veterán
válasz Sk8erPeter #6900 üzenetére
Azt hiszem erre elfelejtettem válaszolni.
Arra gondolok, hogy a Joomla maga a szűk keresztmetszet - itt újra a felhasználók kezelését említeném -, ám ha nyilvánvaló, az adott weboldal soha nem fog olyan területeket érinteni, amely a Joomla határaiba ütközik, akkor persze felesleges ágyúval verébre, s tény az is, bőven találni modulokat hozzá.
Mindazonáltal megmaradtak valamiféle homályos emlékeim, amikor a Joomlá-ban akartam bizonyos oldalak megjelenését személyre szabni, s valami ilyesmi jön vissza: pfffff és brrrrr
A Drupalban pedig annyira egyszerű...
Mint látható, abszolút szubjektív a véleményem, szóval tudományos értekezést ne várj -
Brown ügynök
senior tag
Van két osztály. Az egyikben tárolom statikus változóban a SESSION értékét. A másikban az adatbázis kapcsolódásnál ezeket a statikus változó értékeit kérem le. Illetve kérném ha tudnám.
1. osztály:
static $user; // $_SESSION['érték']
static $pswd; // $_SESSION['érték']
2. ostály:
function connect() {
1.osztály::$user;
1.osztály::$pswd;
...
}
function select() {
$this->connect();
...
}A select fv.-nél már nem tud kapcsolódni az adatbázishoz. Miért lehet ez?
"hacsak nem jön a jó tündér break utasítás képében..."
-
Brown ügynök
senior tag
válasz Brown ügynök #6925 üzenetére
1.osztály::$user;
1.osztály::$pswd;
Tehát ezekkel az értékekkel kapcsolódnék a Postgres adatbázishoz, de nem látja az értékeket."hacsak nem jön a jó tündér break utasítás képében..."
-
cucka
addikt
válasz Brown ügynök #6926 üzenetére
Valamilyen kódrészletet dobj fel pastebin-re, ebből, amit leírtál, semmit sem lehet érteni.
-
Brown ügynök
senior tag
válasz Brown ügynök #6925 üzenetére
Akkor fussunk neki még egyszer:
class controller {
static $user; // $_SESSION['user']-t tároljuk
static $pswd; // $_SESSION['pswd']-t tároljuk
}
class model {
function connect() {
// Ezekkel az adatokkal kapcsolódunk az adatbázishoz
controller::$user;
controller::$pswd;
...
}
function select() {
$this->connect();
//lekérdezés
...
}
}A bejelentkezés abból áll, hogy indítunk egy munkamenetet, a $_SESSION értékeket eltároljuk a static $user, $pswd változókba, majd lefut a connect() fv. Ha a select() fv.-t szeretném futtatni, akkor meghívódik a connect() fv. ami venné a controller::$user, $pswd változók értékeit és lefutna egy lekérdezés. De ilyenkor a connect() fv. a controller::$user, $pswd értékeit üresnek látja. Miért van ez?
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
Alukard
senior tag
Én ezt használom, igaz mySQL adatbázishoz...
A kérdésem/kérésem az lenne, hogy hogy lehetne ezt jobbá tenni, vagy ez így -ha még szódával is, de - elmegy?
Működni működik
Csak érdekelne, hogy hozzáértők milyen kritikával illetik a gány munkám
https://blackfyre.ninja
-
xTc
aktív tag
válasz Brown ügynök #6928 üzenetére
Helló,
szerintem ez így kicsit káosz, ahogy van. Egyszerűbb lenne, ha a model osztálynak a user-t, és a password-t a sessionből olvasnád ki. Amennyiben mégis szükség van a controller osztályra, akkor azt példányosítani kellene a model osztályon belül, és az így létrejövő objektumot tudod felhasználni a model osztályban.
A controller class konstruktorában kiolvasod a sessionből a user-t, pw-t. Ezután a model osztályban létrehozol egy controller objektumot $tmp = new controller(), majd a connect függvényben tudod használni a a controller objektum $user, és $pswd változóit.
-
xTc
aktív tag
-
cucka
addikt
válasz Brown ügynök #6928 üzenetére
A kód alapján ennek működnie kéne.
Kapcsold be a hibák és warning-ok mutatását és próbáld kideríteni, hogy
- a user és pswd változókba bekerülnek-e az értékek?
- ha igen, mi történik onnan, hogy bekerültek az értékek addig, amíg használni szeretnéd őket (eltűntek az értékek) -
Sk8erPeter
nagyúr
válasz Alukard #6929 üzenetére
Szerintem adatbázis-kapcsolati objektumok létrehozásához érdemes lehet a Singleton-mintát alkalmazni. Többnyire az embernek dinamikus weblapok készítésekor egyetlen adatbázis-kapcsolati objektumra van szüksége, persze lehetnek kivételek, de általában előbbi a jellemző.
A kódodban a protected láthatóságú tagváltozóknak semmi szerepe nincs, mivel nem rendeled hozzájuk az értékeket (nincs ilyen sor: $this->sql_host = "localhost"; stb.), hanem csupán lokális érvényességű változóid vannak (pl. $sql_host), így azoknak nem sok értelme van. Mivel tulajdonképpen úgyis csak egyetlen helyen (connect() függvény) csatlakozol az adatbázishoz, nem biztos, hogy érdemes egyáltalán eltárolni ezeket az értékeket az objektumon és leszármazottain belül máshol is elérhető tagváltozókba.
A "var" kulcsszó használata elavult, és igazából értelmetlen is jelen esetben, az nyugodtan lehetne protected (vagy private, de akkor a leszármazottak nem látják).
Az előbbieken túl a $query-ket sehol nem ellenőrzöd, nem kerülöd el az esetleges SQL Injectiont vagy rosszindulatot nem feltételezve csupán esetleges hibákat azzal, hogy escape-eled az átadott stringet (mysql_real_escape_string).
Plusz ha már OOP, akkor már kivételeket is illendő lenne használni, ez a die() ill. ekvivalense, az exit() nagyon ronda megoldás, ahelyett, hogy a megfelelő helyeken kezelnéd az egyes hibákat, egyből leállítod a szkript futását.
Ezenkívül a hibaüzenetbe is muszáj belekötnöm: ez a "Ne zaklasd a rendszergazdát" elég furcsa egy hibaüzenet, inkább neked kéne elnézést kérned a júzertől, hogy para van az adatbázissal, nem még jól le is cseszni.Én személy szerint a PDO-t használom, és ajánlom is a használatát. Támogatja az adatkötést, plusz azt, hogy ne kelljen explicite mindenhol escape-elni a stringeket (elintézi magának), és még sok egyebet, ráadásul full objektumorientált, és szerintem áttekinthetővé teszi a kódot.
Feltettem pastebinre azt az osztályt, amit a Singleton-mintának megfelelően írtam, általában ezt az osztályt használom adatbázis-kapcsolat kiépítésére. A konstruktor és a copy konstruktor privát láthatóságú, így kívülről nem példányosítható tetszőleges számban az objektum.
Van egy külön konfigfájlom, ahol definiálom a saját konstansokat, többek közt az adatbázis-jelszót és -felhasználónevet, ezeket a konstansdefiníciókat most az elejére tettem, középen jön maga az osztály, az osztály kódja alatt pedig egy példa látható a használatára: [PDO Singleton DB class].
Hátha bárki hasznát veszi.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Brown ügynök #6933 üzenetére
Hogy érted azt, hogy "minden művelet előtt"?
Csak a script elejére kell betenni ezt a kódot, a lefutásáig akkor már használhatók a session elemei.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Siriusb #6924 üzenetére
Szerintem az "ágyúval verébre" inkább a Joomla esetében igaz.
Nekem a Drupal 7-es verziójának AJAX-alapú admin-felülete nagyon tetszik, könnyen kezelhetőnek és áttekinthetőnek találom, a 6-os verzió admin-felülete viszont számomra kifejezetten kényelmetlennek és kicsit káoszosnak tűnik. Persze meg lehet találni benne a dolgokat, meg nyilván vannak template-ek akár az admin-felület testreszabására is, de az kicsit jobb, hogy a 7-esben ez már eleve adott.
Csak ugye az a gáz, hogy a 7-eshez még viszonylag "kevés" template és modul készült el, inkább még mindig csak a 6-oshoz találhatók ilyenek, pl. webshopmodulokból is inkább legfeljebb beta-verziókat találtam, vagy egyáltalán nem (mint asszem az Übercarthoz sincs kész a 7-es). Tudtommal elég sok minden változott a 7-es változatban, így még lehet, hogy várat is magára sok modul elkészítése.
Na, szóval igazából amire ki akartam lyukadni, hogy nekem végül is jó lenne a 6-os, de annak az admin-felülete egy átlagos felhasználó szemszögéből (ne az itteni fórum látogatóiból indulj ki, akik vélhetően nem egységsugarú júzerek) nem tűnik olyan kényelmesnek (vagy csak nem találtam hozzá megfelelő skint, ha van ilyen, szívesen fogadom), a Joomláé talán valamennyivel kézenfekvőbb meg kicsit szebb - kód meg pár egyéb dolog szempontjából viszont a Drupal a jobb választás; Joomla talán a kicsit több elkészített választható template meg modul miatt. Persze valóban, ízlések és pofonok különböznek.
Szóval tényleg nincs igazság!Sk8erPeter
-
cucka
addikt
válasz Sk8erPeter #6934 üzenetére
Szerintem adatbázis-kapcsolati objektumok létrehozásához érdemes lehet a Singleton-mintát alkalmazni.
Szerintem annyira nem érdemes. Alapvetően PHP-s webfejlesztés során túl sokat nem nyersz a tervezési mintákkal. (Elsősorban a php gyenge típusossága miatt, másodsorban a webfejlesztés sajátosságai miatt). Persze, lehet használni, semmi baj sincs vele.Én személy szerint a PDO-t használom, és ajánlom is a használatát.
Jelenleg kezdek egy hobbi projektet és nézegettem ezt is mint lehetséges eszközt, de hát a tudása az nagyon erősen konvergál a nullához egy komoly orm-hez képest. -
Siriusb
veterán
válasz Sk8erPeter #6936 üzenetére
Ezzel találkoztál? http://drupal.org/project/admin_menu
6-osban volt amikor használtam.Amikor megjelent a 7-es akkor kipróbáltam és sürgősen félretettem, most néztem rá megint a 7.4-re, ha már emlegetted. Hááááát, a modulok fejlesztésése tényleg lassan megy.
-
Brown ügynök
senior tag
válasz Sk8erPeter #6935 üzenetére
Úgy értettem, minden olyan oldal elején ahol szükség lesz a session-ben tárolt adatokra.
@cucka: Ajánlhatom a doctrine-!. Egy keretrendszer kapcsán kezdtem a tanulásába. Nekem bonyolult volt,( a mapping miatt nem működött egy lekérdezés ), igazából nem is értem mi az a plusz amit egy orm nyújtani tud.
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
cucka
addikt
válasz Brown ügynök #6939 üzenetére
Az orm azt tudja nyújtani, hogy elfedi előled az sql-t és annak összes nyűgjét.
-
Alukard
senior tag
válasz Sk8erPeter #6934 üzenetére
Köszönöm a részletes elemzést.
Az biztos, hogy egyes elemeit alkalmazni is fogom az általad átadott és közszemlére bocsájtott tudásnak, de töredelmesen bevallom, hogy az OOP sosem volt az erősségem, persze belátom, hogy az a következő lépés, de valahogy a gondolkodásmódot sosem sikerült -még- elsajátítanom.A hibaüzenetek esete, meg... hát igen, most mit mondjak... elsősorban házon belüli a történet és nem ügyfél részére készül, és a szolgáltató szerencsére eléggé megbízható ezen a téren... hacsak az SQL lekérdezést nem rontom el nem nagyon szokott hiba lenni.
A mysql_real_escape_string -et, többek közt alkalmazom $_GET és $_POST változókra, tehát ami a felhasználó részéről érkezhet az átmegy némi feldolgozáson. Cookie-t nem használók, és a rendszer nem is keresi a gépen (elméletileg), és $_GET esetén nem hagyok elvarratlan szálakat, azokat is ellenőrzöm, hogy mit próbálnak megetetni a rendszerrel és amint valami ami nem illik a képbe kiürít minden olyan változót ami felhasználói adatot tartalmazhat és nem engedi vissza.
Persze csak gányolok és csak hiszem azt, hogy ez a tuti megoldás, de csak ez jutott az eszembe mint lehetőség, mert a legtöbb logout script amit találtam itt kezdődött és ért véget:
session_destroy();
és kicsit soványnak éreztem őket.A formokat is igyekszem védeni a mező tartalom szűrésen/ellenőrzésen felül, bár ez nem a legtutibb védelem, $_SESSION-ben random azonosító, form hidden értékként ugyan az és a 2 egyezésének figyelése....
Igazából ami a komoly problémám az az, hogy az adatbázisban tároltam le adatokat, mondjuk ügyfél adatokat azokat hogy tudom védeni... mert arra is gondoltam, hogy egyszerűen összekeverem a betüket valamilyen rendszer szerint. Olyan elemek ellen szeretném védeni akik -feltételezhetően- nem férnek hozzá a php kódhoz, hanem csak az adatbázishoz...
https://blackfyre.ninja
-
Speeedfire
nagyúr
Kicsit offolok, elég sok guru jár erre. Így itt kérdezem meg.
Feltettem egy LAMP szervert a routerre és kicsit vissza akarom fogni, mind a 3 komponenst. 400mhz és 32mb ram elég hamar kevés lehet. Még a lighthttpd is játszik, de egyelőre maradnék az apache mellett.
Amik elsőre eszembe jutottak, bufferek, cachek visszafogása.
Alap esetben elég sok szál fut az apache-ból és sokat is eszik.
A max szálakra gondoltam, de valami modult keres...MaxSpareThreads 2
Ellenben a MaxSpareSevers-t elfogadja, csak nem veszi tudomásul. Beállítom neki, hogy 1 és mégis fut legalább 5 példányban.
Várom a további ötleteket. Maximum kliensek száma, keepalive meg a többiek.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Brown ügynök
senior tag
Ide is berakom hátha valaki tudja a megoldást: karakterkódolási probléma
"hacsak nem jön a jó tündér break utasítás képében..."
-
modder
aktív tag
válasz Speeedfire #6942 üzenetére
Helló,
Nem mindegy, hogy milyen fordítású apache van fönt. Amennyit én tudok, a prefork verzió childprocesseket hoz létre, amíg a worker verzió szálakat.
Olvasd el ezt: http://httpd.apache.org/docs/2.0/mpm.html
Ha prefork verzió van fönt, a MaxSpareThreads nem játszik.Itt van a prefork által elfogadott paraméterek: http://httpd.apache.org/docs/2.0/mod/prefork.html
Nem tudom milyen megfontolásból tetted a routerre, ha otthon baszkódsz vele és kíváncsiságból, akkor nem gond, de azért vállalati környezetben ne csinálj ilyet
Még eljátszogathatsz az apache process nice érékével is, hogy ha hálózati forgalom szempontjából a router keményen igénybe van véve, az oldallekérdezések ne fogják vissza, de az is lehet, hogy erre nincsen szükség.
Nem vagyok egy nagy apache guru, de megpróbálkozhatsz olyannal is, hogy ne töltsön be modulokat, amik nem kellenek, pl. ssl.
-
Speeedfire
nagyúr
Valószínű prefork lehet, mert valóban nem fogadta el. Ellenben abba is hagytam a nagy erőforrás miatt az apache projektet. Lecseréltem lighttpd-re, ha a youtube-nak megfelelt akkor nekem is megfelel.
Fele annyit memóriát eszik jelenleg, a cpu meg meg sem mozdul 1 szál mellett.
Csak itthoni használatra kell, a router admin felületével szenvedek, na meg akarok 1-2 statisztiai oldalt készíteni.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Brown ügynök
senior tag
Nemrég kezdtem session-nel foglalkozni ezért megkérdezem, hogy mikre kellene még odafigyelni biztonság és hitelesítés szempontjából.
Minden "védett" tartalomnál megvizsgálom, hogy a felhasználó be van-e jelentkezve:
if (isset ($_SESSION['user']) && isset($_SESSION['pswd']) && $_SESSION['online'] && ( $_SERVER['REMOTE_ADDR'] === $_SESSION['ip']) )
Ezek után megvizsgálom, hogy lejárt-e már a munkamenet. Ha lejárt, akkor kiléptetem.
Kellene még ezenkívül mást is figyelni?
"hacsak nem jön a jó tündér break utasítás képében..."
-
Tele von Zsinór
őstag
válasz Brown ügynök #6946 üzenetére
Felesleges ennyi mindent vizsgálni, és a jelszót miért mented?
Én bejelentkezéskor beállítom az is_authenticated kulcsot, később ezt vizsgálom, kijelentkezéskor pedig unsetelem.
Az ip-t vizsgálva problémákba ütközhetsz, amikor több user van egy ip mögött, és változik az ip requestről requestre (koli, céges környezet, ilyesmik). Vizsgáld inkább a user-agent értéket az első kéréskor kapotthoz, ennek nem kéne változni egy session alatt.
-
Brown ügynök
senior tag
válasz Tele von Zsinór #6947 üzenetére
A jelszóra azért van szükség mert azzal kapcsolódik az adatbázishoz minden adatbázis műveletkor.
Az ip-ről és a user-agent-ről is olvastam, de ha a user-agent kevesebb ütközéssel jár akkor azt használom.
Viszont a user-agent megegyezhet egy nem jogosult felhasználóéval aki így könnyen szert tehet adatokra / elhelyezhet rosszindulatú kódokat az oldalon, nem?
"hacsak nem jön a jó tündér break utasítás képében..."
-
Lacces
őstag
Sziasztok!
Tudtok olyan php-s dolgot, tutorialt, ami lehetővé teszi, hogy egy excel fájl tartalmát a php kigenerál html-be?
Termék neve, ára, stb... egy html-es táblázatba kigenerálja.
Asp.net-es ecommercenél láttam ilyet és szépen feltölti.
-
DeltaPower
őstag
szerintem ennél jobb megoldás, ha erősen hashelt-sózott jelszót mentesz sessionba és minden lapkérésnél ellenőrzöd a jogosultságot.
adatbázishoz minden querynél új kapcsolatot nyitsz és a futása után lezárod?"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest