- Milyen házat vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Azonnali notebookos kérdések órája
- IGP nélküli processzorokkal készül az Intel és az AMD
- Házimozi belépő szinten
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Külső 3,5'' mobil rack-ek topikja
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Shield TV-t csinált a Shieldből az NVIDIA
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
Aktív témák
-
Tyrael
senior tag
válasz
Forest_roby #799 üzenetére
np.
Tyrael -
Forest_roby
őstag
Tuti, most már keresnem se kell!
ui.: a chmod -ot ismerem, meg úgy általában a (populárisabb) linux parancsokat ismerem.
ui2.: a php-mysql hez nem értek, de a google-t tudom használni, ha tudom mit kell keresni!!/
/
mod: Látod, mosolyog az avatarom - nehogy megsértődj! Még egyszer, köszi a linkeket is!
[Szerkesztve] -
-
Tyrael
senior tag
válasz
Forest_roby #795 üzenetére
ket kulonbozo modszerrel tudod ''letiltani'', hogy el tudjak erni webrol kozvetlenul a fajljaidat:
egyik sima linux jogosultsag (ezt konzolbol chmod mappanev jogosultsag [cgmod jogosultsag mappanev, mindig osszekeverem], vagy pl. total commander fajlt, attributumok modositasa paranccsal, akar ftp-n keresztul is.)
a masik modszer a .htaccess fajl.
ebben az esetben az adott konyvtarban el kell helyezni egy .htaccess nevu fajlt, amiben apache configuracios beallitasokat lehet feluldeklaralni, ha az allowoverride engedelyezve van a httpd.conf-ban.
Tyrael -
Forest_roby
őstag
A kész forrás nem fontos, de majd ha elakadok jövök kérdezősködni!
rögtön az első:
''chmoddal/.htaccessel fajl jogosultsagait ugy allitod be, hogy apache ne tudja olvasni a fajlt, de php igen. (pl. chmod 700)''
tehát terminálban keresem meg az adott mappát és chmod 700 ./.htaccessel és kész? én azt hittem, hogy a ''/.htaccessel'' file tartalmát kell módosítgatni....
Még egyszer kösz az eddigieket is! /majd még úgy is jövök/ -
Tyrael
senior tag
válasz
Forest_roby #793 üzenetére
nincs mit, bar tartottam tole, hogy kesz forraskodot fogsz kovetelni, de ugy tunik vannak meg normalis emberek, akik tanacsot varnak, nem megoldast.
Tyrael -
Tyrael
senior tag
válasz
Forest_roby #785 üzenetére
chmoddal/.htaccessel fajl jogosultsagait ugy allitod be, hogy apache ne tudja olvasni a fajlt, de php igen. (pl. chmod 700)
ezutan irsz egy php scriptet, ami elvegzi az authentikaciot.
vegul ha be van jelentkezve, akkor kiolvassa neki a script a fajlt tartalmat, majd kiirja kimenetre (es mellesleg beallitja a megfelelo mime-type-ot, hogy ne bongeszobe akarja kiirni, hanem pl. feldobja letoltesre)
kb. ennyi.
Tyrael -
Forest_roby
őstag
válasz
Forest_roby #785 üzenetére
up!
-
woodpaul
őstag
Köszönöm, eszerint fogok eljárni!
Azt hiszem, többet fogok ide írni. Már egy ideje foglalkozom PHP fejlesztésekkel, de sok dologról fogalmam sincs, jól csinálom-e, vagy sem. Tény, az elképzeléseimet többnyire meg tudom valósítani. Hogy mennyire ''szépen'', az más kérdés. -
RedAnt
aktív tag
válasz
woodpaul #788 üzenetére
Pár helyen módosítanám:
Az első sorban a $login körül vagy ne legyenek pontok, vagy ''.$login.'' legyen, de gondolom ez elírás lehet. És ennek a végére jöhet jól egy LIMIT 1.
A mysql_result-hoz a manuál szerint, ha nem az egész sort akarod bekérni, kellene még egy paraméter ami azonosítja az oszlopot. Bár mivel itt csak egy oszlopról van szó, ettől valószínűleg el lehet tekinteni.
Tehát:
$query = ''SELECT auth FROM register WHERE login = '$login' LIMIT 1'';
$result = mysql_query($query);
$auth = mysql_result($result,0);
Erre az $auth értéke: 'm' (mint moderátor) vagy üres string.
Szerintem a nem moderátoroknál is inkább adj meg egy betűt a táblában. Így könnyebb lesz a hibakeresés, pl. a lekérés után ha üres az $auth, (if (!$auth)) akkor tudod hogy valami történt, amit mysql_error()-ral kiírathatsz.
De ha jó szokást akarsz rögzíteni, akkor lehet hogy tényleg jobb lenne mást használni a mysql_result helyett, még ha ebben a konkrét esetben nem is számít.
Pl. a mysql_fetch_row-t. Ezzel a 3. sor így nézne ki:
$auth = mysql_fetch_row($result);
és utána az $auth[0] tartalmazza az eredményt. -
woodpaul
őstag
Köszönöm a gyors választ!
Én itt tényleg olyan eredményekre gondolok, ahol nem sort kapok, hanem egyetlen kis sztringet.
pl.
$query = ''SELECT auth FROM register WHERE login = '.$login.''';
$result = mysql_query($query);
$auth = mysql_result($result,0);
Erre az $auth értéke: 'm' (mint moderátor) vagy üres string. Ekkor egy conditionallal vagy engedélyezek vmi moderátori műveletet, vagy elhajtom a mezei felhasználót.
Azért írtam ezt le, hogy lásd, mit szeretnék. A kód természetesen így is működik, de a legjobb megoldást szeretném, hogy az rögződjön rutin szinten. -
RedAnt
aktív tag
válasz
woodpaul #786 üzenetére
Olyankor célszerű elkerülni ha sok sorból áll az eredmény - ilyenkor célszerűbb ciklikusan, soronként kiolvasni az eredményeket (mysql_fetch_row/array/object stb) - de egy sornál ennek szvsz nincs jelentőssége, úgyhogy nyugodtan használd. Tipp: a query végére tegyél limit 1-et, egyrészt hogy biztosan egy sort kapj, másrészt megfelelő indexelés esetén gyorsíthat a lekérdezésen.
-
woodpaul
őstag
Egy egyszerűnek tűnő kérdés:
Mi van akkor, ha egy adatbázisból egyetlen értéket olvasok ki? Tehát nem tömböt, nem objektumot, hanem egyetlen változóba tárolható értéket.
Ekkor a mysql_query() után melyik függyvényt érdemes használni? Eddig a mysql_result($vmi,0) függvényt használtam ilyenkor, azonban olvastam, hogy jobb elkerülni. A profik mit használnak helyette? -
Forest_roby
őstag
válasz
Forest_roby #784 üzenetére
csak, hogy lássátok, hogy én is csinálok vmit, ezt találtam:
<?php
$disposition = ''attachment''; // ''attachment'' vagy ''inline''
$mimeType = ''application/octet-stream'';
$fileName = ''letolt.zip'';
$path = ''/var/www-data/dl/$fileName'';
if (isset($_SERVER[''HTTPS''])) {
header(''Pragma: '');
}
header(''Content-Type: $mimeType'');
header(''Content-Disposition:$disposition; filename=\''''.trim(htmlentities($fileName)).''\'''');
header(''Content-Description: ''.trim(htmlentities($fileName)));
header(''Content-Length: ''.(string)(filesize($path)));
// Ez itt elvileg kell ahhoz, hogy bizonyos alkalmazások mentés
// nélkül meg tudják nyitni a letöltött állományt.
header(''Cache-Control: must-revalidate, post-check=0, pre-check=0'');
header(''Connection: close'');
readfile($path);
?>
és működik is 1 file.
mostmár csak az nem tudom, hogy ha ezt: /var/www-data/dl/ kicserélem egy masik mappara ami egy ingyenes tárhelyen van, az hogy lesz elérhetetlen mappa?
illetve
nyilván vmi fv. formára kellene ezt alakítani és file-onként meghívni, ha rákattintok a linkre - ebben még tudnátok segíteni?
:R :R :R
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #781 üzenetére
A readfile fuggveny segitsegevel vissza tudsz kuldeni fajlokat. (Hatranya, hogy a megszakadt letoltest alapbol nem tudja folytatni.) A feltoltesre pedig siman hasznalhatsz ftp-t egy olyan mappaba ami nincs kirakva a webre.
-
tkazmer
addikt
válasz
Forest_roby #781 üzenetére
Erre a kérdésre lenne ötletem, de nem akarok hülyeséget mondani, úgyh inkább várd meg a hozzáértőbbeket, még én is csak most tanulgatom ezt az egészet...
-
Forest_roby
őstag
igazabol ezt: ''( ?vhogy? )'' azert irtam, mert bar a fileokat fel tudom tolteni egy mappaba, akar igy php-s file feltolotovel, akar total commanderrel, nem tudom, hogy ez igy szerencses -e? igy egy direkt linkkel barmikor le tudom tolteni a fileokat, bar asszem vhogy be lehet allitani adott mappara, hogy az ott levo filokat ne lehesen csak ugy letolteni, de mar erre sem emlekszem.
Amikor egy php-mysql-es weblapon leakarok tolteni egy file es bead egy fura dinamikus linket, akkor az a file siman megtalahato egy mappaban a webserveren v. vhogy benne van a mysql adatbazisban? ( ez a kerdes lehet, hogy nagy hulyeseg volt ) csak azert kerdezem, mert ha a file adatbazisban van, akkor nem olyan egyszeru a feltoltese se....
mindenesetre koszi a linket!!!
[Szerkesztve] -
tkazmer
addikt
válasz
Forest_roby #779 üzenetére
Fájlfeltöltéshez:[link]
-
Forest_roby
őstag
hi!
Azért merem feltenni ezt a kérdést, mert tudom, hogy neketek ez nagyon alap.
Vmi olyasmit szeretnék, hogy feltöltenék fileokat ( ?vhogy? ) webszerverre, de ha lehet akkor ugy, hogy ne lehesen elérni semmilyen link-kel. Az elérést vhogy ugy szeretném, hogy jelszóval belépni egy dinamikus oldalra és ott lennének felsorolva a fileok és az ott lévő likek is dinamikusak lennénke, vagyis csak akkor működne, ha be vagyok lépve oda az oldalra...
( hú, remélem érthetően fejeztem ki magamat. már sokszor elhatároztam, hogy kitanulom ezt a mysql + php cuccot, de még sajna nem tudtam rá idő szakítani.. : ( )
Nohh, ehhez tudna nekem vki vmilyen segítséget nyújtani, akár egy-egy forrásrészlet v. vmi jó link, ahol ez le van írva???
Előre is köszi
Forest -
tkazmer
addikt
-
tkazmer
addikt
Meg lehet azt csinálni, hogy egy tábla egy oszlopából minden kérésnél véletlenszerűen válasszon ki x adatot?
-
RedAnt
aktív tag
válasz
kamikaze boci #771 üzenetére
-csak x darabot olvasson be, ne az egész táblát (pl.: $counter=5).
a select végére limit $counter, vagy limit $start $counter ha a $startadik sortól kezdve akarsz $counter darab eredményt. [link]
A kiíratást meg valahogy így lehetne:
$i = 0;
while ($sor = mysql_fetch_object($quotes)) {
$i++;
echo ''<span class=\''id_$i\''''>''.$sor->id.''</span>'';
echo ''<span class=\''title_$i\''''>''.$sor->title.''</span>'';
echo ''<br />\n'';
}
Tehát végigmegy az eredményül kapott sorokon és kiírja belőlük a szükséges mezőket, a classokban meg nőnek közben a számok.
[Szerkesztve] -
kamikaze boci
őstag
A kérdés nagyon egyszerű, de sajnos béna vagyok a php-hez, nézzétek el nekem (egy cms alá kell ez a kód, mert sajna nincs hozzá olyan modul, ami nekem kell).
Egy egyszerű tábla x oszlopának beolvasásról és kiíratásról van szó (úgy, hogy a kiírt adatokhoz egyenként tudjak classokat rendelni, lásd lent).
Ami eddig megvan:
$connection=mysql_connect($host,$user,$pw);
mysql_select_db($db, $connection);
$quotes=mysql_query(''select id, title, sectionid, catid, created from $table'', $connection);
$rows = mysql_fetch_row($quotes)
Így most van egy $rows változóm, amiben minden benne van, amire szükségem van, de ömlesztve.
Amit szeretnék:
-csak x darabot olvasson be, ne az egész táblát (pl.: $counter=5).
-minden adathoz rendelnem kellene egy css/html utasítást:
például, ha 3 sort akarok kiíratni, a végeredménynek valami ilyesminek kellene lennie:
<span class=''date1''>elso sor datuma</span><span class=''title1''>az elso sor cime</span>
<span class=''date2''>elso sor datuma</span><span class=''title2''>az elso sor cime</span>
<span class=''date3''>elso sor datuma</span><span class=''title3''>az elso sor cime</span>
Egy hasonló modult találtam, ami ezt csinálja, de sehogy sem sikerül az eredeti kódba a fenti sql utasításokat begyömöszölni:
$i = 0;
$lists = array();
foreach ( $rows as $row )
{
$lists[$i]->link = $link;
$lists[$i]->title = $row->title;
$lists[$i]->introtext = $row->introtext;
$lists[$i]->created = $row->created;
$i++;
}
és a megjlenítés része (kicsit fura a szintaxis a cms miatt):
<?php $counter = 1; ?>
<?php foreach ($list as $item) : ?>
<span class='date<?php echo $counter; ?>'><?php echo substr($item->created, 11, 5)?></span>
<span class='title<?php echo $counter; ?>'><?php echo $item->text; ?></span>
<?php endforeach; ?>
Minden segítséget köszönök! -
tkazmer
addikt
válasz
paramparya #769 üzenetére
Köszi
-
paramparya
őstag
$cim = str_replace('' '', '''', $_POST['cim'
);
Tehát:
fogadó változó = str_replace(mit, mire, miben);
másodikra: lehet unique tulajdonságot adni neki mysql-ben (phpmyadmin a táblastruktúra résznél a sorban ott lesz valahol a végén a unique, ahol a primary key, meg a fulltext vannak... -
tkazmer
addikt
válasz
paramparya #767 üzenetére
Sajnos nem sikerül, így(is) próbáltam:
$uresstring = str_replace'($_POST[''cim'')';
Aztán pedig az $uresstringet szúrtam be az adatbázisba, de ezt kaptam:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING
Más:
hogy tudnám azt megoldani, h ne lehessen 2x uazt bevinni az adatbázisba? Szóval, h maradjunk a filmes példánál, mondjuk ne lehessen 2x bevinni uazt a filmet, szóval bevitel előtt ellenőrizze, h van e már olyan sor a táblában, és ha van, akkor mondjuk kérdezze meg a usert, h biztosan beviszi e, vagy vmi hasonló.
[Szerkesztve] -
tkazmer
addikt
Meg lehet azt oldani, hogy ha egy szövegbeviteli mezőbe szóközt ütnek, akkor azt úgy(is) elmentse a script az adatbázisba, h szóköz nélkül?
Szóval, ha azt írják be, h star wars, akkor azt egyrészt úgy is elmenti, h star wars. De én azt is szeretném, h egy másik oszlopba starwars ként mentse el, szóval egybe írva a két szót. -
klinsi
csendes tag
Hali,
Van egy érdekes problémám. Adott szolgáltató szervere php 4.4 és short_open_tag on-ra van billentve.
index.php-ben:
<td id=''login_info''><?=_LOGIN_INFO?><?=_SITE_COPYRIGHT?></td>
Működik, az előre definiált állandü szövegek megjelennek.
Belépek és a következő állományban is használom a rövid állandók kiiratását, de itt már hibaüzis:
Warning: Unexpected character in input: '' (ASCII=31) state=1 in /customers/.../html/menu.html.php on line 4
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /customers/.../html/menu.html.php on line 4
Ha rendesen <?php echo _M_CONFIG; ?> -ot használok akkor működik, de a <?=_M_CONFIG;?> - ra a fentit kapom... van tippje valakinek? :F
Előre is köszönöm: klinsi -
skera
tag
Az IMG tag-et nem így kell írni...
HTML 4.01 szerint:
<img attributum1=''ertek1'' attributumN=''ertekN''>
XHTML 1.0-től pedig:
<img attributum1=''ertek1'' attributumN=''ertekN'' /> -
tkazmer
addikt
válasz
Jester01 #754 üzenetére
Ok, thx
Azt hogy tudnám megoldani, h egy kép elérési útja az legyen, amit kiolvas az adatbázis egy oszlopából?
Így próbáltam:
<img src=<?= $sor [''kep''?> border=1 ></img>
A $sor a köv:
($sor = mysql_fetch_array($adatb)) előtte egy while van. az adatb meg a mysql_query-t tartalmazza. -
tkazmer
addikt
Arra van esetleg lehetőség, h egy már meglévő táblámba újabb oszlopokat tegyek?
-
RedAnt
aktív tag
válasz
Mandrake833 #750 üzenetére
A load data infile-lal vannak gondok, sok szerveren nem megy, ugyanis biztonsági rést jelent (nem veszi tekintetben az open_basedir korlátozását)
Helyette esetleg azt próbálhatod meg, hogy a fájlból a php-vel szeded ki az adatsorokat, majd sima insert-tel teszed be az adattáblákba (ja igen, tábla != adatbázis)
[Szerkesztve] -
Mandrake833
csendes tag
Sziasztok! Adott egy adatbázis, mely egy txt-fájlból veszi az adatokat (a txt excelből exportált...) Szeretnék írni egy php-t ami ha változik a txt fájl akkor megváltoztatja az adatbázist. Úgy gondoltam, hogy törlöm a teljes adatbázist és újra beimportálom a megváltozott txt-t (Load data into...).Erre a megoldásra azért jutottam mert replace-elni nem tudtam, így a load data local replace infile hatására nem update-elt hanem hozzáírta plusszba még1x a txt fájl sorait..Mind1... A php-m a következőképp néz ki:
$querytor=''delete from uf;'';
$query=''LOAD DATA LOCAL INFILE 'd:/uf.txt' INTO TABLE uf ;'';
if (!($connection = @ mysql_connect($hostname, $username, $password)))
die(''Cannot connect'');
if (!(mysql_select_db($databaseName, $connection)))
showerror();
mysql_query($querytor, $connection);
mysql_query($query, $connection);
Ez a php így le is fut hibaüzenet nélkül. A baj az, hogy a törlés tökéletesen működik, viszont a visszatöltés már egyáltalán nemÍgy kapok egy tök üres adatbázist.
A poén az, hogyha beírom a mysql parancssorába a $query értékét akkor persze ott tökéletesen lefut. Mi lehet a hiba ? -
raczger
őstag
Hello!
A következő lenne a gondom
Egy táblából a legutoljára betett sort szereném kiszedni
Ez megy is ezzel:
SELECT * FROM table order by id desc limit 1
Csakhogy az eredménytáblát megszeretném szűrni, és én ezzel próbálkoztam, de ez neki nem tetszik ( mármint a WHERE parancs )
SELECT * FROM table order by id desc limit 1 WHERE topid='$erteksz'
Előre is köszönöm szépen! -
tkazmer
addikt
Meg lehet azt csinálni, h mondjuk ha rákeresek arra, h ''pearl harbour'' a filmek adatbázisomban , akkor mondjuk kitegye a dvd borítójáról készített képet? Szóval ha a keresés eredményes volt, akkor kitegyen egy bizonyos, az eredményhez kapcsolható képet?
-
Briganti
tag
hello, hogy tudom en egy osztas eredmenyet (float) 2 tizedes pontosagba atirni?
tehat: $valtozo=6.6666667, es nekem ebbol kene 6.66
ugy emelekszek ez mar volt egyszer tema, de nem talalom, pls help me! -
cucka
addikt
válasz
Realradical #741 üzenetére
például a href=''oldalnev.php?topik_id=234''
az oldalnév.php-ban ilyenkor a $_GET['topik_id'] értéke 234 lesz. -
cucka
addikt
válasz
Realradical #739 üzenetére
a fórumokat/topicokat ne név alapján azonosítsd, hanem legyen mindegyiknek egy egyedi id-ja. akkor ugye linkre klikkelésnél get-el átadod a php-nak az illető id-t és utána az alapján matathatod az adatbázist.
(egyébként meg elég rossz ötlet szerintem egy fórumnál minden topiknak külön táblát fenntartani, lassú és bonyolult az egész karbantartása). -
Realradical
őstag
válasz
paramparya #728 üzenetére
Pl. ha előttem van a fórumlista, és ráklikkelek az 'általános' vagy akármelyik linkre akkor generáljon nekem egy $forumnev=altalanos változó...ezt ha továbbviszem egy forum.php-be lenne egy SELECT * FROM $forumnev és már meg is jelent a topic...
-
cucka
addikt
válasz
Briganti #736 üzenetére
ez esetben a programod elég sok sebből vérzik
1. url-t ne get-ben küldd át, mert vicces eredményeket kaphatsz. használj post-ot.
2. az insert rész úgy ahogy van rossz. először is nem új sort kell beszúrni, hanem meg kell növelni a view értékét az illető sorban, vagyis insert helyett update.
első ránézésre ennyi.
elegáns megoldás az lenne, hogy javascript-ből küldésnél küldesz egy httprequest-et a szerveren található php filenak, ami pedig megoldja a háttérben az adatbázis matatását (azt, hogy éppen mire kattintott a júzer meg mondjuk kiolvassa post-ból). -
Briganti
tag
jajjj bocsesz, ezer bocs ...
tehat van egy oldal ahol linkek vannak, es kene nekem egy szamlalo ami megszamolja nekem hogy egy link-re hanyan klikkeltek ra, es az url valtolzo csak egy linket tartalmaz, es ha valaki klikkel erre a linkre akkor ezt a php-t hivja meg, es miutan eggyel novelte az adatbazisba az erteket azutan atiranyit a kivant oldal-ra ... nagyjabol ennyi lenne, csak eppe nem akar mukodni, de nem a GET -l, s a view-l van a baj, hanem valamiert nem akarja frissiteni az adatbazist ...
vagy ha tudtok mas megoldast az is jol jonne ... -
cucka
addikt
válasz
Briganti #734 üzenetére
egyrészt: debugolj lépésről lépésre. nézd meg az első query-det, figyeld meg mit csinál pontosan a programod. irass ki debug üzeneteket.
másrészt: ha kérdezel, akkor próbáld úgy tenni, hogy a többiek segíthessenek. itt egy nem dokumentált kód, amiről még annyit sem árultál el, hogy mire jó. mi van a $_GET[url]-ben? mit akarsz a $view-al csinálni? mire kell a $view++ sor? satöbbi satöbbi. -
Briganti
tag
hat ne nem ertem, en meg csinaltam adatbazisba irast, es mukodott .... beteszem az egesz php-t:
<?php
$url=$_GET['url'];
include(''dbconnect.php'');
$query = ''SELECT * FROM link WHERE link='$url''';
$result = mysql_query($query);
$r=mysql_fetch_array($result);
$view=$r['view'];
$view++;
echo $view.''<br>'';
$query2=''INSERT INTO link ( view ) VALUES ('$view')'';
echo $query2.''<br>'';
if(!mysql_db_query($dbname,$query2,$link_id)) die(mysql_error());
$query = ''SELECT * FROM link WHERE link='$url''';
$result = mysql_query($query);
$r=mysql_fetch_array($result);
$view=$r['view'];
echo $view.''<br>'';
header(''Location:$url'');
die();
?>
s erre ezt irja ki hogy:
1
INSERT INTO link ( view ) VALUES ('1')
0
...
az erteket noveli, s miko meg eccer kiolvasom nem adja hozza .. a tablazat nev, es cella jol van, mi lehet meg a gond? es a mysql_query -val sem mukodik ...
biztos hogy en vagyok a huje, de pls segitsetek -
RedAnt
aktív tag
válasz
Briganti #731 üzenetére
Első blikkre nem látok benne hibát. A mysql_db_query helyett inkább mysql_query-t használj, előbbi elavult. Az adatbázist pedig mysql_select_db-vel adhatod meg.
Egyébként meg debugolj, ha nem megy valami, nézd meg mit is csinál a program, pl. írasd ki a query-t, nézd meg stimmel e, ilyesmi.
mod. lassú vagyok
[Szerkesztve] -
Briganti
tag
$query2=''INSERT INTO link ( view ) VALUES ('$view')'';
if(!mysql_db_query($dbname,$query2,$link_id)) die(mysql_error());
valaki azt mondja meg, hogy ebbe mi a hiba, mar egy feloraja nezem, s sztem valami apro hujeseg van, s nem talalom ... sztem itt a hiba, mert elotte csak kiolvasom a tablazatbol a view cellat novelem eggyel, es vissza kene irjam, de sehogysem jon ossze ... es teszem hozza hogy nem ir ki semilyen errort, csak egyszeruen nem irja be az uj erteket ... -
RedAnt
aktív tag
válasz
Jester01 #726 üzenetére
.. és a tömb elemei köré is kell idézőjel, mint ahogy VladimirR is írta. Vagy idézőjel vagy macskaköröm - két idézőjel, ahogy innen copy-paste-elődne nem jó, ez okozhatta a hibát.
Amúgy ez a megoldás biztonsági szempontból nulla, ebből minimális ügyeskedéssel bármit kiszednek az adatbázisodból vagy törlik ahogy van, ld. mysql injection. Ezért érdemes legalább egy mysql_real_escape_string-gel a POST-olt változókat ''hatástalanítani''.
valahogy így:
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);
mysql_query(''insert into teszt (user, pass) values ('$user','$pass')'');
[Szerkesztve] -
paramparya
őstag
válasz
Realradical #727 üzenetére
Hogy érted ezt a linknek értéket adást?
-
Realradical
őstag
Üdv Mindenki! Fórumhoz van egy fórumlista táblám amiben fel vannak többek közt sorolva a létező fórumtémák nevei, ebből generálok egy szép táblázatos fórumtémákat listázó php-t. A listába már mint link kerülnének be ezek a témák, viszont nem tudom, hogy hogy tudok a linknek értéket adni...Ez ahhoz kéne, hogy továbbvisz a böngésző egy $forumnev értéket ami alapján a külön minden fórumnak generált saját táblát megtalálja. (SELECT * FROM $forumnev-->fetch-->táblázatos formába phpban maga a fórum) Viszont olyan gondom van, hogy nem tudok linken keresztül értéket adni...valakinek van tippje ezzel kapcsolatban? Olvasgattam, hogy a javascript onclickje megoldás lehet, de ahhoz nem értek...
-
tkazmer
addikt
Ebben a sorban mi lehet a hiba?:
mysql_query(''insert into teszt (user, pass) values ('$_POST[user]'), ('$_POST[pass]') '')or die(''query error'');
Azt szeretném elérni, hogy a teszt nevű tábla user oszlopába az user beviteli mező által küldött szöveg legyen beszúrva, u.ez a pass-al. Így postolok:
<FORM ACTION=''bevitel.php'' METHOD=POST>
<input type=text name=''user'' size=30>
<input type=text name=''pass'' size=30>
<p><input type=submit name=''submit'' value=''Bevitel''></p>
Jah, ha így csinálom:
($_POST[''user''),
Akkor arra ezt kapom vissza:
Parse error: parse error, unexpected ''''
[Szerkesztve] -
VladimirR
nagyúr
... WHERE cim LIKE '%{$_POST["cim"]}%' OR ...
-a % joker-karakter, tetszoleges szamu (akar nulla is) tetszoleges karakterre
-egy darab tetszoleges karakterre az _ (alulvonas) a joker-karakter
-tombelemre hivatkozaskor az index-et idezojelbe kell tenni ( $_POST[cim] helyett $_POST["cim"] )
-mivel az elobbi miatt borulnak a string hatarai (meg egyebkent is sokkal kevesebb gondot okoz) ha idezojelek kozt szursz be valtozot, tedd kapcsos zarojelbe -
tkazmer
addikt
Hogy tudnám azt megoldani, hogy amikor egy beviteli mező szövegét keresem az adatbázisban, akkor ne csak azt adja ki, ami pontosan a beírt szöveg, hanem azokat, amik tartalmazzák a beírt szöveget?
<FORM METHOD=POST>
<input type=text name=''cim'' size=20>
<p><input type=submit name=''submit'' value=''keresés''></p>
</FORM>
Arra a szövegre, amit ide beír a felhasználó, kellene úgy rákeresni, hogy ne csak pontosan a beírt szöveget adja ki.
Jelenleg így csinálom:
$par = ''select * from dvd_filmek where cim like ('$_POST[cim]') or nyelv like('$_POST[nyelv]')'' or die(''post error'');
Viszont így csak azokat keresi meg, amik megegyeznek a beírt szóval. Vagyis ha pl azt írom be, h ''user'' akkor csak az ''user''-t találja meg, mondjuk a ''users''-t már nem, és ezen kellene módosítani.
[Szerkesztve] -
tkazmer
addikt
És itt az újabb jó hír:
MŰKÖDIK!!
Úgy tűnik, h az újratelepítés után már csak annyi volt a baj, h root felhasználüként próbáltam kapcsolódni, és az vmiért nem sikerült. De nem baj, a fő, h most megy.
Mindenkinek nagyon köszönöm a segítségét!!(bár még sztem előbb-utóbb jelentkezem
)
#719) alitak
Jah, persze, tulajdonképpen a te fileodat akartam futtatni, csak annyi file van már abban a www és htdocs mappákban, h nem mindig tom, h melyik az, amelyiket épp tesztelés céljából futtatnom kellene...
[Szerkesztve] -
alitak
senior tag
Az, hogy az előző egyszerű php-mysql oldal nem fut le hiba nélkül, az nem túl jó.
Ennek az oldalnak az eleje jól néz ki. Viszont szerintem ez a die() nem nyerő. Próbáld meg if-fel csinálni, ahogy én is csináltam.
<?php
if ($kapcs = mysql_connect(''localhost'',''root'','''')) echo ''Kapcsolat OK<br>'';
else echo mysql_error() . ''<br>;
if (mysql_select_db(''filmek'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error() . ''<br>'';
?>
<font size=''5''>filmek</font><br>
<table border=1 cellpadding=''3'' cellspacing=''3''>
<tr>
<td>cim</td>
<td>nyelv</td>
<td>felirat</td>
<td>hossz</td>
</tr>
<?php
$par = ''select * from dvd_filmek'';
if ($adatb = mysql_query($par)) echo ''Adatbázis beolvasás OK<br>'';
else echo mysql_error();
while ($sor = mysql_fetch_array($adatb))
{
?>
<tr>
<td><?= $sor[''cim'']?></td>
<td><?= $sor[''nyelv'']?> </td>
<td><?= $sor[''felirat'']?></td>
<td><?= $sor[''hossz'']?></td>
</tr>
<?php } ?>
</table>
<?php
mysql_close($kapcs);
?>
Figyelj rá, hogy a ph motor a kettős idézőjelből két darab szimpla idézőjelet rak! '' => ' '
[Szerkesztve]
[Szerkesztve] -
tkazmer
addikt
Nah, még egy jó hír:
Connect OK
Select OK
Viszont ez:....
<?php
$kapcs = mysql_connect(''localhost'',''root'','''') or die(''mysql connect hiba'');
mysql_select_db(''filmek'',$kapcs) or die(''mysql select hiba'');
?>
<font size=''5''>filmek</font><br>
<table border=1 cellpadding=''3'' cellspacing=''3''>
<tr>
<td>cim</td>
<td>nyelv</td>
<td>felirat</td>
<td>hossz</td>
</tr>
<?
$par = ''select * from dvd_filmek'';
$adatb = mysql_query($par)or die(''mysql query hiba'');
while ($sor = mysql_fetch_array($adatb))
{
?>
<tr>
<td><?= $sor[''cim''?></td>
<td><?= $sor[''nyelv''?> </td>
<td><?= $sor[''felirat''?></td>
<td><?= $sor[''hossz''?></td>
</tr>
<? } ?>
</table>
<?php
mysql_close($kapcs);
?>
....nem akarja megnyitni a kért adatbázist... -
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
Nah, némi munka és sikertelenség után eljutottam odáig, h hagyom az egészet a fenébe, és újratelepítettem az apache-ot, a php-t és a mysql-t egyben, wamp néven. Így mostmár nagyjából mindig kapok vissza vmit, van phpmyadminom, stb, most annyira boldog vok, h megyek is aludni
-
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. -
alitak
senior tag
Hát én ezt futattam le:
<html>
<head>
<title>Teszt</title>
</head>
<body>
<?php
if ($kapcs = mysql_connect(''localhost'',''proba'',''proba'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''forum'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error();
mysql_close($kapcs);
?>
</body>
</html>
És ezt adta:
Connect OK
Select OK
Persze a localhost-on van a mysql telepítve, proba a usernév és proba a pass, valamint van egy forum adatbázisom. Ha ez már sehogy sem fut le, akkor szerintem nem jól van/nincs mysql telepítve. -
alitak
senior tag
válasz
Jester01 #708 üzenetére
Jujj, erre nem is gondoltam.
Az előző példa helyesen:
<html>
<head>
<title>Teszt</title>
</head>
<body>
<?php
if ($kapcs = mysql_connect(''localhost'',''user'',''pass'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''atadb'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error();
mysql_close($kapcs);
?>
</body>
</html>
mod: tkazmer: Azt csak simán írd át <title>Teszt</title> -ra
[Szerkesztve] -
alitak
senior tag
Ez lefut?
<html>
<head>
<title><?= ''Teszt''?></title>
</head>
<body>
<?
if ($kapcs = mysql_connect(''localhost'',''user'',''pass'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''atadb'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error();
mysql_close($kapcs);
?>
</body>
</html>
mod: Figyelj oda az idézőjelekre: a PH! motor átírja ezt: '' erre: ' '
[Szerkesztve] -
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 -
alitak
senior tag
Próbáld meg így átírni minden parancsot:
<html>
<head>
</head>
<body>
<?
if ($kapcs = mysql_connect(''localhost'',''user'',''pass'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''atadb'',$kapcs)) echo ''Select OK<br>'';
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);
?>
</body>
</html>
[Szerkesztve] -
tkazmer
addikt
Viszont vmi komoly baj lehet, mert ha ezt a hello-s részt beszúrom a többi elé, már akkor sem jelenik meg...
Aktív témák
Hirdetés
- Csere-Beszámítás! Felsőkategóriás számítógép PC Játékra! I9 13900KF / RTX 4080 / 32GB RAM / 1TB SSD
- DELL PowerEdge R730xd 12LFF rack szerver - 2xE5-2680v3,64GB RAM,4x1GbE,H330 RAID v ZFS
- AKCIÓ! Lenovo Legion Slim 5 16AHP9 notebook - R7 8845HS 16GB RAM 512GB SSD RTX 4060 8GB Win11
- Eladnád a telefonod? KÉSZPÉNZES OKOSTELEFON FELVÁSÁRLÁS azonnali fizetéssel!
- Apple iPhone 12 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest