Html-, css- és php-help

Jelentkezz be a hozzászóláshoz.

Malakai
#18932
Annak úgy mûködnie kell, hogyha a $php_valtozo-val összeilleszve a string egy hiba nélküli regex.
Ha egy üres array-t kapsz vissza, akkor szimplán nincs találat. Ha kiveszed a $cucc-ot, akkor a függvénynek 1-et kell visszadnia, ha van egy találat, vagy 0-át, ha nincs.

(\__/) ( X.x) ( } . { )

Agy Halott
#18931
Ez nagyon zsir tanacsok, koszonom.

A masodik kerdesre biztos tudod valaszt segitenel legy szives?
Malakai
#18930
Eleve érdemesebb ha lehet minél inkább szûkebbre venni a regex lehetõségeit, tehát a "bármilyen karakter akárhányszort" kerülni, mégha lazy multiplier, akkor is (itt még az se volt).

A másik, hogy viszont a verziód jó lenne, csak éppen még rá kell érezz a helyes regex syntaxra. 😊
A piros rész helyesen: (<0-9>{1,9}\.<0-9>)
Amit [] közé teszel ott a megadott karakterekbõl próbál válogatni, néhány X-tõl Y-ig shorthand módszerrel, ilyen a 0-9, vagy az A-Z, stb. A {}-ben lévõ számok egy x és y közti meghatározott multiplier, tehát a számokat akarod többször. Ha csak egyet akarsz felesleges a {1}, mivel ha nem adsz semilyen multipliert, akkor egyszer matcheli csak a []-ben lévõ valamely karaktert.

És ha tényleg pontot akarsz, akkor azt máshol se felejtsd el escapelni.

És egy plussz tipp, ha több / jelre számítasz, mint @, akkor akkor a kezdõ és végsõ / jelet cseréld @-re, ugyanúgy mûködik.

(\__/) ( X.x) ( } . { )

Agy Halott
#18929
LOL ugy konnyu de sajnos nem en hatarozom meg a stringet, egyebkent rajottem:

preg_match('/<strong>Oldal: <\/strong><a href=".\/oldal.php">([0-9{1,9}.<0-9>{1}])/', $out, $szam);




Masik kerdes, mar kicsit nehezebb:

preg_match('/<div><span>cucc: <\/span><a href=".\/cucc.php">'.$php_valtozo.'</a><\/div>/', $out, $cucc);



Miert nem mukodik ez az osszeallitas? Szoval php valtozot teszek a preg_match-ba am a $cucc erteke ures lesz.
Olvastam a php.net-en, hogy igy kell kulso valtozot betenni, de megsem mukodik. Miert?
Lazarus
#18928
Rakj mögé és lesz 😊
Agy Halott
#18927
Hogyan kaphatom meg az alabbi stringbol a zold szinnel jelzett reszt?

STRING:

<strong>Oldal: </strong><a href="./oldal.php">135.7



IGY PROBALKOZOM:

preg_match('/<strong>Oldal: <\/strong><a href=".\/oldal.php">(.*?)/', $out, $szam);



EZT EREDMENYEZI:

array(1) {
<0>=>
array(2) {
<0>=>
string(51) "<strong>Oldal: </strong><a href="./oldal.php">"
<1>=>
string(0) ""
}
}



Az a baj, hogy a 135.7 resz utan nincs tobb fix karakter ami meg segitene megtalalni ezt.
Agy Halott
#18926
Megvan mar mukodik.

Am amiota kivettem a lastrun='$rut' a $upd = mysql_query("UPDATE stations SET status='$ety' WHERE id='$row'") or die(mysql_error()); reszbol, nem frissiti a datumot ha a radio statusza nem valtozott az utolso frissites ota.

Szoval tegyuk fel, hogy van egy 200-as statuszu, tegnapi datumu radio, ha az ellenorzeskor szinten ugyanaz a radio stausza mint tegnap, akkor ugyebar nem frissiti a datumot, mivel a statusz ugyanaz. Szoval szeintem kell bele a lastrun='$rut':

$upd = mysql_query("UPDATE stations SET status='$ety', lastrun='$rut' WHERE id='$row'") or die(mysql_error());

Vagy ra kellne venni a kodot, hogy mindenkeppen irja bele a kapott statusz kodjat, igy mivel ir a kod az adatbazisba ezert annak datuma is frissulne.
Lyukasbogrács
#18925
írasd ki a lekérdezés eredményeit és ellenõrizd, hogy hol nem mûködik úgy, ahogy kell, mint ahogy Cat írta.
vagy fordítsd meg a relációt a lastrun elõtt, mindig összekeverem 😄

Agy Halott
#18924
Kiprobaltam ezt is es ez is frissiti az osszes radio statuszat:

where '.time().'-lastrun < 86400

Lehet a mysql tablaban levo formatum nem jo?
Agy Halott
#18923

Amúgy neked nem fordítva kéne ? Vagy azokat akarod frissíteni, ami 1 napnál fiatalabb ?


#18915


//persze ha a lastrun time()-os timestamp 😊


MySql Tabla


Otlet?
SzirmosSzisza
#18922
Úha, majd Bogrács válaszol, én ezt a függvényt nem vágtam, én így csinálnám

where '.time().'-lastrun < 86400
//persze ha a lastrun time()-os timestamp 😊

Amúgy neked nem fordítva kéne ? Vagy azokat akarod frissíteni, ami 1 napnál fiatalabb ?

“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable” _____/|_____\o/___ Cápatámadás

Agy Halott
#18921
Mar nincs is if a kodban:

<?php
MYSQL():

$res = mysql_query('SELECT * FROM stations WHERE DATE_SUB(NOW(), INTERVAL 1 DAY) < lastrun') or die(mysql_error());

while($row = mysql_fetch_array($res)){
CURL();
$upd = mysql_query("UPDATE stations SET status = $ety WHERE id= $row") or die(mysql_error());
}
?>



Meg mindig rossz a lekrdezes, szerintem ez nem teljesul:
WHERE DATE_SUB(NOW(), INTERVAL 1 DAY) < lastrun
SzirmosSzisza
#18920
Rakd tele echo-kkal, nézd meg minek hol mi az értéke, abból amit leírtál az IF-eddel vannak bajok.

“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable” _____/|_____\o/___ Cápatámadás

Agy Halott
#18919
$upd = mysql_query("UPDATE stations SET status = $ety WHERE id= $row") or die(mysql_error());

Jelenleg igy van es ugy nez ki (meg mindig fut a kod), hogy atirja az adatbazist, viszont meg mindig az osszest, szoval nem csak az egy napnal regebbieket irja felul.
Lyukasbogrács
#18918
$upd = mysql_query("UPDATE stations SET status = '$ety' WHERE id= '$row'") or die(mysql_error());
ha nem ír ki hibát, akkor írasd ki az sql mondatot és futtasd le a phpmyadminban. vagy lehet a WHERE id = '$row' nem tetszik neki, aposztrófok nélkül kéne? WHERE id = $row

Agy Halott
#18917
$upd = mysql_query("UPDATE stations SET status = '$ety' WHERE id= '$row'");

Ez igy am meg nem jo, mivel mint irtam, nem irja az adatbazisba az uj adatokat, mivel kiszedtem a lastrun = '$rut' reszt.
Lyukasbogrács
#18916
tulajdonképpen akkor a $_POST-ra nincs is szükség, mert az akkor kéne, ha egy meghatározott állomást akarnál frissíteni, de neked az összeset kell, ami 1 napnál régebbi. http://pastebin.com/WX4ewxEx

Agy Halott
#18915
MYSQL tabla

minden sor egy rádióállomásnak felel meg, a statusban az van, hogy elérhetõ e az oldal/rádióállomás (http státuszkód), a lastrun meg hogy mikor volt utoljára ellenõrizve. ez így ok?


PONTOSAN!

és úgy kell mûködnie, hogy ha valaki kiválaszt egy rádióállomást, akkor ha 1 hétnél régebbi, akkor ellenõrizze, hogy elérhetõ és frissítse a sort. ez így ok?



Nem egeszen, mivel ez az admin feleulten van es csak en futtatom es en kuldom a $_POST-t a kodnak ajaxal de ez most mindegy.

1 napnal vagy regebbi radiok statuszat kellne frissitenie a kodnak. Szoval ahogy te is irtad a mysql-nek csak ennek az idointervallumnak megfelelo radiokat kellene futtatnia a while() ciklusban, nem az osszest.
Lyukasbogrács
#18914
tisztázzunk valamit, stations tábla: id, status, lastrun
minden sor egy rádióállomásnak felel meg, a statusban az van, hogy elérhetõ e az oldal/rádióállomás (http státuszkód), a lastrun meg hogy mikor volt utoljára ellenõrizve. ez így ok?
és úgy kell mûködnie, hogy ha valaki kiválaszt egy rádióállomást, akkor ha 1 hétnél régebbi, akkor ellenõrizze, hogy elérhetõ és frissítse a sort. ez így ok?

Agy Halott
#18913
Nahhh vmi nem jo, mert a kod futasakor ugyanugy frissiti az osszes radio stauszat es raadasul nem irja felul a regi mysql adatokat.

Szoval lehet, hogy kellne az a datetime? Bar a lekerdezes is rossz, mivel az osszes radion vegigfut.
Lyukasbogrács
#18912
ezt csak azért írtam, mert timestamppal nem sûrûn foglalkoztam és nem tudom, hogy hogy viselkedik a mysql-es dátumkezelõ függvényekben, de valószínûleg ugyanúgy, mint a datetime típus.

Agy Halott
#18911

Ha pedig teheted a station táblában a dátumok mezõinek elég ha DATETIME típust adsz meg...



Erre ertettem, hogy akkor megsem kell atirni a tablaban levo lastrun tipusat, mivel jelenleg nem DATETIME hanem TIMESTAMP.
Lyukasbogrács
#18910
így jó, ahogy leírtad

Agy Halott
#18909
Jelenleg a mysql igy van:

`lastrun` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

Ezt modositanom kell a timestamp tipust, ha az update reszt atirom?

$upd = mysql_query("UPDATE stations SET status = '$ety' WHERE id= '$row'");
Lyukasbogrács
#18908
nem fontos, mivel a DATETIME és a TIMESTAMP típus szinte teljesen azonos, az a lényeg, hogy ha a struktúránál beállítod, hogy auto frissítse az aktuális idõre, akkor UPDATE-nél nem kell a lastrunt módosítani, megteszi helyetted a mysql
UPDATE stations SET status = '$ety' WHERE id= '$row
ezt csak úgy megemlítettem

Agy Halott
#18907

<?php
MYSQL();

$rut = date("Y.n.j. H:i:s", time());
$ger = mysql_query("SELECT MAX(id) FROM stations") or die(mysql_error());
$max = mysql_result($ger, 0, 0);
$postid = (int)$_POST;

if(isset($postid)){
$res = mysql_query("SELECT * FROM stations WHERE id = $postid AND DATE_SUB(NOW(), INTERVAL 1 DAY) < lastrun") or die(mysql_error());

while($row = mysql_fetch_array($res)){

CURL();

if(curl_errno($cir)){
$ety = curl_errno($cir);
}

else{
$ety = curl_getinfo($cir, CURLINFO_HTTP_CODE);
}
$upd = mysql_query("UPDATE stations SET status = '$ety', lastrun = '$rut' WHERE id= '$row'");
curl_close($cir);
}
}
?>



Igy gondoltad? Bar most akkor az sql tablat is szerkesztenem kell?
Agy Halott
#18906
Persze, hogy a date("j") az aznapi datumot adja mikor a kod futtatva van. Ez a lenyege:

if(date("j") != $lac && date("j") >= $ner){}

Ha mai nap (1) nem egyenlo az utolso frissites datumaval (26) ES a mai nap (1) nagyobb vagy egyenlo a kov. frissites datumaval (2) akkor a kod lefut.

Tehat ha holnap (2) futtatom a kodot, akkor az if ag mindket resze igaz, mivel van olyan radio aminek az utolso frissites datuma (26) nem az aznapi nap (2) ES az aznapi nap (2) nagyobb vagy egyenlo a kov. frissites datumaval (2).

Igazam van? Mar csak az mysql-t kellene ugy lekerdezni, hogy ne az osszes radiot frissitse, hanem csak azokat, amik megfelelnek az if ag kovetelmenyeinek.
Lyukasbogrács
#18905
Szerintem egyszerûbb lenne úgy ha már a mysql lekérdezésben kiválasztanád azokat, amik egy hétnél régebbiek
SELECT * FROM stations WHERE id = $_POST AND DATE_SUB(NOW(), INTERVAL 1 WEEK) < lastrun
utána nem kell a while ciklusban semmi feltétel, mert csak azok fognak szerepelni, amik 1 hétnél régebben voltak frissítve. while ciklusban meg végigzongorázod a frissítéseket.
Ha pedig teheted a station táblában a dátumok mezõinek elég ha DATETIME típust adsz meg, attribútumként pedig beállítod, hogy "on update CURRENT_TIMESTAMP" (phpmyadminban valahogy így van), így ha frissíted a sort, akkor automatikusan a jelenlegi idõre fogja módosítani. Ez csak akkor hasznos, ha kizárólag frissítési céllal módosítod/módosítanád a sort (értem ezalatt, hogy a curl-lel visszaadott adatokat írod vissza). Jól jön akkor ha, nem akarsz a dátumfrissítésekkel szenvedni.

és egy protip: biztonsági szempontból a $_POST bármi lehet, jó ha elõbb átalakítod számmá, mert gondolom csak szám lehet az id.
$id = (int) $_POST<'id'>;
ha valaki szöveget ír be, akkor 0 lesz az értéke.

SzirmosSzisza
#18904
date("j") nekem sanszos, hogy a jelenlegi dátumot adja vissza, ha visszaad valamit, neked nem az 1 héttel ezelõtti kell ? Neked valami date("j",row<'lastrun'>) féleség kéne szerintem.

Illetve lehet úgy egyszerûbb, hogy ha úgyis linux timestamp, akkor nem datezel, hanem megnézed, hogy a time()-"a te idõd" > 604800 és kész.

“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable” _____/|_____\o/___ Cápatámadás

Agy Halott
#18903
Volna meg egy mysql lekerdezes problemam:

http://pastebin.com/19dDkdpg

A lenyeg az lenne, hogy ugy kellne lekerdezni a mysql-t, hogy ha a $_POST nem ures, akkor annak megfelelo ID-ju radiot valassza ki es ha futtataskor
if(date("j") != $lac && date("j") >= $ner){}
teljesul akkor tortenjen meg ez:
$upd = mysql_query("UPDATE stations SET status = '$ety', lastrun = '$rut' WHERE id= '$row'");

Jelenlegi lekerdezesem ez:
$res = mysql_query("SELECT UNIX_TIMESTAMP(lastrun) as lat, stations.* FROM stations WHERE id = '$_POST'") or die(mysql_error());

Am nem mukodik, nem teljesul az if ag, pedig van olyan radio az adatbazisban aminek az utolso frissitese 1 hettel ezelott tortent.

Ha kiveszem a lekerdezesbol ezt:
UNIX_TIMESTAMP(lastrun) as lat, stations.
akkor termeszetesen minden radiot frissit attol fuggetlenul, hogy mar tortent frissites.

Van otlet? Koszonom.
Agy Halott
#18902
Tenyleg, koszonom.
...ezt a mysql_result() fuggvenyt mindig elfelejtem.
Lyukasbogrács
#18901
igen, mert ez egy sort, pontosabban egy számot fog visszaadni, amit úgy olvashatsz ki belõle, hogy
$max = mysql_result($res, 0, 0);
felesleges átpaszírozni a mysql és a php között az összes sort, ha neked csak egy sor kell, vagy éppen egy érték.

Agy Halott
#18900
Nem jo:

$sql = "SELECT MAX(id) FROM stations";
$res = mysql_query($sql) or die(mysql_error());
$max = mysql_num_rows($res);



Igy a $max erteke 1 lesz, pedig 1236-nak kellene lennie.
Lyukasbogrács
#18899
SELECT MAX(id) FROM tablanev
ha az utolsó id-jû sor kell akkor SELECT * FROM tablanev ORDER BY id DESC LIMIT 1

Jim Morrison
#18898
ó értem köszi.

ASUS B550-PLUS, AMD 5600X, 32 GB DDR4, EVGA RTX 3070, SM-OB1, HD 600 + Asus Xonar DX, TonePort UX1 + Alesis Elevate 5, Novation Circuit \o/

Dj Faustus
#18897
wget, curl (ez utóbbi inkább, mert aarra van PHP-ban Pythonban, C++-ban, Perlben is függvénykönyvtár)

Jim Morrison
#18896
a facebookos filmben van egy olyan jelenet, kb 10perc után, hogy scripteket ir amik leszednek képeket meg nemtommiket oldalaktól. Ezt hogy?

ASUS B550-PLUS, AMD 5600X, 32 GB DDR4, EVGA RTX 3070, SM-OB1, HD 600 + Asus Xonar DX, TonePort UX1 + Alesis Elevate 5, Novation Circuit \o/

Agy Halott
#18895
Hogyan kell lekerdezni a mysql-t, hogy megtudjam egy tablaban melyik az utolso ID-ju bejegyzes?

$sql = "SELECT * FROM tablanev";
$res = mysql_query($sql) or die(mysql_error());
$max = mysql_num_rows($res);



Ezzel csak azt tudom meg, hogy mennyi ID van a tablaban, de ugyebar ha torlok egy ID-t es vele a tartalamat es hozzaadok egy ujabb cuccot, akkor a $max erteke nem lesz jo.

Szoval nekem mindig az utolso, legnagyobb ID-ju elemet kellene megtalalnom.

Koszonom.
Slipknot14
#18894
valóban igazad van a div-el kapcsolatban 😊 csak annyira belemélyedtem a dolgokba, hogy ezt a részét már csak automatikusan csináltam ami épp eszembe jutott 😊 köszönöm a válaszod

Malakai
#18893
Webkit hozzáadja a padding-ot a td height értékéhez, mint bármely más blokk szintû elemhez.

Legjobb, hogyha padding-ot leveszed ezekrõl az elemekrõl és helyette mással oldod meg, hogy beljebb kerüljön a szöveg.

Egy megoldás, persze ez csak css, pseudo selectorral:

table.penz:first-child td,
table.penz:last-child td { padding: 0; line-height: 46px; }

Persze mégjobb, ha pl másik class-t kapnak ezek, hisz egészen más stílusú elem.

Másik, hogy ezt a felsõ-alsó háttérképes dolgot felesleges már táblázattal erõltetni, tehát én inkább cserélném pl egy-egy div-re.

(\__/) ( X.x) ( } . { )

Slipknot14
#18892
bocsi a dupla posztér, csak írtad hogy nem 100% világos.
Meg közben most nézem a bemásoltban:
<td height='80px' colspan='8' background='frames/fejlec2.jpg' valign='top'><font color='#FFFFFF' size='4'>MEGVÁSÁROLT TERMÉKEK</font></td>
ebben a sorban a height='49px' volt eredetileg, ahogy elõtte is írtam, csak egy teszt verziót másoltam be véletlen.

annyi a lényeg hogy a 49 és 46 px magas táblázat méretéhez hozzá ad a Chrome 20px-t. Úgy jeleníti meg, hogy 69 illetve 66px magasak, viszont a többi böngészõ hibátlanul mutatja 49 illetve 46 px-nek.

Slipknot14
#18891
css reseter? Az micsoda? 😊

http://pastebin.com/miUKgk7V

kimásoltam, a tetejébe a CSS-nek a táblára vonatkozó részét, meg egy php részletet ami kreálja a táblát, de nem várom, hogy bogarásszatok benne, csak gondoltam megkérdezem hátha tud valaki egy egyszerû választ 😊

SzirmosSzisza
#18890
CSS reseter nem segít ?

“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable” _____/|_____\o/___ Cápatámadás

Malakai
#18889
Nekem nem 100%-ig világos a layout és, hogy hogyan oldod meg, esetleg pastebin-re dobd fel a releváns részt, css-el együtt, ha van!

(\__/) ( X.x) ( } . { )

Slipknot14
#18888
Sziasztok! 😊
Miért lehet, az, hogy a táblázatom alatt és felett van egy ugyanakkora táblázat, mert ezek a fejléc és alja képeit tartalmazzák háttérkép ként a középsõnek. Be van állítva, hogy 49px illetve 46px magasak, firefox, IE, Opera prímán mutatja, viszont Chrome a 49,46-hoz hozzá ad 20px-t. A chromeba van beépített tervezõ, vagy nem tudom, hogy hívjam, ahol megtudom nézni a táblázatok megjelenített(renderelt) magasságát és 20-al többet ír mind2-re, viszont ha átírom 29,26-ra a htmlbe akkor a Chrome mutat rájuk 49,46-ot, de csak ott jó. :/
A 2 képnek ekkora a magasság, ott nincs gond, és mivel a chrome széthúzza így csúnya lesz és nem passzolnak meg ismétlõdnek :S

DarkSector
#18887
Nah kitaláltam, ki kell törölnöm a kódból ezt: <center></center>

😄DD

e6550, HD6670 1GB, 4GB "Minden játék annyit ér, amennyire a játékos tartja!" "Olyan ember nincs aki nem warezol, csak aki nem vallja be." "A warez-ra kifogás nincs, csak magyarázat!" "Nem mindegy!"

DarkSector
#18886
probáltam beletenni egy táblába de akkor is kitólja a csikot....fuck

e6550, HD6670 1GB, 4GB "Minden játék annyit ér, amennyire a játékos tartja!" "Olyan ember nincs aki nem warezol, csak aki nem vallja be." "A warez-ra kifogás nincs, csak magyarázat!" "Nem mindegy!"

DarkSector
#18885
Megvan.
az a baj hogy a szöveg olyan széles lehet amekkora maga az balak a futó szövegnél...😄 de ha feljebb teszem az egész banner megy minden széthúzódik fuck...😊

e6550, HD6670 1GB, 4GB "Minden játék annyit ér, amennyire a játékos tartja!" "Olyan ember nincs aki nem warezol, csak aki nem vallja be." "A warez-ra kifogás nincs, csak magyarázat!" "Nem mindegy!"

DarkSector
#18884
nézd meg, a kodból a szöveg egy idõ után abbamarad, de nem értem miért....

Topik

e6550, HD6670 1GB, 4GB "Minden játék annyit ér, amennyire a játékos tartja!" "Olyan ember nincs aki nem warezol, csak aki nem vallja be." "A warez-ra kifogás nincs, csak magyarázat!" "Nem mindegy!"

SzirmosSzisza
#18883
Mit értesz hosszabb sor alatt ? Amúgy nem tudom, Google elsõ találat volt :-D

“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable” _____/|_____\o/___ Cápatámadás