- OLED TV topic
- Kormányok / autós szimulátorok topikja
- Kivégzi a Firewire-t az új macOS verzió?
- Bambu Lab 3D nyomtatók
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- E-book olvasók
- AMD GPU-k jövője - amit tudni vélünk
- TCL LCD és LED TV-k
- Azonnali informatikai kérdések órája
- Melyik tápegységet vegyem?
Aktív témák
-
rt06
veterán
válasz
SektorFlop #2016 üzenetére
ha fetch_array-t hasznalsz, akkor a $sor tombod elemeit sorszamozva ered el
ha mezonev alapjan szeretned, akkor hasznald a fetch_assoc fgv-t (bar azt hiszem, a tablaalias-t akkor sem teszi oda)szerk.: tevedtem, alapertelmezeskent a fetch_array is visszaadja a mezoneveket (is), mint tombindex
-
rt06
veterán
1: eleg naponta frissiteni
2: csinalsz egy script-et (lehet php is), ami kapcsolodik a db-hez es futtatja a query-t, majed ezt a script-et meghivod cron-nal (linux-on), vagy feladatutemezovel (windoze-on)
3: nem lenne jobb megoldas select-nel szamitani az eletkort (amikor nagyon muszaj)? -
rt06
veterán
en olyan megoldast hasznaltam, hogy egyszer taroltam a cikk fejlecet (cim, szerzo, datum, kategoria, ilyesmik) egy tablaban, egy masikban pedig az egyes oldalakat (oldalcim, tartalom, oldalszam), szerintem igy a legtisztabb
jeges: amit fentebb irtam, amiatt a referer hianyanak elitasitasa lehet false positive is
a masik resszel, miszerint a meglete nem elegendo, tokeletesen egyetertek, semmibol nem tart referer-t hamisitani -
rt06
veterán
sajnos nem tudok alterntivat, viszont en a fenti problema miatt nem hasznalom
file letoltest akartam ugy megcsinalni, hogy csak akkor kezdi a file kuldeset, ha a referer a site-on belulrol jott, maskulonben a letolto oldalt mutatja, viszont az emlitett oknal fogva, volt, akinem egyaltalan nem mukodott a dolog, nem tudta letolteni az allomanyokat
nem mernek ra megeskudni, de ugy remlik, a kerio (most mar azt hiszem sunbelt a nevuk) tuzfala tud ilyet, raadasul alapbeallitaskent engedelyezve is volt
-
rt06
veterán
a linkelt algoritmussal nekem az a problemam, hogy mivel a salt az emailcim sha1 hash-ebol keszul, ezert:
- email valtoztatasa problemas lehet
- a salt kizarolag szamjegyeket es a latin abc elso 6 kisbetujet fogja tartalmazni (imho erdemes ott is a teljes karakterkeszletet hasznalni)a kliensoldali ellenorzes jo, mert leveszi a teher egy reszet a szerverrol, viszont semmifele keppen sem ajanlott kizarolag arra tamaszkodni, mivel - mint irtad - pofonegyszeruen kijatszhato*
esetleg vess egy pillantast erre (a jtr tobb, mint ezerszer lassabban tudja torni az ezzel hash-elt jelszavakat, mint a mezei sozott md5 hash-t)
*: a hetekben regisztraltam egy site-ra, feliratokat lehet letolteni
az oldal ingyenes, viszont vannak korlatozasok (kedvencek koze legfeljebb 5 tetel teheto be), amik feloldasahoz vip felhasznalova kell valni, amihez viszont anyagilag kell tamogatni az oldalt
a fenti korlatozas pusztan javascript-tel van megoldva, ami azt jelenti, hogy csupan par masodperc plusz, mig valaki egy ujabb tetelt a kedvencek listahoz, annak ellenere, hogy 5, vagy annal tobb tetel szerepel mar ott
amennyiben hasznalnanak szerveroldali ellenorzest is, ez nem lenne (ilyen egyszeruen) megoldhato -
rt06
veterán
nem maga a komment a problema, amig az az aposztrofokon belul van, nem okoz galibat
az aposztrofokat, idezojeleket kell megfeleloen escape-elnijelszot hash-elni, sozni, megint hash-elni mindenkepp erdemes (akar tobbszor is), de ennel is fontosabb a megfelelo (hosszusagu/bonyolultsagu) jelszo megkovetelese
ilyen celu ellenorzesre en pl szoktam az altalam uzemeltetett rendszereken hasznalni a jtr-t, ami egy jelszotoro program
ha valaki jelszava megbukik (sajnos eleg surun van ami az elso par masodpercben megfejtesre kerul), az vagy kap masikat, vagy allithat be maganak masikat -
rt06
veterán
#!/usr/bin/php -q
<?php
#nem az include-on mulik, hanem mint PazsitZ irta, a lathatosagon
#amit a fuggvenyen kivul hozol letre, az nem latszik a fuggvenyben, s amit a fuggvenyben hozol letre, az nem latszik a fuggvenyen kivul
#erre hasznalhatsz a fuggevnynek atadott parametereket (ha vissza is akarod kapni, mi valtozott a fuggvenyben, akkor cim szerinti atadassal), illetve a fuggvenyek visszateresi erteket
function pluszegy() {
printf( "%d, %d\n", $x, $y ); // 0, 0 - illetve 2 notice, mert itt nem letezik az $x es $y
$x++; // notice, mert itt nem letezik az $x
$y++; // notice, mert itt nem letezik az $y
printf( "%d, %d\n", $x, $y ); // 1, 2
}
function pluszegy_ertek( $x, $y ) {
printf( "%d, %d\n", $x, $y ); // 1, 2
$x++; // 1 -> 2
$y++; // 2 -> 3
printf( "%d, %d\n", $x, $y ); // 2, 3
}
function pluszegy_cim( &$x, &$y ) {
printf( "%d, %d\n", $x, $y ); // 1, 2
$x++; // 1 -> 2
$y++; // 2 -> 3
printf( "%d, %d\n", $x, $y ); // 2, 3
}
function pluszegy_vissza() {
return 5;
}
function pluszegy_vissza_ertek( $x, $y ) {
printf( "%d, %d\n", $x, $y ); // 1, 2
$x++; // 1 -> 2
$y++; // 2 -> 3
printf( "%d, %d\n", $x, $y ); // 2, 3
return $x + $y; // 2+3 -> 5
}
function pluszegy_vissza_cim( &$x, &$y ) {
printf( "%d, %d\n", $x, $y ); // 1, 2
$x++; // 1 -> 2
$y++; // 2 -> 3
printf( "%d, %d\n", $x, $y ); // 2, 3
return $x + $y; // 2+3 -> 5
}
$x = 1;
$y = 2;
printf( "fuggvenyhivas parameter nelkul\n%d, %d\n", $x, $y ); // 1, 2
pluszegy();
printf( "%d, %d\n\n", $x, $y ); // 1, 2
$x = 1;
$y = 2;
printf( "fuggvenyhivas ertek szerinti atadassal\n%d, %d\n", $x, $y ); // 1, 2
pluszegy_ertek( $x, $y );
printf( "%d, %d\n\n", $x, $y ); // 1, 2
$x = 1;
$y = 2;
printf( "fuggvenyhivas cim szerinti atadassal\n%d, %d\n", $x, $y ); // 1, 2
pluszegy_cim( $x, $y );
printf( "%d, %d\n\n", $x, $y ); // 2, 3
$x = 1;
$y = 2;
printf( "fuggvenyhivas parameter nelkul\n%d, %d\n", $x, $y ); // 1, 2
$z = pluszegy_vissza();
printf( "%d, %d, %d\n\n", $x, $y, $z ); // 1, 2, 5
$x = 1;
$y = 2;
printf( "fuggvenyhivas ertek szerinti atadassal\n%d, %d\n", $x, $y ); // 1, 2
$z = pluszegy_vissza_ertek( $x, $y );
printf( "%d, %d, %d\n\n", $x, $y, $z ); // 1, 2, 5
$x = 1;
$y = 2;
printf( "fuggvenyhivas cim szerinti atadassal\n%d, %d\n", $x, $y ); // 1, 2
$z = pluszegy_vissza_cim( $x, $y );
printf( "%d, %d, %d\n\n", $x, $y, $z ); // 2, 3, 5
?> -
rt06
veterán
a fuggvenyen belul nem lathatoak a $dbhost, $dbuser, $dbpass, $dbname valtozok, ezert nem sikerul kapcsolodnod
add at oket parameterkent a ConnectToDb fuggvenynek, pl.:
dbconnect.php
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "images";
?>fuggveny:
<?php
require_once 'dbconnect.php';
function ConnectToDb( $host, $user, $pass, $database )
{
$con = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);
}
....
ConnectToDb( $dbhost, $dbuser, $dbpass, $dbname );
?>esetleg, hogy ne kelljen, csak egy parametert atadnod (szebben nez ki talan), atszervezheted picit a dolgot, pl.:
dbconnect.php
<?php
$db = array();
$db["host"] = "localhost";
$db["user"] = "root";
$db["password"] = "";
$db["database"] = "images";
?>fuggveny.php
<?php
require_once( "dbconnect.php" );
function connectToDB( $db ) {
$dbConnection = mysql_connect( $db["host"], $db["user"], $db["password"] );
mysql_select_db( $db["database"], $dbConnection );
return $dbConnection;
}
$dbc = connectToDB( $db );
?> -
rt06
veterán
válasz
maestro87 #1793 üzenetére
a letoltes.php-ben mit csinalsz pontosan, hogyan adod at a bongeszonek a php file-t?
ha atiranyitast hasznalsz (erre tippelek abbol, hogy tavoli szerveren levo file-okra is hivatkozol), akkor legjobb tudomasom szerint nem tudod megoldani, hogy letoltesre kinalja a file-t, a kliensoldali beallitasoktol fugg, mit akar majd kezdeni vele a bongeszo
jobb megoldas (viszont ez php beallitasoktol fuggoen nem biztos, hogy mukodni fog*), ha readfile-lal kinyomod a file tartalmat, de meg elotte elkuldod a bongeszo fele az alabbi header-eket:
header( "content-type: application/octet-stream');
header( "content-disposition: attachment; filename="{$filename}" );
ahol a $filename valtozo ertelemszeruen a file neve, amilyen neven fel kivanod kinalni mentesre (ez jelenik meg a mentes ablakban, amit persze a user atirhat)ezutan mehet egy
readfile( $file );
ahol a $file valtozo a file eleresi utvonala a filerendszeren (vagy a tavoli szerveren levo file-ra mutato url*)*: amennyiben tavoli szerverrol szeretned readfile-lal megnyitni az allomanyokat, szukseges az allow_url_fopen valtozot on ertekre allitanod a php.ini-ben
bovebbet php.net-en talalsz a readfile es fopen fgv-ek leirasanal
-
rt06
veterán
a latin1-es karakterkeszletben ninscenek meg a magyar abc betui kozul a kovetkezok: őŐűŰ (ezek helyett hullamos teteju o es kalapos u van legjobb esetben)
en mindenkeppen az utf8_hungarian_ci-t javaslom, esetleg ha nem akarsz utf8-at (bar hirtelen otletem nincs ra, miert ne akarna valaki), lehet meg latin2_hungarian_ci
az utf8/latin2 a karakterkodolas (utf-ben van minden jo, koztuk ekezetes magyar betuk is, a latin2, vagy mas neven az iso-8859-2 pedig tartalmazza a kozepeuropai karaktereket, koztuk a magyar ekezetes betuket is)
a hungarian (esetedben a swedish) az arra vonatkozik, hogy rendezesnel mely nyelv abc-je szerint rendezzen
a ci pedig case insensitive-et jelent, vagyis a kis es nagybetuk kozt nem tesz kulonbseget rendezeskor -
rt06
veterán
if ($handle)
{
do
{
$a = fgets($handle);
$b = mysql_real_escape_string($a);
echo $b,"<br>";
mysql_query("INSERT INTO `teszt`(`id`,`teszt`) VALUES('','$a')");
print mysql_error();
}while (! feof($handle));
}
fclose($handle);a kiemelt reszen ne az a, hanem a mysql_real_escape_string fgv-vel megaldott b valtozot hasznald
illetve ha string-be akarsz valtozot beilleszteni, inkabb az alabbi format hasznald (igy akar tombok elemeit is beillesztheted, nem akad ki az idezojelek sokasagan)
$string = "valami {$valtozo} valami mas {$tomb["index"]} meg valami mas";
-
rt06
veterán
hulye vagyok, azt akartam irni (a link arra mutat, nem tudom, miert datediff-et irtam)
viszont ha igy, masodpercre akarod osszehasonlitani, meg kelleni fog szerintem a time_to_sec fgv is
SELECT * FROM table WHERE TIME_TO_SEC( TIMEDIFF( dt1, dt2 ) ) > 180 * 60;
illetve ez is csak akkor jo, ha a dt1 minden esetben kesobbi, mint a dt2
ha ezt nem tudod elore, vagy valtozo, melyik a nagyobb, akkor igy kellene:SELECT * FROM table WHERE ABS( TIME_TO_SEC( TIMEDIFF( dt1, dt2 ) ) > 180 * 60 );
-
rt06
veterán
válasz
Jester01 #1769 üzenetére
eljutottam vegre odaig, hogy kiprobaljam es gyonyoruen mukodik
bar en megtartottam a parent mezot is a left es right melle, mert ugy nem szamottevo a tabla helyfoglalasa, cserebe sokkal egyszerubb a kozvetlen gyermekek lekerdezesemegegyszer koszonom, pont erre volt szuksegem
-
rt06
veterán
Hi!
van egy site, ahol starcraft2-es replay-eket lehetfeltolteni, s azokat ligakba sorolni
a ligak tabla a kovetkezo keppen nez ki:
id: int, primary key
parent: int, hivatkozas a ligak tabla egy masik sorara
name: a liga nevea replayek tabla pedig tartalmaz egy mezot, melyben megadhato, hogy az adott repaly mely ligaba tartozik
ez eddig szep, mukodik is, amit szeretnek megoldani, hogy ha bemegyek egy ligaba, akkor ne csak a kozvetlenul ahhoz rendelt replay-eket lassam, hanem emellett az osszes gyermekehez tartozot is
kerdesem, hogy erre mi a legszebb megoldas, illetve ezt php, vagy sql oldalon illik megcsinalni?
sajnos, amik eddig eszembe jutottak, mind eleg csunya megoldasok:
- lekerni rekurzivan az adott liga osszes gyermekehez tartozo replay-eket
- lekerni rekurzivan az adott liga osszes gyermeket, majd union select
- adott mennyisegu join a ligak tablara, es lekeresnel a feltetelbe valami olyasmi, hogy WHERE parent1.parent = X OR parent2.parent = X... (bar ez rendkivul gusztustalan)
- adatbazisban string-kent, osszefuzve tarolni az osszes szulot (ez lekereskor egyszerubb, itt az adatbazis nem tetszik)szoval melyik ut kovetendo? esetleg valami mas?
segitsegeteket elore is koszonom,
Udv: VladimirR -
rt06
veterán
válasz
Speeedfire #1746 üzenetére
az a gond, hogy ha nem adod meg, mi alapjan kapcsolja ossze a tablakat, akkor (ha jol remlik, egy descartes szorzatot kapsz (minden sort osszekapcsol minden sorral)
ket modon lehet ezen segiteni (a join-oknal es a felteteleknel hasznalt mezonevek csak talalgatasok, oda ertelemszeruen helyettesitsd be a kivant mezok neveit):
SELECT
szapar_tartalom.id, szapar_tartalom.cim, szapar_tartalom.tipus,
szapar_tartalom.fid, szapar_tartalom.szoveg, szapar_tartalom.rovid,
szapar_tartalom.datum, szapar_alias.eng, szapar_tipus.nev, szapar_felhasznalo.fnev
FROM `szapar_tartalom`
INNER JOIN szapar_alias ON szapar_alias.tartalom_id = szapar_tartalom.id
INNER JOIN szapar_tipus ON szapar_tipus.id = szapar.tipus_id
INNER JOIN szapar_felhasznalo ON szapar_felhasznalo.id = szapar_tartalom.felhasznalo_id
WHERE ...vagy
SELECT
szapar_tartalom.id, szapar_tartalom.cim, szapar_tartalom.tipus,
szapar_tartalom.fid, szapar_tartalom.szoveg, szapar_tartalom.rovid,
szapar_tartalom.datum, szapar_alias.eng, szapar_tipus.nev, szapar_felhasznalo.fnev
FROM `szapar_tartalom`, szapar_alias, szapar_tipus, szapar_felhasznalo
WHERE szapar_alias.tartalom_id = szapar_tartalom.id
AND szapar_tipus.id = szapar.tipus_id
AND szapar_felhasznalo.id = szapar_tartalom.felhasznalo_id
...
Aktív témák
Hirdetés
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Kertészet, mezőgazdaság topik
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- exHWSW - Értünk mindenhez IS
- Óvodások homokozója
- PlayStation 5
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Vigneau interaktív lokálblogja
- NASsoljunk: ZyXEL NSA-310 és az FFP
- OLED TV topic
- További aktív témák...
- MSI CYBORG 15 A13V
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- KÖZEL FÉLÁR! Apple Magic Keyboard, Mouse, Trackpad, Pencil, Smart Magic Keyboard Folio, Watch szíjak
- AKCÓÓÓ!!! Panasonic CF-XZ6 AIO all-in-one laptop tablet 2k touch i5-7300u speciális ütésálló
- BESZÁMÍTÁS! ASRock B250 i5 7400 16GB DDR4 512GB SSD GTX 1660 SUPER 6GB Rampage Everest 500W
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest