Hirdetés

2024. június 10., hétfő

Gyorskeresés

Útvonal

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

Hozzászólások

(#14801) rootkiller


rootkiller
őstag

Azt gondolom, hogy még két dolgot kell megoldanom, és készen vagyok!

Az egyik az, hogy a főoldalra lehessen flyereket vagyis képeket felrakni. Az hogy miképpen tudok fájt feltölteni az megvan, ollóztam egy ilyen kódot:

<form action='uppic.php' method='post' enctype='multipart/form-data'>
<label for='file'>Filename:</label>
<input type='file' name='file' id='file'><br>
<input type='submit' name='submit' value='Feltöltés'>
</form>

illetve

<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];

}
?>

Azt szeretném tudni hogy tudnám megoldani hogy a kép egy bizonyos mappába mentődjön. Innentől kezdve bele kéne írni az adatbázisba a kép elérési útját.

A másik probléma azaz adatbázis felületre a bejelentkezés lesz, de ez majd csak később, ha a flyeres dolog kész!

Artengo TR 990 Pro

(#14802) Dave-11 válasza rootkiller (#14801) üzenetére


Dave-11
tag

Meghívsz egy move_uploaded_file() függvényt, valahogy így:
move_uploaded_file($_FILES['file']['tmp_name'], 'kepek/' . $_FILES['file']['name']);
Aztán fogod és egy táblába feltöltöd, mondjuk egy img_url rekordba a 'kepek/' . $_FILES['file']['name'] elérési útvonalat.

Akár már a legelején is egy stringbe gyúrhatod őket:
$new_file_path = 'kepek/' . $_FILES['file']['name'];
És akkor már csak így írod:
move_uploaded_file($_FILES['file']['tmp_name'], $new_file_path);
Meg persze akkor már az adatbázisba is csak ezt a változót küldöd fel :)

:D Semmi :D

(#14803) Tele von Zsinór válasza Dave-11 (#14802) üzenetére


Tele von Zsinór
őstag

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.

[ Szerkesztve ]

(#14804) rootkiller válasza Tele von Zsinór (#14803) üzenetére


rootkiller
őstag

Igazad van!

Másrészről úgy gondoltam hogy lesz neki külön mappa ahova csak ezek mennek, másrészről korlátozni kéne hogy jpg png only mehessen fel.

Artengo TR 990 Pro

(#14805) nameklako válasza nameklako (#14793) üzenetére


nameklako
újonc

Köszönöm mindenkinek aki eddig hozzászólt legalább látom hogy mi fán terem a dolog a PHP-ban.
Lehet, hogy valahogy elkezdem és majd ha már nagyon nem megy akkor segítséget kérek.
köszi még egyszer a hozzászólásokat.

(#14806) Dave-11 válasza Tele von Zsinór (#14803) üzenetére


Dave-11
tag

Hát jó persze, de ő csak annyit kérdezett, hogy a feltöltött fájlt hogyan helyezze át más mappába, meg hogyan tárolja el az URL-t az adatbázisban, a fájltípus ellenőrzés meg evidens, azt úgy gondoltam hogy meg tudja oldani.
Azt hogy érted, hogy ha felmegy az index.php fájl akkor már is nem a tiéd a szerver. Attól még annak a "szabotálónak" tudnia kell az adatbázis használatához szükséges hozzáférési adatokat nem? Vagy esetleg arra gondolsz hogy olyan kódot írt bele abba az index.php-ba, ami kitörölheti a vele egy mappában lévő összes fájlt és mappát? Mert akkor igen, az tényleg veszélyes, ha nincs lekezelve a kiterjesztés.
Megoldásként akkor még akár azzal is meg lehet spékelni a kódot, hogy '/' karakterenként feldaraboljuk a fájl nevét egy tömbbe, és annak csak az utolsó elemét tekintjük fájlnévnek, nem? Gondolok itt az explode() függvényre.

[ Szerkesztve ]

:D Semmi :D

(#14807) Tele von Zsinór válasza Dave-11 (#14806) üzenetére


Tele von Zsinór
őstag

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.

(#14808) Dave-11 válasza Tele von Zsinór (#14807) üzenetére


Dave-11
tag

Tele von Zsinór: "A teljesen biztos megoldás az, ha te generálod a fileneveket."

Ja igen, gondolom itt arra gondolsz, hogy feltölthetnek akár kettő vagy több ugyanolyan nevű fájlt, és az bezavarhat. Akkor erre meg lehet olyat csinálni, hogy mondjuk a fájl neve elé hozzáfűzzük a feltöltés dátumát és időpontját, meg rárakunk egy MD5-ös titkosítást az így kapott stringre.

:D Semmi :D

(#14809) Peter Kiss válasza Dave-11 (#14808) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Az MD5 nem titkosít.

(#14810) Dave-11 válasza Peter Kiss (#14809) üzenetére


Dave-11
tag

Bocsi, akkor átkódolni :DDD Így jobb?

:D Semmi :D

(#14811) rootkiller


rootkiller
őstag

Jelenleg azaz eset állt elő, hogy bejelentkezéskor meghívódik egy login.php, amely a $_POST['user'] -ből előállít egy $_SESSION['user']-t. Nos, később mikor a jelszómódosításnál meghívódik a changepw.php akkor ezt a hibát kapom:

Notice: Undefined variable: _SESSION in

Artengo TR 990 Pro

(#14812) Sk8erPeter válasza rootkiller (#14811) üzenetére


Sk8erPeter
nagyúr

Könyörgöm, használd már azt a nyomorult Google-t, folyamatosan kérdezel ilyen hülyeségeket, amiknek a megoldását nagyjából 10 másodperc alatt meg lehetne találni, de még ehhez is lusta vagy... :W Most komolyan, neked gyorsabb fórumra bepötyögni a hsz.-t 30 másodperc alatt, aztán várakozni, mint rátalálni a megoldásra 10 másodperc alatt?
A hibaüzenetet bepötyögve egyből rátalálhatsz a megoldásra, úgyhogy most házi feladatként rádbízom, hogy megtaláld. Drukkolok hozzá.

Sk8erPeter

(#14813) Speeedfire


Speeedfire
nagyúr

Gitlab ci-ről van valakinek tapasztalata? Gitlabot használok, gondoltam lehet jó lenne akkor az ő ci rendszerűket használni. A másik alternatíva a jenkins lenne.
Vélemények?

[ Szerkesztve ]

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#14814) PumpkinSeed


PumpkinSeed
addikt

function szamlalo_read()
{
global $all_viewers;
$fp = fopen ("latogatok_szama.txt",'r');
$all_viewers = fgets($fp,999);
fclose($fp);
}
function szamlalo_write($ertek)
{
$fp = fopen ("latogatok_szama.txt",'w');
$viewers = $ertek;
$viewers++;
fwrite($fp, $viewers);
fclose($fp);
}
function szamlalo_img($szam)
{
switch($szam)
{
case 0: echo "<img src='img/0.gif'>"; break;
case 1: echo "<img src='img/1.gif'>"; break;
case 2: echo "<img src='img/2.gif'>"; break;
case 3: echo "<img src='img/3.gif'>"; break;
case 4: echo "<img src='img/4.gif'>"; break;
case 5: echo "<img src='img/5.gif'>"; break;
case 6: echo "<img src='img/6.gif'>"; break;
case 7: echo "<img src='img/7.gif'>"; break;
case 8: echo "<img src='img/8.gif'>"; break;
case 9: echo "<img src='img/9.gif'>"; break;
}
}
szamlalo_read();
szamlalo_write($all_viewers);
echo "<h1>Eddigi látogatók száma:</h1><p class='section_six'>";
str_pad($all_viewers, 6, '0', STR_PAD_LEFT);
$osztas = 1000000;
$osszeg = 0;
do{
$eredmeny = $all_viewers / $osztas;
settype($eredmeny,"integer");
szamlalo_img($eredmeny);
$osszeg = $osszeg + ($eredmeny * $osztas);
$osztas = $osztas / 10;
}while($osztas != 1);
szamlalo_img($all_viewers - $osszeg);
echo "</p>";

Van egy ilyen kódrészletem ami annyit tesz, hogy oldalfrissítés számol (a változónevekkel nem kell törödni, nem reális neveket takarnak, csak éppen amit kitaláltam), és ezeket kicseréli egy megadott képre amit a számot takarja. Az a probléma, hogy

99nél így nézz ki az output amit képekből látok:

0000099

és amikor átvált 100-ra akkor ezt látom:

00001

Az lenne a kérdésem, hogy mi lehet a hiba ebben az esetben. Az biztos, hogy nem fájlból való beolvasánál lesz a probléma, hanem a számok képre való kicserélésénél lesz.

----

Illetve még az is kérdés, hogy nincs valami jsfiddle oldalhoz hasonló ahova php-t lehet feltenni?

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#14815) biker válasza PumpkinSeed (#14814) üzenetére


biker
nagyúr

az egészet felejtsd el, ha egyszerre ketten akarnak majd bele írni, már gond lesz
+ nekem volt ilyen számlálóm, állandóan nullázódott random időnként, gondolom valami fread hiba miatt, és akkor 0áról indult, gagyi ez a file írogatós számláló

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#14816) Sk8erPeter válasza PumpkinSeed (#14814) üzenetére


Sk8erPeter
nagyúr

"nincs valami jsfiddle oldalhoz hasonló ahova php-t lehet feltenni?"
Olyasmi:
http://ideone.com/

Sk8erPeter

(#14817) PumpkinSeed válasza biker (#14815) üzenetére


PumpkinSeed
addikt

Na szóval, itt a kódrészlet értelmesen.

Viszont akkor átteszem, hogy adatbázisba tárolja le a következő úgyis az lesz, hogy a látogató ip címeit kell letárolni egy adatbázisban.

Viszont itt most a probléma nem ezzel van, hanem, hogy bug van a programban amely a main függvényben helyezkedik el ha lehet így mondani azaz nem a függvényekben. Ezen belül vagy azzal, hogy az $all_viewers-t rosszul bontom fel úgy, hogy mindig csak egy karaktert vizsgáljon, vagy a megfeleltetéssel, nem tudom.

Visszatérve az előzőre, ha nem is így csinálom akkor még adatbázissal tudom tárolni, gondolom nincs más megoldás?!

(#14816) Sk8erPeter

Köszönöm ez tökéletes.

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#14818) biker válasza PumpkinSeed (#14817) üzenetére


biker
nagyúr

A vegen a bohockodassal rontod el, amikor osztod millioval, kerekited, felszorzod
Bullshit
Beirod 1 2 45 akarmi, aztan ezzel szamolsz, majd ha kisebb mint sza 5 nullat irsz ele, ha kisebb mint ezer negyet stb

Ez nem elég?
a switch is egy felesleg, hiszen már megvan, az is, hogy előbb átadod az egyik változót, majd hozzárendeled másikhoz, majd azt növeled.

$ertek = fopen("szamlalo.txt", "r") or die("nem sikerült");
while (!feof($ertek))
{
$karakter = fgetc($ertek);
if ($karakter == "")
{
//semmi
}
else
{

echo "<img src=images/";
echo $karakter;
echo ".gif border=0>";
$szam .= $karakter;
}
}
fclose($ertek);
$ertek = fopen("szamlalo.txt", "w") or die("nem sikerült");
$szam += 1;
fputs ($ertek, $szam);
fclose($ertek);

[ Szerkesztve ]

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#14819) Sk8erPeter válasza PumpkinSeed (#14817) üzenetére


Sk8erPeter
nagyúr

Szívesen, de azért úgy rakd fel ideone.com-ra, hogy az működjön is. :) Például kezdd a szokásos <?php nyitótaggal, meg nyilván helyi fájlokat ne próbálj megnyitogatni vagy írogatni (fopen, fwrite és társai felejtős), mert nem fog menni. :) (Ahogy jsFiddle-nél is hiába hivatkozol képforrásként helyi fájlra, nem fog menni (hacsak nem a jsFiddle szerverén valóban ott lévő fájlt include-olod).) Ott például helyettesítheted valami példakimenettel az adott függvényt.

[ Szerkesztve ]

Sk8erPeter

(#14820) fordfairlane válasza PumpkinSeed (#14817) üzenetére


fordfairlane
veterán

Miért raktad egy fájlba a számláló léptetést a kiíratással? Miért globális változót használsz a beolvasáskor? Mi az a bonyolult osztás a kiíratásnál? És akkor már azt a "main()" függvény szerű kódrészt is függvénybe rakhatod. Akár lehet main a függvény neve. :)

[ Szerkesztve ]

x gon' give it to ya

(#14821) PumpkinSeed válasza fordfairlane (#14820) üzenetére


PumpkinSeed
addikt

Az első kérdést nem nagyon tudtam értelmezni, de úgy van ha lépteti akkor azonnal menti a fájlba, őszintén nem tudok rá válaszolni. Attól féltem, hogyha a "program" futása véget ér akkor a változóban lévő érték elvész, ezért azt egyből mentem.

Beolvasáskor szuperglobális változót használok azért, mert az első verzióban még úgy volt, hogy mindenhol azt fogom használni bele értve a szamlalo_write() függvényt is. Később ez változott.

A bonyolult osztás az egy fail! :D Ugyanis a fájlból be lehetne olvasni karakterenként is, de én inkább beolvastam az egész sort, és ennek köszönhetően fel kellett osszam a beolvasott tartalmat számjegyekre.

A "main()" függvényrészt csak azért neveztem el main()-nek mert máshogy nem tudtam rá hivatkozni. :)

(#14819) Sk8erPeter

Igaz, csak most gyors bemásoltam azt ami a fórumon is bent van. Amúgy egy ilyen honlapon meddig tárolódnak az ilyen kódok?

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#14822) Sk8erPeter válasza PumpkinSeed (#14821) üzenetére


Sk8erPeter
nagyúr

Fogalmam sincs, meddig tárolják. Eddig ritkán láttam ott 404-et, az valszeg amiatt volt, mert a szerző eltávolította. De lehet, hogy írják a honlapon a max. tárolási időt, keresd meg.
Amúgy már akartam kérdezni, miért játszadozol mindig fájlba írogatásokkal, abból olvasással? Ez a látogatószámlálósdi csak játék, még mindig a fájlba írogatást, olvasást gyakorolgatod? Vagy mi a célod vele?

Sk8erPeter

(#14823) fordfairlane válasza PumpkinSeed (#14821) üzenetére


fordfairlane
veterán

Az első kérdést nem nagyon tudtam értelmezni, de úgy van ha lépteti akkor azonnal menti a fájlba, őszintén nem tudok rá válaszolni.

Ez világos, de a kiíratás miért ide került? A számlálót akár többször is megjelenítheted az oldalon, vagy változhat a mérési metódus, pl. azáltal, hogy nem letöltést számoltatsz, hanem munkamenet indítást.

Vagy, ahogy az általában lenni szokott, a számlálót nem a látogatónak kell megjeleníteni, hanem az oldal adminisztrátorának, hiszen neki kell ismerni a forgalmi adatokat. Tehát a számláló léptetést, és a számláló állapotának megjelenítését érdemes különválasztani.

[ Szerkesztve ]

x gon' give it to ya

(#14824) PumpkinSeed válasza Sk8erPeter (#14822) üzenetére


PumpkinSeed
addikt

Lusta vagyok adatbázissal szenvedni (létrehozni, szenvedni az undorító karakterkódolással (amit nagyon gyűlölök)), a könyvben még ténylegesen nem tartok ott, de már olvasgattam bele, és ameddig nem tartok ott ténylegesen addig nem is akarom használni. :)

(#14823) fordfairlane

Ja értem már mire gondolsz. :)

A feladatban ez volt megadva, hogy az utolsó oldalon jelenítsek meg egy számlálót és ilyen képekkel jelenítsem meg. Ebben a feladatban az oldalletöltést kell számolni, majd a következőbe kell úgy átírni, hogy munkamenet alapján és azt naplózni is kell.

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#14825) Sk8erPeter válasza PumpkinSeed (#14824) üzenetére


Sk8erPeter
nagyúr

"Lusta vagyok adatbázissal szenvedni (létrehozni, szenvedni az undorító karakterkódolással (amit nagyon gyűlölök))"
Ha a karakterkódolás szenvedés, akkor valamit eddig rosszul csináltál. Leírhatnád, hogy csinálod, és biztos kiszúrjuk a hibát.

- PDO-val adatbázishoz kapcsolódás, meg a többi alapvető dolog itt van, Tele von Zsinór kolléga cikkében: http://maerlyn.eu/2011/12/03/pdo.html.
Ott van egyből az elején, már a kapcsolódás után:
SET NAMES UTF8
Magyarul itt a kapcsolat kódolását egyből UTF-8-ra állítod.
- A fájljaid karakterkódolása is legyen UTF-8 without BOM, ezt Notepad++-ban nagyon könnyen tudod ellenőrizni.
- A meta tagek is lehetőleg így legyenek beállítva a <head>-részben.
- A HTTP headert pedig módosítsd PHP-vel így még mindenféle kimenet előtt:
header('Content-Type: text/html; charset=utf-8');
- Ezenkívül az adattábláid is legyenek UTF-8-as karakterkódolásúak (collation), valamelyik utf8_ kezdetű ezek közül, amelyik kell.

Igazából ennyinek elégnek kellene lennie, ha valamit nem felejtettem ki a listából.

Sk8erPeter

(#14826) PumpkinSeed válasza Sk8erPeter (#14825) üzenetére


PumpkinSeed
addikt

Na én ezt nem akarom minden egyes gyakoroló feladatnál megcsinálni. :D

Amúgy a kódolást így szoktam megoldani (nem tudom, hogy ez jó-e):

$text['title']=utf8_encode($text['title']);

[ Szerkesztve ]

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#14827) fordfairlane válasza PumpkinSeed (#14826) üzenetére


fordfairlane
veterán

Nem jó. Le lett írva, mi a jó.

Adatbázis: Legyen minden UTF8.
Alkalmazás kiszolgáló: Nincs teendő, csak a mysql kapcsolat inicializálásnál legyen beállítva SET NAMES UTF8.
Kliens: meta tag charset=UTF8

Ez a konvertálgatás csak hibákat szül.

[ Szerkesztve ]

x gon' give it to ya

(#14828) Tele von Zsinór válasza PumpkinSeed (#14821) üzenetére


Tele von Zsinór
őstag

Pici fogalmi hiba: a superglobalok a $_GET, $_POST, $_REQUEST, $_SERVER, stb. tömbök. Azért superglobalok, mert nem kell importálnod őket függvényekbe, mindenütt elérhetőek korlátozás nélkül.

Amire te gondolsz (és amit használsz) az a sima global változó, ezt minden egyes függvénybe külön kell behúznod.

(#14829) PumpkinSeed válasza Tele von Zsinór (#14828) üzenetére


PumpkinSeed
addikt

Én azt hittem, hogy pont fordítva van és a global kulcsszóval megadott változó a szuperglobális, a $_GET stb. pedig a globális, de akkor jó, hogy ezt is tudom most már.

(#14827) fordfairlane
Értem, ezt nem tudtam ezért kérdeztem meg. :)

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#14830) trisztan94


trisztan94
őstag

Hogyan tudom csekkolni, hogy egy változó értéke egyenlő-e egy asszociatív tömb indexével?

pl

tömb:

Array
(
[19] => Y
[page_1] => Y
[20] => N
[page_2] => N
[21] => Y
[page_3] => Y
[22] => Y
[page_4] => Y
[23] => N
[page_5] => N
)

(csomó mindent kiszedtem most, ez print_r output)

változóm értéke:

$valtozo = "page_5";

tehát azt kellene ellenőrizni, hogy valtozo egyezik-e az egyik indexxel.. Lehet egyáltalán ilyet?

Szerk:

Megoldva, nagyon józan paraszti ésszel:

if ($data[$pageID] !== "N") {}

[ Szerkesztve ]

https://heureka-kreativ.hu

(#14831) Sk8erPeter válasza PumpkinSeed (#14826) üzenetére


Sk8erPeter
nagyúr

Nem, nem jó. Ha ilyesmikkel játszadoztál eddig, nem csodálom, hogy szívásnak érezted az egészet. Részletesen felsoroltam a teendőket ahhoz, hogy az UTF-8-karakterkódolással (és így a mindenféle nyelvben megtalálható specifikus karakterekkel, ékezetekkel, és egyéb, speciális karakterekkel) ne legyen problémád.

"Na én ezt nem akarom minden egyes gyakoroló feladatnál megcsinálni. :D"
Ezt remélem, csak viccnek szántad. :D Ne már. Legegyszerűbb módon legyen egy vagy több fájlod, amiben mindenféle ilyen lépést megcsinálsz, és ezeket egyszerűen include-old mindig az index.php-dban, és kész.
Ezen fájlok valamelyikében kiküldöd az UTF-8-as fejlécet (a header() fv. mutatott használatával), máshol megnyitod a kapcsolatot az adatbázissal (ezt is úgy, hogy már a kapcsolat elején beállítod az UTF-8-karakterkódolást, ahogy írtam; hogy singleton-mintán keresztül kommunikálsz az adatbázissal, ami esetleg nehezíti a unit testet, vagy más, az tök mindegy most ebben a fázisban még, mivel valszeg azt sem tudod, mi az a singleton vagy a unit test). Az előző step-by-step útmutató szerintem eléggé világos.

A fájljaidnak alapértelmezetten amúgy is UTF-8 without BOM-kódolásúnak kellene lenniük, egyszerűen az általad használt fejlesztőeszközben állítsd be (bár a fejlesztőkörnyezeteknél ez az alap, csak az egyszerűbb, Notepad++-szerű szövegszerkesztőknél szokott default lenni az ANSI, mármint Windows-on), hogy mindig UTF-8 without BOM-kódolású fájlokat hozzon létre.

Az adatbázisban is érdemes (szerintem) alapértelmezettre állítani valamelyik utf8_ kezdetű collationt.

Nem hiszem, hogy ezek olyan bonyolult lépések lennének. Hidd el, hogy az összhaszon nagyobb lesz vele, mintha lusta vagy egyszer ezt az utat végigjárni. Például akkor megtanulsz adatbázist kezelni, és nem bohóckodsz fájlokba írogatással és azokból olvasással olyan műveletek esetén, amiket illene adatbázissal elvégezni.

Adatbázis-kezelési ismeretek nélkül manapság egy fejlesztő akár éhen is halhat.

[ Szerkesztve ]

Sk8erPeter

(#14832) Sk8erPeter válasza trisztan94 (#14830) üzenetére


Sk8erPeter
nagyúr

Hogy ne lehetne már ilyet? :O

Javaslom, felejtsd el ezt a kutyult lekérési stílust, hogy asszociatív tömb és numerikus tömb keverve van (mysqli_result::fetch_all(MYSQLI_BOTH) vagy PDOStatement::fetch(PDO::FETCH_BOTH), PDO-nál utóbbi a default, mysqli-nél a MYSQLI_NUM).
Döntsd el, melyikre van szükséged, és ragaszkodj ahhoz. Valószínűleg a MYSQLI_ASSOC vagy PDO::FETCH_ASSOC fog kelleni legtöbbször. Akkor használd azt, csak indokolt esetben kutyuld a tömböt.

[ Szerkesztve ]

Sk8erPeter

(#14833) trisztan94 válasza Sk8erPeter (#14832) üzenetére


trisztan94
őstag

Jelen esetben sem MySQLi-t, sem PDO-t nem tudok használni. Ez egy másik csapat összegányolt mocsadéka, amit nekem kell most működésre bírnom. Megrendelő azt kérte, hogy holnap-holnapután indulhasson el a dolog, amint elindult rögtön újraírjuk nulláról, normálisan.

PostgreSQL lekérdezések vannak, pg_fetch_array meg társaik. Mondjuk igen, elég ótvar a tömbözés, de az egész így van írva, nincs lelki erőm átírogatni mindent.

https://heureka-kreativ.hu

(#14834) Sk8erPeter válasza trisztan94 (#14833) üzenetére


Sk8erPeter
nagyúr

Ja értem, na jó, ez mentségedre szolgál. ;] (Csak a kérdés első felére nincs mentség. :DDD)

Sk8erPeter

(#14835) trisztan94 válasza Sk8erPeter (#14834) üzenetére


trisztan94
őstag

Késő van, stressz van, mert jön a határidő. Muszáj volt kérdeznem, mert nem nagyon van időm akármivel is bénázni (sőt, PH!-zásra sem lenne időm :DDD), de mire leírtam meg is oldottam. Nagyjából. :D

[ Szerkesztve ]

https://heureka-kreativ.hu

(#14836) Sk8erPeter válasza trisztan94 (#14835) üzenetére


Sk8erPeter
nagyúr

Hát igen, nem árt, ha néha az ember gondolkodik. :DDD Amúgy hidd el, ha néha elakadsz, akkor jót tesz egy 5 percnyi szünet, még akkor is, ha kapkodás van (tudom, milyen az), meg az, hogy leírod magadnak papírra az akár alapvető feladatot, és evidens dolgok is eszedbe fognak jutni, és utána a homlokodra b@szol, hogy ez hogy nem jutott eszedbe.

Sk8erPeter

(#14837) PumpkinSeed válasza Sk8erPeter (#14831) üzenetére


PumpkinSeed
addikt

Már régóta tervezem, hogy kicsit kiegészítem pár ilyen PHP fájlal a honlapkészítés segédlet mappámat, de úgy érzem most már érdemes lesz belekezdeni. :)

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#14838) Sk8erPeter válasza PumpkinSeed (#14837) üzenetére


Sk8erPeter
nagyúr

Mindenképpen.

Sk8erPeter

(#14839) trisztan94 válasza Sk8erPeter (#14838) üzenetére


trisztan94
őstag

;] :C

Ezen jót mosolyogtam, pedig tiszta ideg vagyok.

[ Szerkesztve ]

https://heureka-kreativ.hu

(#14840) moltam88 válasza trisztan94 (#14830) üzenetére


moltam88
tag

A megoldásodban, ha a $data tömbben nem létezik a $pageID által meghatározott index, akkor a PHP notice-t dob (ettől még működni fog a dolog, de nem ez a legszebb megoldás).

A kérdésre a konkrét válasz, vagyis a következőképpen lehet megnézni, hogy egy tömbben létezik-e adott index-ű elem:

isset($data[$pageID])

vagy

array_key_exists($pageID, $data).

Ebben az esetben tehát a legjobb megoldás így ellenőrizni:

if (isset($data[$pageID]) && $data[$pageID] !== "N") {} (persze a konkrét esetben lehet nem erre kell vizsgálni, de a lényeg, hogy ilyenkor célszerű az isset()-et használni)

[ Szerkesztve ]

(#14841) Speeedfire válasza Speeedfire (#14813) üzenetére


Speeedfire
nagyúr

Végül a jenkins maradt, elég jól működik.
Annyi kérdésem lenne azoktól akik használtak/beállítottak már ilyet, hogy megoldható-e az, hogy távoli gépre pakolja ki a kész build-et?
Adott 3 szerver: 1 homokozó ezen van nagyon sok hasznos dolog, 1 teszt és 1 éles webszerver. Jobb szeretném ha a homokozó nyomná ki a kész buildeket, ne kelljen 2 helyen is a jenkinst karbantartani.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#14842) Soak válasza Speeedfire (#14841) üzenetére


Soak
veterán

Miert nem bamboo? Az ujban mar nagyon egyszeru deploy kornyezeteket configolni, tavoli gepre is.

(#14843) Pulsar


Pulsar
veterán

sziasztok,

van egy mysql adatbázisom, amiben van két érték. Ezt a két értéket szeretném egy nagyon egyszerű grafikonon megjeleníteni.
Nincs valakinek egy példa programja a kiinduláshoz?

(#14844) Speeedfire válasza Soak (#14842) üzenetére


Speeedfire
nagyúr

Opensource megoldásokat kezdtünk anno nézni a többi fejlesztővel, így lett gitlab és jenkins. A gitlab-ci is érdekes lett volna, de csak debian alatt megy, nekünk pedig vegyes a szerverpark.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#14845) trisztan94 válasza Pulsar (#14843) üzenetére


trisztan94
őstag

[link]

https://heureka-kreativ.hu

(#14846) Pulsar válasza trisztan94 (#14845) üzenetére


Pulsar
veterán

köszönöm! :R
Abba esetleg tudnál még segíteni, hogy ne csak napok legyenek grafikonba, hanem óra és perc is, mert jelenleg elég bután néz ki :)
http://188.143.120.175/index.html

(#14847) PumpkinSeed


PumpkinSeed
addikt

Vannak ezek a $_SERVER['REMOTE_ADDR'] meg társai szerkezetek amelyeknek elvben IP címet kellene visszaadniuk. Na nekem egyáltalán nem ad vissza IP címet hanem egy ilyennel kínál meg:

::1

Illetve var_dump-al megtekintve:

string(3) "::1"

Ez olyan mintha IPv6-os címet akarna használni.

Miért van ez illetve milyen IP cím lekérő szerkezetet érdemes használni?

[ Szerkesztve ]

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#14848) fordfairlane válasza PumpkinSeed (#14847) üzenetére


fordfairlane
veterán

Ez az IPv6-os localhost.

x gon' give it to ya

(#14849) PumpkinSeed válasza fordfairlane (#14848) üzenetére


PumpkinSeed
addikt

Akkor hogyan tudom megadni, hogy ne IPv6-os címet adjon vissza outputként?

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#14850) Tele von Zsinór válasza PumpkinSeed (#14849) üzenetére


Tele von Zsinór
őstag

Ne v6-on kérd az oldalt. Modern oprendszereken a localhost ::1-re mutat, használd a 127.0.0.1-et (vagy szerkeszd a hosts file-odat).

Útvonal

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