Hirdetés

2024. május 28., kedd

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)

Hozzászólások

(#3001) Frenky89


Frenky89
őstag

Kösz nektek!

Igazából abban bíztam, hogy valaki felismeri, hogy melyik drupal modul a konfigurátor. :B

Mostmár egyéni megoldás lesz, szóval lényegtelen... és még1x köszi!

(#3002) BigManus válasza Frenky89 (#3001) üzenetére


BigManus
addikt

Sziasztok!

Előre bocsájtom teljesen kezdő vagyok a php-hez, a html egy kicsit megy.
Szeretnék készíteni egy weboldalt, de úgy, hogy bizonyos tartalmakat csak regisztrált felhasználók érhessenek el.
Utánanéztem pár letölthető login rendszernek, de számomra túl bonyolultak.

Egyet beüzemeltem ami lényegében működik.
Ha helyes felhasználónév/jelszó párost adok meg, akkor kiírja hogy beléptem, tehát ez működik.
Van egy " védet tartalom " link amire ha rákattintok azt írja csak regisztráltnak!
Ha belépek és úgy kattintok kiírja belépve.

Kérdésem az lenne, hogyan tudnék úgy megadni védett oldalt, hogy belépés nélkül elérjék?
Mert ahol kiírja, hogy csak regisztráltnak, abban a php-ban print értékkel írja, de ha beleírok a php-fájlba, megjelenik belépés nélkül is.

Hálás lennék, ha valaki tudna segíteni.

Előre is köszönöm!

Nem a győzelem a részvétel hanem a fontos...

(#3003) Orb1337 válasza BigManus (#3002) üzenetére


Orb1337
tag

A legtöbb ilyen login rendszerben van egy logged_in session, ezt ellenőrizd minden oldalad elején, true értéknél megjeleníti az oldalt, különben visszairányít a login oldalra

(#3004) BigManus válasza Orb1337 (#3003) üzenetére


BigManus
addikt

És ebből hogyan érem el pl. hogy egy általam létrehozott php fájl védett legyen?

Most ez van a vedett.php ban:

?php
session_start();

if($_SESSION['belepett'] == true)
{
print "Védett tartalom, ha ezt olvasod, sikerült belépned, gratulálok";
}
else
{
print "Csak regisztráltaknak";
}

?>

[ Szerkesztve ]

Nem a győzelem a részvétel hanem a fontos...

(#3005) Orb1337 válasza BigManus (#3004) üzenetére


Orb1337
tag

<?php
session_start();
if(!($_SESSION['belepett'] == true))
{
print "Csak regisztráltaknak"; /*vagy ideraksz egy átirányítást a loginlapra*/
}
?>

[ Szerkesztve ]

(#3006) BigManus válasza Orb1337 (#3005) üzenetére


BigManus
addikt

Köszi, hogy segíteni próbálsz.
Lehet nem jól kérdezek...
Az amit leírtál azt értem, de tegyük fel, csinálok egy valami.php-t.
Tartalma:

<html>
<head>
<title>Teszt</title>
</head>
<body>
<p>Ez egy teszt oldal </p>
</body>
</html>

Tehát ezt hogyan teszem védetté?

Nem a győzelem a részvétel hanem a fontos...

(#3007) Orb1337 válasza BigManus (#3006) üzenetére


Orb1337
tag

legfelülre ezt bemásolod

(#3008) BigManus válasza Orb1337 (#3007) üzenetére


BigManus
addikt

Bemásoltam:

<html>
<head>
<title>Teszt</title>
</head>
<body>
<p>Ez egy teszt oldal </p>
</body>
</html>
<?php
session_start();

if($_SESSION['belepett'] == true)
{
print "<b>Védett tartalom</b>, ha <big>ezt</big> olvasod,<br /> sikerült

belépned, gratulálok";
}
else
{
print "Csak regisztráltaknak!";
}

?>

Ezt a hibát írja:

Ez egy teszt oldal

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\vedett.php:9) in C:\AppServ\www\vedett.php on line 10
Csak regisztráltaknak!

Nem a győzelem a részvétel hanem a fontos...

(#3009) Orb1337 válasza BigManus (#3008) üzenetére


Orb1337
tag

/*Ellenőrzés hogy belépett-e a felhasználó*/
<?php
session_start();
if(!($_SESSION['belepett']==true))
{
exit();
}
?>
<!-- Jöhet a htmles rész -->
<html>
<head>
<title>Teszt</title>
</head>
<body>
<p>Ez egy teszt oldal </p>
</body>
</html>

[ Szerkesztve ]

(#3010) BigManus válasza Orb1337 (#3009) üzenetére


BigManus
addikt

Húú, működik!!!!
Nagyon szépen köszönöm!

Azt megkérdezhetetem, hogyan rakhatom bele ami benne volt?
Pl ha nem regisztrált akar belépni kiírja neki, hogy csak regisztráltaknak.

Nem a győzelem a részvétel hanem a fontos...

(#3011) Orb1337 válasza BigManus (#3010) üzenetére


Orb1337
tag

exit elé
print "Csak regisztráltaknak";

(#3012) BigManus válasza Orb1337 (#3011) üzenetére


BigManus
addikt

Köszönöm a türelmed! Működik.

Nem a győzelem a részvétel hanem a fontos...

(#3013) tildy


tildy
nagyúr

Van 4 fulltext searchom .azért négy, mert másképp nem lehet megoldani a sorrendiséget, hogyan keressen.
Keres keywordban, címben, leadben, és szövegtörzsben.
Vannak olyan cikkek ugye, aminek a leadjeben is szerepel az a szó, ami mondjuk a keywordben.
hogy tudom belepakolni ezeket úgy egy tömbbe, hogy ne legyen duplikáció? Próbálkoztam array diffel meg merge-el, de eddig nem oké a dolog.

Tehát van a , b, c, d tömb, amelyben lehetnek azonos elemek. Ezt a 4 tömböt akarom úgy mergelni, hogy a közös elemek közül csak 1 maradjon benne.

mondjuk nem tudom , az elején a rowidt azt minek veszi....

"Tartsd magad távol azoktól, akik le akarják törni az ambíciódat! A "kis" emberek mindig ezt teszik, de a nagyok éreztetik veled, hogy te is naggyá válhatsz" - Mark Twain

(#3014) PazsitZ válasza tildy (#3013) üzenetére


PazsitZ
addikt

Az array_merge jó erre a feladatra, csak mint kulcsértékeket pakold bele a tömbbe, mert a merge a kulcsértékek alapján fűzi össze őket.
példa kód

- http://pazsitz.hu -

(#3015) tildy válasza PazsitZ (#3014) üzenetére


tildy
nagyúr

hm, lehet első körben csak a kulcsokat kéne leszedni, azt tömbbe pakolni, majd miután már megvannak amik kellenek, az azokhoz tartozó többi mezőt újabb sql lekéréssel leszedni?
Hm... Próbálkozom, eddig az array merge csinált duplikátumot...

"Tartsd magad távol azoktól, akik le akarják törni az ambíciódat! A "kis" emberek mindig ezt teszik, de a nagyok éreztetik veled, hogy te is naggyá válhatsz" - Mark Twain

(#3016) Beaver válasza tildy (#3013) üzenetére


Beaver
csendes tag

Szia!

Én a megjelenítés előtt csinálnék egy tömböt aminek építése közben szűrném az azonos ID-jű sorokat: [link]

De szebb ha már az adatbázisból eleve csak az jön ami kell :) Valahogy így: [link]

remélem tudtam segíteni!

Beav

(#3017) tildy válasza Beaver (#3016) üzenetére


tildy
nagyúr

A 2. esetben mi biztosítja, hogy olyan sorrendben jönnek az adatok, ahol kell? Merthogy ez lényeges! Fulltext searchnél ugyanis nem lehet beállítani a sorrendiséget.
"Alapból nem:
Every correct word in the collection and in the query is weighted according to its significance in the collection or query. Consequently, a word that is present in many documents has a lower weight (and may even have a zero weight), because it has lower semantic value in this particular collection. Conversely, if the word is rare, it receives a higher weight. The weights of the words are combined to compute the relevance of the row."
esetleg még így: (select * from (fulltext-es lekérdezés) left join (like-os lekérdezés) on ...)
Természetesen megjelenítés előtt kell szűrni.
Lehet jó lenne az array merge, ha nem a saját lekérdezési formulánkat használnám , ami ad midnen sorhoz egy rowidt is...Hm, ezt még átnézem.

"Tartsd magad távol azoktól, akik le akarják törni az ambíciódat! A "kis" emberek mindig ezt teszik, de a nagyok éreztetik veled, hogy te is naggyá válhatsz" - Mark Twain

(#3018) fordfairlane válasza tildy (#3013) üzenetére


fordfairlane
veterán

Ennyit találtam ki hirtelen:

$query = '
SELECT DISTINCT id,title FROM ((SELECT id,title,1 AS sorrend FROM cikkek WHERE title LIKE "%tes%")
UNION
(SELECT id,title,2 AS sorrend FROM cikkek WHERE keywords LIKE "%tes%")
UNION
(SELECT id,title,3 AS sorrend FROM cikkek WHERE lead LIKE "%tes%")
UNION
(SELECT id,title,4 AS sorrend FROM cikkek WHERE content LIKE "%tes%")
ORDER BY sorrend, id) AS result
';

x gon' give it to ya

(#3019) tildy válasza fordfairlane (#3018) üzenetére


tildy
nagyúr

Unionnál üres tömböt kapok vissza...

"Tartsd magad távol azoktól, akik le akarják törni az ambíciódat! A "kis" emberek mindig ezt teszik, de a nagyok éreztetik veled, hogy te is naggyá válhatsz" - Mark Twain

(#3020) Beaver válasza tildy (#3017) üzenetére


Beaver
csendes tag

fordfairlane-nél a pont. A sorrend kritérium felett átsiklottam, hirtelen arra gondoltam csak azért kell a négy mező, mert így meg tudod mondani hogy na, az első a kulcsszavak között keres, a második a leadben...

Edit: hmm, pedig jónak tűnik :D

[ Szerkesztve ]

(#3021) Beaver válasza tildy (#3019) üzenetére


Beaver
csendes tag

Csináltam teszt adatbázist, fordfairlane postja alapján írt query nekem így működik:

db: [link]
query: [link]

(#3022) tildy válasza Beaver (#3021) üzenetére


tildy
nagyúr

Mondjuk nem egészen ilyen queryjeim vannak, az union stimmel , viszont a többiben másképp megy a lekérés fulltext search (meg súlyozás miatt) .
Nekem még van jobbra balra inner join is , mivel több táblából veszek adatokat ...
Átküldöm nektek ....

"Tartsd magad távol azoktól, akik le akarják törni az ambíciódat! A "kis" emberek mindig ezt teszik, de a nagyok éreztetik veled, hogy te is naggyá válhatsz" - Mark Twain

(#3023) G.A.


G.A.
aktív tag

Hali!
Kéne egy kis help.
Megoldható e a kövi művelet:
Van 2 oldal, az egyikről szeretném a másik oldal bizonyos adatait (árlista) frissíteni. Ez megoldható PHPban? H automatikusan frissítse? Ha nem van más lehetőség?

GA

(#3024) Tele von Zsinór válasza G.A. (#3023) üzenetére


Tele von Zsinór
őstag

Php-ban megoldható maga a folyamat, de az ütemezés nem - erre az OS ütemezőjét ajánlott használni, mondjuk a cron-t.

(#3025) vakondka válasza G.A. (#3023) üzenetére


vakondka
őstag

Ha egy tárhelyen van a két oldal, akkor simán lehet másolni az egyik adatbázisából a másikba.
Ha nem egy tárhelyen van a kettő és nincs cron, azt is lehet helyettesíteni php scripttel.
Ezt általában úgy oldják meg, hogy a php fájlok láblécében meghívódik egy program ami a frissítést végzi, így a látogatók böngészés közben futtatják neked az árfrissítést :)
Nyílván a sikeres frissítést el kell menteni egy txt fájlba, vagy adatbázisba, hogy mikor volt az utolsó sikeres frissítés.
A frissítés előtt pedig egy feltétellel meg kell viszgálni, hogy eltelt-e már 24 óra az utolsó frissítés óta. Ha eltelt, akkor frissíteni kell és a "last update" időpontját megváltoztatni az aktuálisra, ha nem telt el, akkor nyílván nem csinál semmit a script.

Ha van mondjuk egy footer.php fájlod, ami minden oldalon be van include-olva, akkor ide kell beépíteni ezt és már kész is van a saját CRON :K

A guglival is találtam ilyet: [link]

[ Szerkesztve ]

https://toptarget.hu - Online Marketing Ügynökség

(#3026) cucka válasza vakondka (#3025) üzenetére


cucka
addikt

..meg arra is kell gondolni, hogy mi van, ha két látogató egyszerre nézi meg az oldalt és mindkét szál azt hiszi, hogy frissíteni kell. Összességében véve ez nagyon kényszermegoldás, ráadásul észnél kell lenni, hogy jól írd meg.

(#3027) vakondka válasza cucka (#3026) üzenetére


vakondka
őstag

Akkor esetleg annyit lehetne még hozzátenni, hogy a frissítés megkezdése előtt ideiglenesen átnevezni a fájlt amiből frissít a progi, így elvileg egy másik szál már nem tud lefutni akkor sem ha véletlenül tényleg pont egyszerre 2 látogató nézné meg az oldalt adott pillanatban :U

De ez tényleg csak nagyon kényszer megoldás, minden normális tárhelyen van CRON,
azt kell használni, nemhiába találták ki...szóval nem progikat kellene írni erre hanem tárhely szolgáltatót változtatni :)

https://toptarget.hu - Online Marketing Ügynökség

(#3028) cucka válasza vakondka (#3027) üzenetére


cucka
addikt

File átnevezéssel is meg lehet oldani, meg mondjuk mysql lock-okkal is. A lényeg, amire feltétlenül oda kell figyelni, hogy a közös erőforrás lock-olása illetve a lockolás ellenőrzése atomi művelet legyen.

(#3029) kymco


kymco
veterán

Sziasztok!
Olyan problémám van, hogy egy magyar kódolású (amit próbáltam: próbáltam utf-8, iso-8859, windows-1250) weblapon windows alól szerkesztve szeretnék egy excel táblát létrehozni teleírni a táblába egy olyan karakterláncokkal, amikben ékezetes betűk is előfordulnak.
A táblát több, a netről leszedhető rutinnal létre is tudom hozni, és ha ékezet nélkül írom be a karakterláncot, nincs is gond, de amint ékezetes betűket használok akkor nem tud mit kezdeni az ékezetekkel egyik sem.
Létezik olyan php függvény, amivel egy karakterláncot konformmá tud tenni más kódlapokra, vagy nekem kell valamit kitalálnom hozzá?
Vagy van valami más megoldás?
(egyelőre az működik, ha szeparátorokkal elválasztott txt fájlba írom, mert ezt megeszi az excel, de ez félmegoldás)

www.refujvaros.hu

(#3030) Tele von Zsinór válasza kymco (#3029) üzenetére


Tele von Zsinór
őstag

(#3031) kymco válasza Tele von Zsinór (#3030) üzenetére


kymco
veterán

:R
Elkövettem egy pár alapvető hibát korábban... :W
A php 'ISO-8859-2'-re volt állítva.
A MYSQL első-körben ISO-8859-1-re, másod-körben 'UTF-8'-ra lett konfigurálva
A notepad++-ban ANSI kódolással szerkesztettem.
Eltart egy ideig, míg homogenizálom a kódlaprengeteget :)

www.refujvaros.hu

(#3032) kymco válasza kymco (#3031) üzenetére


kymco
veterán

A szövegszerkesztőben találtam olyat, hogy UTF-8 mentés BOM-mal... Kell nekem a BOM? Mire jó?

www.refujvaros.hu

(#3033) cucka válasza kymco (#3032) üzenetére


cucka
addikt

Byte order mark. A több byte-os karakterkódolásoknál ez specifikálja az "endianness"-t. (Van erre magyar szó? :) . Gyakorlatilag arról van szó, hogy egy két byte-on ábrázolt számnál/karakternél nem egyértelmű, hogy az a felső vagy az alsó byte van elől, az egyiket little endian-nak hívják, a másikat big endian-nak)
Ha utf8 kódolású weboldalt készítesz, akkor BOM nélkül mentsd a file-okat.

[ Szerkesztve ]

(#3034) kymco válasza cucka (#3033) üzenetére


kymco
veterán

:R köszi

www.refujvaros.hu

(#3035) kymco


kymco
veterán

Sikeresen megoldottam a kódolási problémámat, most már mindenhol utf-8 van, és az excel tábla is szépen feltölthető adatokkal.
Köszönöm az eddigi segítséget!
Már csak egy problémám van, hogy a mysqladmin bár a html forrást nézve utf-8 kódolású weblapot generál, de az én bevitt karakterláncaim ékezetes betűinél krikszkrakszokat hoz ki...
Mit lehet tenni, hogy ne így legyen?

www.refujvaros.hu

(#3036) kymco válasza kymco (#3035) üzenetére


kymco
veterán

:B Eltoltam a nevét: phpmyadmin

www.refujvaros.hu

(#3037) Sk8erPeter válasza lezso6 (#2953) üzenetére


Sk8erPeter
nagyúr

Hali!
Bocsánat, csak most volt időm foglalkozni a dologgal :B Köszönöm a segítséget! :R:R

A dolog valamilyen oknál fogva nem működik jól:
ha létezik a fájl, létrehozza az új, kiegészített fájlnevet, de maga a kép csak az image változóban meghatározott számsorozatot tartalmazza (36 bájt, nyilván, mivel 36 szám (karakter) van benne). :F

Egy-két alapdolog még nem teljesen tiszta számomra, ezért inkább megkérdezem:
1.) mi a szerepe az

$image = '010101110101011010111010101011011110';

sornak?
A file_put_contents szerint ez hozzáfűzi ezt az infót a fájlhoz. Valóban, a tartalma ez lesz. Tehát ha megnézem magát a fájl tartalmát mondjuk szövegszerkesztővel, akkor benne ezt látom.
De ez mire jó jelen esetben? Csupán ennyit fog tartalmazni a fájl, semmi mást. :F Ebből következően a képet nem tudja megjeleníteni, mert arra vonatkozó infókat nem tartalmaz, hogy akkor hogyan is néz ki a fájl (ezt felülírja az image változóval a file_put_contents második paramétere).

2.) Jól értelmezem, hogy az alábbi sornál a strpos megkeresi azt a pozíciót, ahol a pont előfordul a fájlnévben, és a substr pedig a file változó legelejéről kezdve elmegy a pontig, és azt adja vissza eredményül?

$name = substr($file, 0, strrpos($file, '.')); // kiterjesztés levágása

Majd ha jól értem, a while függvényben szereplő cucc ehhez a névhez fogja hozzáfűzni a ".jpg" kiterjesztést.
Egyébként természetesen jpg kiterjesztésű fájllal próbáltam ki a dolgot.

[ Szerkesztve ]

Sk8erPeter

(#3038) Sk8erPeter válasza lezso6 (#2982) üzenetére


Sk8erPeter
nagyúr

Ezzel helyesen tudod megjeleníteni ATW-n is az UTF-8-as karakterkódolást? :F
Csak mert én már rákérdeztem ATW-nél, hogy mikor válik lehetővé ott az UTF-8-as kódolás helyes megjelenítése, miért csak az ISO-8859-2 kódolás megy, és ezt válaszolták:
"A karakterkódolás az ingyenes oldalaknál valóban csak ISO-8859-2 lehet. Ez régebbről maradt így a rendszer felépítése miatt, és több dolgon is módosítani kellene, hogy változzon. Idővel természetesen változni fog ez, egészen konkrétan az admin felületről lehet majd választani. Pontos időpontot erre most nem tudnék mondani."

Ezek szerint mégis ki lehet ezt kerülni, és helyesen megjeleníteni az UTF-8-as kódolású weblapokat?

_______________
Még egy kérdés a képfeltöltéssel kapcsolatban: hogyan tudom olvasható formában kiíratni egy feltöltött kép típusát? Próbálkoztam párral, de eddig valahogy nem jött össze:
image_type_to_extension
image_type_to_mime_type
Persze lehet, hogy valami tök triviális dolgot rontok el, vagy valamire nem gondoltam.

Köszi! :R

Sk8erPeter

(#3039) lezso6 válasza Sk8erPeter (#3037) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

1.)
Az 010101110101011010111010101011011110 alatt a képet értettem bináris formában. Tehát magát a képet, mint adat, feltöltés esetében ugyebár ez a $_FILES tömbben van.

2.)
Igen, pontosan ezt csinálja. :)

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#3040) lezso6 válasza Sk8erPeter (#3038) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

UTF8-at szerintem valahogy csak meg lehet oldani, de a mikéntjéről fogalmam sincs. :B

A fájltípust (MIME) a $_FILES tömbből is elő tudod varázsolni, én úgy szoktam. [L:http://www.php.net/manual/en/features.file-upload.post-method.php][/L]

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#3041) Sk8erPeter válasza lezso6 (#3039) üzenetére


Sk8erPeter
nagyúr

Jaaaaa :D Oké, úgy látszik, késő van... :D
A feltöltés során mondjuk így adok nevet:

$target_dir = "upload/";
$target = $target_dir . basename( $_FILES['uploaded']['name']);

Milyen módon érem el bináris formában magát a képet? :B

____________________________________________________________________

Basszus, a fájltípusra vonatkozó kérdésem sztornó... Azt nem írtam, hogy próbáltam már a $_FILES tömbből elérni (ahogy írtad is), és ezt jól is tettem, azzal a kivétellel, hogy elcsesszintettem két karaktert a formon belül, az inputnak adott névnél, és emiatt nyilván nem működött... :W :D

Tehát így:

$tipus = $_FILES["uploaded"]["type"];

(na, és itt az uploaded helyett upload-ot írtam, és ezt jó ideig nem vettem észre :D)

[ Szerkesztve ]

Sk8erPeter

(#3042) lezso6 válasza Sk8erPeter (#3041) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

bináris = nyers, vagyis alapjában véve ugyebár egy tempfájlba tölt fel, aminek a nevét $_FILES[{inputname}]['tmp_name'] változóból éred el, s abban van a bináris. Most nézve a file_put_contents()-em gyakorlatilag hülyeség, szóval mást használj helyette, a fájlnév a régebb megadott átnevező-algoritmus $file változójában van. Pölö lehet move_uploaded_file() azonnal átmenteni, vagy az imagesave()-vel menteni, ha már be van olvasva GD-be.

[ Szerkesztve ]

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#3043) Sk8erPeter válasza lezso6 (#3042) üzenetére


Sk8erPeter
nagyúr

Jahh, értem már, akkor így módosítottam az image változót:

$image = ($_FILES['uploaded']['tmp_name']);

Ezzel már megfelelően eléri?

Másik kérdés, hogy még a konkrét feltöltés előtt mindenféle fájltípusra, fájlméretre és egyebekre vonatkozó ellenőrzéseket végzek a fájlon, és egy $ok változóval jelzem, ha minden ok, utána mehet a feltöltés, tehát így (sztem ezt még Te javasoltad, h így érdemes):

if ($ok==0)
{
...valami gáz van...;
}
else
{
if (move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
...ezt meg ezt csináld, írd ki, hogy faszán sikerült feltölteni a fájlt...;
}
else
{
...írd ki, hogy nem jött össze, stb...;
}

Nyilván az ellenőrzésnek, hogy létezik-e már a fájl, ezelőtt kéne lefutnia.
Ekkor tehát csak simán állítsam az $ok változót 1-re, miután a while ciklus az i változó növelgetésével, kiterjesztés levágásával, kiegészítő név hozzácsapásával lefutott?
Hogy fog mögékerülni a kiterjesztés, ha a move_uploaded_file függvénynek kéne utána következnie? Külön if-be tegyem be, hogy ha volt ilyen jellegű változtatás (kiterjesztés levágása), akkor a képtípustól függő kiterjesztést tegye mögé? :F

Sk8erPeter

(#3044) lezso6 válasza Sk8erPeter (#3043) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Hibakezelésre szerintem nem én ajánlottam a módszert, de egyszerűbb szkriptben megteszi ez is. Én amúgy ilyen sok kis

if (hiba) {
return hibakód;
}

sorokat szoktam használni ellenőrzésre, amik függvényen vagy includolt szkripten belül használhatóak. A hibakezelés a függvényt hívó (vagy fájlt includoló) szkriptben történik.

Kiterjesztés visszarakásnál az a legcélszerűbb, hogy levágás előtt a substr() függvénnyel megjegyzed a kiterjesztést, oszt visszarakod amikor kell, így nem kell vele foglalkoznia a szkriptednek, fogalma se lesz róla, hogy milyen kiterjesztésű fájlokkal dolgozik. :)

[ Szerkesztve ]

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#3045) cucka válasza Sk8erPeter (#3043) üzenetére


cucka
addikt

Hibakezelésre az előttem leírt megoldás is jó, de kivételkezeléssel is megoldhatod, ami szerintem valamivel elegánsabb is :)

(#3046) lezso6 válasza cucka (#3045) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Így igaz, az én megoldásom gyakorlatilag ennek a funkcionális (nem OOP) változata, de szvsz egyszerűbb kódban a kivételkezelés csak bonyolít, s semmivel se ad többet. De az tény, hogy elegánsabb. :))

[ Szerkesztve ]

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#3047) Tele von Zsinór válasza kymco (#3035) üzenetére


Tele von Zsinór
őstag

Állítsd át a kapcsolat kódolását utf8-ra.

(#3048) Sk8erPeter válasza lezso6 (#3044) üzenetére


Sk8erPeter
nagyúr

Valóban, akkor lehet, hogy mástól lestem el. De kézenfekvőnek tűnik a változó állapotának nyomonkövetése. Ez miért csak egyszerűbb szkriptekhez jó? Mármint mitől jobb a többi hibakezelő módszer? A változó állapotának követésénél is meg lehet adni, hogy ha az mondjuk 0, akkor legyen "return: false", stb... Tehát akkor végül is ez, amit Te is használsz, elvileg majdnem ugyanaz.

Kiterjesztés kiderítésére a pathinfo() függvényt találtam a legésszerűbbnek, így:

$target_dir = "upload/";
$target = $target_dir . basename( $_FILES['uploaded']['name']);
$akarmivaltozo = pathinfo('$target');
echo 'Kiterjesztés: '.$akarmivaltozo['extension'].'<br />';

Akkor ezt az extension tömböt lehetne rakni a substr() függvénybe, hogy ily módon vágja le a kiterjesztést, így jó?
Vagy mondjuk a

strrpos($target, '.');

is jónak látszik.

_________________

(#3045) cucka: kivételkezelés? :F Ez miben más/jobb, mint a többi hibakezelés? :B

[ Szerkesztve ]

Sk8erPeter

(#3049) lezso6 válasza Sk8erPeter (#3048) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Ja hogy van erre szakosodott függvény? Há' akkor használd azt.
Hibakezelésnek meg használd azt, ami legjobban bevált.

Vagy ha elegánsan akarod megoldani, akkor ezt: Kivételkezelés

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#3050) akopacsi


akopacsi
csendes tag

Sziasztok! Szükségem lenne egy egyszerű webáruházra. (Nincs vevő regisztráció, hanem csak egy katalógus, egy bevásárlókocsi és egy megrendelő űrlap, ahol a megrendelő neve, címe bevihető.) Az OSCommerce messze túl bonyolultnak tűnik a feladathoz, egyszerűbb lesz valami nagyon primitív, saját php kód megírása. Azt szeretném megtudni, hogy milyen megoldást célszerű választani a bevásárlókocsi kezeléséhez? Arra gondolok, hogy érdemes egy külön táblát csinálni, ahol a session azonosítója az elsődleges kulcs, szerepel a sorban a termék neve, a rendelt mennyiség és egy időbélyegző vagy menet közben nem érdemes az egyes tételeket rögzítgetni, hanem egy globális változóban tárolni és a legvégén beírni az adatbázisba? Mi az elterjedt gyakorlat?
(Egyébként azt is megköszönöm, ha valaki tud olyan egyszerű webshop programot, ami erre képes.)

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.