- Milyen TV-t vegyek?
- Amazon Kindle
- Pokoli repetát hoz az új GeForce driver
- Micro Four Thirds
- SSD kibeszélő
- Fejhallgató erősítő és DAC topik
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Elstartolt az AMD munkaállomásokhoz szánt platformja
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- ASUS ROG Ally
Aktív témák
-
Benmartin
senior tag
<?php
$datum = date(''Ymd'');
print $datum . ''<br/>''; //20070821
$pluszev = time() + (366 * 24 * 60 * 60);
$egyevmulva = date(''Ymd'',$pluszev);
print $egyevmulva . ''<br/>''; //20080821
$ujevig = date(''z'');
print 365-$ujevig;
?>
remélem így mostmár érthető és menni fog.
[Szerkesztve] -
Benmartin
senior tag
itt valami félreértés lesz.
tehát, ha van egy időpontstringed, ami nem csak számokat tartalmaz pl.: van -,. akármi más, akkor matematikai műveleteknél egyértelmű, hogy nem várt hatása lehet.
mintha ilyen műveletet akarnál elvégezni (nem voltam egyértelmű én sem, így lehet mat. műveleteket is végezni, de ki tud már eligazodni ezen, hogy akkor annak éppen mi a típusa.):
$var1 = ''23-'';
$var2 = ''.12'';
print $var1 + $var2;
amit írtál kódrészlet azért működhetett, mert substr-el le volt csapkodva a nemkívánatos egyéb karakterek és pusztán számokkal dolgoztál.
szerk: igen visszaolvasva látom, hogy írtad, hogy csak szám van benne, bocsi.
[Szerkesztve] -
Benmartin
senior tag
''Úgy tudtam, hogy a php átalakítja a formátumokat az optimálisra, vagyis arra, ami kell.''
Oké, hogy a php egy nem típusos nyelv, de nem várhatod el tőle, hogy egy string-el matematikai műveleteket végezzen, a date fv. pedig egy időpontstringel tér vissza. Ahhoz, hogy plusz egy évet hozzáadj használatba kell venni a date() fv második paraméterét, ami egy időbélyeget vár, az időbélyeget pedig a time fv-vel tudod előállítani. -
Forest_roby
őstag
Hi!
''Beolvasás meg select * from hirek order by id desc
Így idő szerint lesz sorba, a legutolsó hír legfelül.
Aztán jön egy while ciklus, mysql_fetch_array() függvényében. Én a hsz-eket táblázatba raktam.''
Ezt még meg tudnád mutatni, vagy kifejteni részletesebben : ) ? / aztán remélhetőleg egy ideig nem zaklatlak titeket : ) /
Előre is köszi!
Forest -
Forest_roby
őstag
Hi!
Megcsináltam ezt:
$query =
''CREATE TABLE comments ( '' .
''comment_id bigint(10) unsigned NOT NULL auto_increment, '' .
''user VARCHAR(20) NOT NULL, '' .
''date datetime NOT NULL, '' .
''comment text NOT NULL, '' .
''PRIMARY KEY (`comment_id`), '' .
''KEY `date` (`date`) )'';
idáig tuti a dolog : )
Megpróbáltam 1 sort bevinni, de híbát írt ki a gép.
$query = ''INSERT INTO comments (user,comment) VALUES ('admin',''' . nl2br($text) . ''')'';
Nem így kell feltölteni?
Előre is köszi!
Forest
[Szerkesztve] -
Forest_roby
őstag
Hi!
Köszi a választ!
ujabb kérdés:
Ha php -vel létrehozok az adatbázisban egy táblát ( mysql_query ), a megfelelő paraméterekkel, akkor, hogyan tudok arról megbizonyosodni, hogy jól is csináltam mindezt? Vagyis, van vmi lehetőség php-ben hogy leelenőrizzem, hogy létezik -e a tábla és ha létezik akkor olyan paraméterekkel, ahogy én szeretném?
Előre is köszi!
Forest -
woodpaul
őstag
Char-Varchar összehasonlítás:
Char:
(-) a megadott hosszúságot mindig kihasználja, ha rövidebb a szöveg, space-kkel egészíti ki (kevésbé takarékos)
(+) gyors
Varchar:
(+) pont annyi byte-ot foglal le, amennyit zárójelben megadtunk (+1 byte a hossznak, azt hiszem), charnál takarékosabb
(-) lassabb, mint a Char -
Forest_roby
őstag
Hi!
Először is köszi a segítséget!
Természetesen, annak aki módosíthatja a weblapot, annak belépős lesz a weblap, egyébként nem. Kevés felhasználó lesz, de jól szeretném megcsinálni a mysql táblákat - ezért lenne egy olyan kérdésem, hogy:
A felhasznalok tablaban minden egyes felhasználó 1 - 1 sor. Milyen paramétereket érdemes eltárolni? ( count, nev, pass, mail, mégvalami? )
Jöhetnek a kommentek. Szóval akkor létre kell hozni egy pl.: hirek table -t és abban minden sor 1-1 új hír. A sorokban mit érdemes eltárolni? ( count, íro, szoveg, mail, date, mégvalami? )
Ezzel a mysql táblák letudva.
Jöhet a php rész. A beléptetést már meg tudom oldani ( hála ph! userek ). Jogosultságok? Lehet érdemes lenne vmilyen jogosultságra utaló dolgot is elmenteni a felhaszánlóneveknél?
Ha van jogosultság írni, akkor az adott user írhat a hírekbe.
ujhirek.php - bejön egy szövegszerkesztő szerűség (textarea) és a megírt szöveget elküldöm egy feldolgozo.php -nek post-tal. Ez a feldolgozo.php a szövegből kiszedi a nemkívánatos részeket ( meg tudom oldani ) és VALAHOGY menti a már elkészített táblában egy uj sorba - a sorban minden egyes elemet kitöltve.
Ezután header-rel vissza modnjuk a főoldalra, ahol elvileg megjelennek a(z új) hírek. És a főoldalon van egy olyan php kódrészlet, ami betölti az adott híreket - ha be vagy jelentkezve, akkor több opcióval....
Nagyából jól írtam le? A kérdéseim jogosak/érthetőek?
/a sql táblák létrehozása egy kis utánna nézéssel, talán nem okoz gondot. A bele való írás/olvasás/update-elés egy kis utánna járással nem okoz gondot. Mi van még, amin megbukhat a dolog....? Mindegy, majd még ugyis jövök kérdezni./ -
Lortech
addikt
Session id az a session azonosítója.
Kliens oldalon egy cookie testesíti meg, ami tárolja az id-t. Ezt a cookie-t és vele az id-t a kliens minden oldallekéréskor küldi a szervernek, a szerver pedig azonosítja az id alapján a sessiont. Mivel azonosítva van a session, az ehhez rendelt változókat php-ből kényelmesen el tudod érni. Ha nagyon ''advanced'' akarsz lenni, akkor csinálhatod a session kezelést kézzel is, de értelmét nem látom a te esetedben. Hangsúlyozom, a session kezelés automatikus, nem neked kell küldeni az id-t, neked annyi a dolgod, hogy elindítod a session-t, aztán kiveszel, beteszel, amit akarsz. Logout-nál meg lezárod a sessiont.
[Szerkesztve] -
cucka
addikt
ennek így nincs sok értelme. :)
először is a #831-ben írt kódom hibás, count(*) helyett simán * kell a lekérdezésbe.
a védett oldalra való átirányítás előtt pedig a legegyszerűbb, ha a user összes adatát benyomod a session-be, mert amúgy sem túl nagy adatmennyiség.
például így.
if (mysql_num_rows($result)===0) header(''Location: login.php'');
else {
$_SESSION['user_adatok']=mysql_fetch_assoc($result);
header(''Location: vedett_tartalom.php'');
}
így a továbbiakban az isset($_SESSION['user_adatok'])-al tudod megnézni, hogy be van-e jelentkezve a user és ha például a user nevét szeretnéd kiírni valahova, akkor azt a $_SESSION['user_adatok']['nev'] fogja megmondani. -
Lortech
addikt
Belépés után csak sessionid-t, a user nevét és a jogokat tárolom el egy mysql táblában, és csak az id-t küldöm session-nal.
Lehet, hogy ezt elírtad-e vagy félreértem, de ennek mi értelme? Arra van a session, hogy a hozzá tartozó adatokat ott tárold el, ne kelljen szüttyögni adatbázissal. Minden egyes lekérésnél nevet beolvasni teljesen felesleges terhelés a szervernek, azontúl, hogy bonyolítás is. -
cucka
addikt
nem értem, mi okoz ebben nehézséget :)
$user=mysql_real_escape_string($_POST['user']);
$jelszo=mysql_real_escape_string($_POST['jelszo']);
$result=mysql_query(''select count(*) from felh where user=$user and jelszo=$jelszo'');
if (mysql_num_rows($result)===0) header(''Location: login.php'');
else header(''Location: vedett_tartalom.php'');
die();
mod: későbbiekben érdemes lehet eltárolni a belépett user adatait, mondjuk session-ban, ilyen esetben count(*) helyett *-ot válassz ki a táblából, és mielőtt átirányítanád a védett oldalra, fetch-eld a result tartalmát és pakolgasd be a session-be a szükséges adatokat.
[Szerkesztve] -
Lortech
addikt
$sor = mysql_fetch_array($adatb);
A mysql_fetch_array fgv egy asszociatív tömböt ad vissza, így ennek a sornak nincs sok értelme szerintem. Vagy azt akarod megtudni, hogy lett-e egyáltalán eredmény? Mert ha igen, akkor azt vizsgáld meg inkább, hogy igaz-e.
tehát pl. if ($sor = mysql_fetch_array($adatb))
Észrevételek: ha loginról van szó, akkor a lekérdezésben usernévre és jelszóra keress, ne csak userre, így egy lépésben megúszod.
Így ha lett pontosan egy row eredmény, akkor login. Meg így feleslegesen nem nyalja be az adatokat az adatbázisból, csakha ténylegesen fel is lesz használva, tehát ha jó a user/pass. Bár ez elhanyagolható.
A jelszó pedig legalább egy md5()-tel legyen bekódolva (már regisztrációkor úgy teszed be adatbázisba), mert én személy szerint nem szeretnék olyan oldalon regelni, ahol egy adatbázislopással többszáz/ezer jelszót (köztük az enyémet) megszerezhetnek. -
tkazmer
addikt
Ez az eredmény némi bizakodásra ad okot nem?:
Ha minden frissítéskor (F5) egy újabb Próba János jelenik meg,
az Apache - PHP - MySQL sikeresen be lett állítva!
\n''); } //close user connection mysql_close(); ?>
Csak ez az utolsó sor zavar egy kicsit, nem tom, ez normális?
Jah, és php myadminnal mostmár el tom érni az adatbázist.
[Szerkesztve] -
tkazmer
addikt
Ne haragudj, lehet, h csak én vagyok fáradt, és amiatt nem jut eszembe, de hogy is töltsem le én azt a file-t?
Jah, és ha újratelepítem a mysql-t akkor az adatbázisaim elvesznek nem? Van arra lehetőség, h megmentsem őket? Esetleg elég, ha simény kimásolom a data mappából az adott mappát, és beillesztem az újratelepített mysql data mappájába? -
tkazmer
addikt
Nah, lefutattam én is a szokásos eredménnyel sajnos. Így akkor a mysql-el lehet baj, bár nem tom micsoda, hiszen a mysql monitorral gond nélkül hozok létre, és szerkesztek adatbázisokat, táblákat. Szerintem a localhostra van telepítve, ugyanis a winmysql admin azt írja host infónak, h localhost via TCP/IP.
Egyébként én először user felhasználónévvel és jelszó nélkül próbáltam futtatni, majd megpróbáltam egy jelszavas felhasználónévvel is(usernek localhostról van joga belépni, a jelszavasnak meg ''%'' ról...)
Viszont mondjuk van egy problémám mysql monitorral történő feéhasználólétrehozás során is, ugyanis egyrészt hiába írok be jogosultságokat, nem adja meg azokat, külön kell őket az user táblában engedélyeznem, valamint nem tudok jelszavas feéhasználót sem létrehozni. Így hozok létre új felhasználót:
grant select, insert
on filmek.*
to user
indentified by ''jelszo'';
erre kijön, h syntax error, de jelszó nélkül már ok. -
tkazmer
addikt
Erre ezt kaptam vissza:
''; else echo mysql_error(); if ($sel = mysql_select_db(''filmek'',$kapcs)) echo ''Select OK
''; else echo mysql_error(); . . . if (mysql_query($sql)) $eredmeny = mysql_query($sql); else echo mysql_error(); if ($kiir = mysql_num_rows($eredmeny)) echo $kiir; else echo mysql_error(); mysql_close($kapcs); ?>
Ha meg ide
<body>
<?
if ($kapcs = mysql
Beírtam azt, h php, vagyis ezzé változtattam:
<body>
<?php
if ($kapcs = mysql
Akkor meg továbbra is semmit nem kapok vissza
Aktív témák
Hirdetés
- Motorola Edge 40 - jó bőr
- Kicsit később jelenik meg a Heroes of Might and Magic: Olden Era
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Világ Ninjái és Kódfejtői, egyesüljetek!
- Milyen TV-t vegyek?
- Amazon Kindle
- Kerékpárosok, bringások ide!
- Honor 400 - és mégis mozog a kép
- One otthoni szolgáltatások (TV, internet, telefon)
- The Division 2 (PC, XO, PS4)
- További aktív témák...
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged