Hirdetés

2024. április 19., péntek

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  MySQL topic

Hozzászólások

(#1) Angel82


Angel82
csendes tag


Sziasztok!

MySQL-ben szeretném azt elérni, hogy die(mysql_error()) esetén ne hibaüzenetet írjon ki, hanem ugorjon x.php oldalra (ahova én írom a hibaüzit). Tudom, hogy die(''Szöveg'')-et lehet csinálni, de sajnos ebben az esetben nem formázható a szöveg, meg ilyenek. Ha valaki tudna segíteni, kérem írjon.

Thx előre is!

ASUS A6JA-Q001H

(#2) L3zl13 válasza Angel82 (#1) üzenetére


L3zl13
nagyúr

Ne die függvényt használj, hanem valami mást...

Ha még semmit nem írtál ki az oldalra, akkor header() -rel átirányítod, és GET-tel átadod a mysql_error() visszaadott értékét.

Bár nem tom miért kell egyátálán átirányítani. Ugyanezen az oldalon is kiírhatnád a hibaüzit.

[Szerkesztve]

Aki hülye, haljon meg!

(#3) b14 válasza Angel82 (#1) üzenetére


b14
senior tag

if(hiba) header(''Location: x.php'');

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#4) Angel82 válasza b14 (#3) üzenetére


Angel82
csendes tag

tehát ez esetben if (die()) header(Location: x.php) ?

ASUS A6JA-Q001H

(#5) Angel82 válasza L3zl13 (#2) üzenetére


Angel82
csendes tag


Itt igazából arról van szó, hogy get-tel kap az oldal egy paramétert, ami alapján megjelenít szépen táblában 30 lekérdezés után egy rakat adatot. Azt szeretném elérni, ha semmit se kap paraméterként, akkor írjon ki valamit.

Íme a kód:

<?php
$colname_tk = ''1'';
if (isset($_GET['id';])) {
$colname_tk = (get_magic_quotes_gpc()) ? $_GET['id';] : addslashes($_GET['id';]);
}
mysql_select_db($database_myconn, $myconn);
$query_tk = sprintf(''SELECT * FROM sajt WHERE id = %s'', $colname_tk);
$tk = mysql_query($query_tk, $myconn) or die(mysql_error());
$row_tk = mysql_fetch_assoc($tk);
$totalRows_tk = mysql_num_rows($tk);

ASUS A6JA-Q001H

(#6) Angel82


Angel82
csendes tag

Tehát a gettel kapott id alapján csinál egy lekérdezést, de ha nincs id akkor írjon ki vmit

ASUS A6JA-Q001H

(#7) L3zl13 válasza Angel82 (#4) üzenetére


L3zl13
nagyúr

NEM die!

A die egy függvény ami megállítja a további futást, és kiírathatsz vele egy tetszőleges üzenetet. Ha te nem ezt akarod csinálni, akkor ne használd a die-t.

Aki hülye, haljon meg!

(#8) VladimirR válasza Angel82 (#5) üzenetére


VladimirR
nagyúr

egyreszt Bővebben: link

masreszt

if (isset($_GET['id'])) {
   //ide jon a lekerdezes es az eremeny kiiratasa
} else {
   print ''aggyal meg parametert'';
}

(#9) b14 válasza Angel82 (#5) üzenetére


b14
senior tag

$tk = mysql_query($query_tk, $myconn) or header(''Location: x.php'')

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#10) Angel82 válasza b14 (#9) üzenetére


Angel82
csendes tag


Köszönöm! Megy! :))

ASUS A6JA-Q001H

(#11) L3zl13 válasza b14 (#9) üzenetére


L3zl13
nagyúr

De minek lefuttatni a lekérdezést, ha előre tudod, hogy hibás lesz? :U

Aki hülye, haljon meg!

(#12) b14 válasza L3zl13 (#11) üzenetére


b14
senior tag

Nem figyeltem a progit, csak a kérdére válaszoltam.
Amit kér, abban segítek.
Nem hibakeresést kért, bár lehet, hogy az lett volna a jobb neki. De nem tudom.

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#13) L3zl13 válasza b14 (#12) üzenetére


L3zl13
nagyúr

Ja, csak majd les egy nagyot, mikor egy delete-nél törli az egész tábla tartalmát, mert nem csekkolta, hogy átjött-e paraméter... :DDD

Aki hülye, haljon meg!

(#14) b14 válasza L3zl13 (#13) üzenetére


b14
senior tag

LOL

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#15) Angel82 válasza L3zl13 (#11) üzenetére


Angel82
csendes tag


Köszi a segítséget, de teljesen félreérted a lényeget. Messze nem hibakeresést kértem, köszönöm! Van egy keresés oldal, ami átad egy értéket url paraméterként a megjelenítésért felelős oldalnak. Még mielőtt gondot csinálsz belőle, azért url paraméter és nem más, mert ez az oldal több helyről is megkaphatja ezt, többek között önmagától, így post, session stb... kizárva. Annyi volt a gondom, hogy ha nem kap paramétert az oldal, akkor le sem futott a legelső lekérdezés, hanem mysql_error-ral befejezte az oldal futtatását. Ezt szerettem volna kiküszöbölni valami értelmes megoldással.

Mégegyszer köszönöm a segítséget!

ASUS A6JA-Q001H

(#16) L3zl13 válasza Angel82 (#15) üzenetére


L3zl13
nagyúr

De nem érted?
Minek kell megvárnod a mysql errort? Már az sql lekérdezés előtt is meg tudod nézni kaptál-e paramétert vagy sem. :U
Ha nem kaptál akkor úgyis hibás lesz a lekérdezés, akkor meg minek futtatod le?

Ennél a lekérdezésnél csak annyi múlik rajta, hogy mysql errort lát a felhasználó, vagy pedig hibaüzenetet, de máskor esetleg hazavághatja az adatbázisod egy ellenőrizetlenül felhasznált paraméter.

Nézz csak bele a PHP kérdések topicba. Pont mostanság írogatott valaki az SQL inject támadásról...


[Szerkesztve]

Aki hülye, haljon meg!

(#17) Angel82 válasza L3zl13 (#16) üzenetére


Angel82
csendes tag


Ok, értem mire gondolsz! Végülis akkor az isset alapján döntsem el a dolgot és ha kell, irányítsam át ahova jólesik, nem?

Nagyjából átolvastam az inject-es részt. Lényegileg tehát arról van szó, hogy egy végtelenített lekérdezést/insertet stb.. hoznak létre kedves emberkék a változó megadásával.

Néhány kérdés:

Hogyan láthatják a változóim nevét?

Ebben az esetben sztem bármilyen változót megadhatna paraméterként, legfeljebb nem lenne eredménye a lekérdezéshalmaznak, nem?

Ha ráérsz, várom válaszod!

ASUS A6JA-Q001H

(#18) L3zl13 válasza Angel82 (#17) üzenetére


L3zl13
nagyúr

Pl egy mysql errorból. Vagy próbálkozgatással szerintem.
Vagy ha már tudnak parancsokat futtatni, akkor list tables meg describe table is müxik gondolom... :F

Annyira én sem merültem el a témában...

Aki hülye, haljon meg!

(#19) b14


b14
senior tag

Kerem, valaki segitsen feltelepiteni a gepemre az sqlt.
Msn cimem: email cimem.
A tavsegitseg lenne a legjobb.

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#20) clone válasza b14 (#19) üzenetére


clone
csendes tag

Ha kell még a segítség, keress meg a (master@programozo.hu) MSN-en!

Üdv: Gábor

UHU-Linux 1.2 STABIL (Rajt!)

(#21) Akcept


Akcept
tag

Üdv mindenkinek!
MySql biztonsági kérdésem van. A config fájlt védem a következő kódrészlettel:

if (eregi(''config.php'',$_SERVER['PHP_SELF';])) {
Header(''Location: valami.php'');
die();

A config-ban található név-jelszó-adatbázisnév birtokában hozzáférnek az adatbázishoz, és azt tehetnek amit akrnak, ellenkező esetben nem.

A kérdésem a következő: miért kell az adatbázisban titkosítva tárolni a jelszavakat amikor a configban (vagy máshol) úgyis titkosítás nélkül van a fent említett triumvirátus? És még mit tegyek a nagyobb biztonságért?
Előre is kössz.

(#22) KovacsUr válasza Akcept (#21) üzenetére


KovacsUr
addikt

A configot szerencsés esetben nem érik el kívülről. :) A helyi admin persze láthatja a forrást.

So it goes… We stand alone by standing stones and turn them into circles.

(#23) L3zl13 válasza Akcept (#21) üzenetére


L3zl13
nagyúr

Szvsz config.php-ban azért van titkosítatlanul, mert a kódot úgyis csak az látja, akinek fájl szintű hozzáférése van a szerverhez. Az meg úgyis megtehet bármit.

Adatbázisbéli titkosítás pedig szerintem kimondottan csak azoktól véd akik SQL injecttel vagy hasonló módon hozzáférnek az adatbázishoz.

A beírt kódnak meg őpszintén szólva nem sok értelmét látom... :F

Aki hülye, haljon meg!

(#24) Akcept válasza L3zl13 (#23) üzenetére


Akcept
tag

Kössz a válaszokat. A kódrészletet az ismert nyílt forráskódú fő portálmotorból vettem, régebben egy-egy szerver megengedte kívülről az includot.
-Akcept-

(#25) KovacsUr válasza L3zl13 (#23) üzenetére


KovacsUr
addikt

A beírt kódnak meg őpszintén szólva nem sok értelmét látom...

Hogy-hogy? :F

So it goes… We stand alone by standing stones and turn them into circles.

(#26) L3zl13 válasza Akcept (#24) üzenetére


L3zl13
nagyúr

Szvsz max attól véd, hogy közvetlenül meghívják a fájlt include nélkül...

Aki hülye, haljon meg!

(#27) KovacsUr válasza L3zl13 (#26) üzenetére


KovacsUr
addikt

Igen, pontosan attól véd. :)

So it goes… We stand alone by standing stones and turn them into circles.

(#28) L3zl13 válasza KovacsUr (#27) üzenetére


L3zl13
nagyúr

Egy config.php-ban értékeket adok, beállítok, csatlakozok, de nem teszek semmi olyat ami visszaküldődne a kliensnek. Tehát elvileg nem tudhat meg belőle semmit, még ha le is futtatja.

Aki hülye, haljon meg!

(#29) jeszi


jeszi
tag

Van egy nagy orvos adatbázis Access-ben, amit napi szinten karban kell tartanom. Ezenkívül gyakran kérnek tőlem különböző listákat. Pl.: Háziorvosok Bp-en, tel. szükséges stb.

Írnom kéne egy olyan alkalmazást, amellyel ezeket a feladatokat el tudom látni. Intranetes megoldást szeretnék, php+Apache+MySql használatával.

Első lépésben át akarom konvertálni az Access adatbázist MySql-re. Az adatok áthelyezése csak akkor megy, ha már a táblákat létrehoztam MySql-ben. Lenne olyan módszer, ami a táblákat is létrehozza? És akkor nem kell nekem manuálisan beirogatni a táblákat, mezőneveket, típusokat.

Nem félek a haláltól, majdcsak túlélem valahogy!

(#30) muad_dib válasza jeszi (#29) üzenetére


muad_dib
tag

Egy időben szívtam olyas dolgokkal, hogy adatbázisszerkezetet kellet objektumokra bontva bizergélni, és a neten van néhány olyan progi, aminek megadhatsz valós adatbázist, csinál okos ojjektumokat (táblákat, view-kat, meg ilyenek) és tudja a kész cuccot exportálni. Sajna nem ugrik be egy név sem, amit tudok, hogy nekünk itt cégnél van egy MS Visio nevű cucc - ami általában prezi készítésre használatos felénk - és ő tutira tudott ilyet csinálni, bár feltételezem egyszerűbb megoldást is találsz...

Hogyan nősül a hálózati játék fanatikus? - Holtomiglan holtodiglan...

(#31) muad_dib


muad_dib
tag

Nemtom ezt nézted-e már..
http://www.kitebird.com/articles/access-migrate.html

Hogyan nősül a hálózati játék fanatikus? - Holtomiglan holtodiglan...

(#32) L3zl13 válasza jeszi (#29) üzenetére


L3zl13
nagyúr

Create table is az SQL része.
PHP-ből sql lekérdezésként futtatva létrehozza a táblát.


PHP ha windows webszerveren fut, access adatbázist is tud kezeli ODBC-n keresztül...

Aki hülye, haljon meg!

(#33) muad_dib válasza L3zl13 (#32) üzenetére


muad_dib
tag

tényleg! ez meg eszembe se jutott...

Hogyan nősül a hálózati játék fanatikus? - Holtomiglan holtodiglan...

(#34) Törzsfőnök


Törzsfőnök
tag

Hello

A mysql-ben még egyelőre nem vagyok járatos, viszont a standard SQL-hez értek alap szinten :).
Azt halottam, hogy a mysql-ben nem lehet egymásbaágyazott SQL lekérdezést írni. Informátorom azt is hozzátette, hogy 4.xx verziót használja, és ott sem lehet még. Néztem a neten az 5-ös verzióra vonatkozó ficsöröket, de közöttük sem találtam arra való utalást. Akkor hogy lehet megvalósítani egy eredetileg egymásbaágyazott lekérdezést egyszerűen mysql-ben? :F

(#35) muad_dib válasza Törzsfőnök (#34) üzenetére


muad_dib
tag

nemtom, lehet h hulye vok, de szerintem 4ben siman lehet ilyet csinalni... most epp nem erek ra de megprobalom megnezni ha meg erdekel esetleg.

Hogyan nősül a hálózati játék fanatikus? - Holtomiglan holtodiglan...

(#36) Törzsfőnök válasza muad_dib (#35) üzenetére


Törzsfőnök
tag

Hát persze, nézd meg akkor, hátha lehet, de én azt halotam nem lehet egymásbaágyazott lekérdezést csinálni. Sajnos nem tudom kipróbálni jelenleg.

(#37) Tele von Zsinór


Tele von Zsinór
őstag

Nekem magával a MySQL szerverrel kapcsolatban lenne kérdésem: egy cégnek írok adatbázis kezelő progit (mi mást, ha itt kérdezek? :) ), a szervergépre felraktam MySQL szervert, csináltam egy farszer adatbázist, bele 3 táblát, jogokat kiosztottam (''grant all privileges on farszer.* to 'ODBC'@'%' '', ne menjünk most bele ennek a veszélyeibe, nincs net a szerveren, támadástól egyelőre nem kell tartani), és ekkor ment is a progi rendesen, hálózaton keresztül. Viszont ekkor jött még néhány új igény, aminek a következménye sok-sok alter table lett. A describe helyesen jelzi a tábla felépítését. A progi a korábban is létező mezőkkel rendesen működik, de amikor az újakba próbál írni, nem történik semmi. Ha MySQL konzollal módosítok egy rekordot, akkor azt helyesen látja, de írni így se tudja. Találkozott már valaki hasonlóval?

(#38) L3zl13 válasza Tele von Zsinór (#37) üzenetére


L3zl13
nagyúr

Próbáltad újra megadni az engedélyeket? :F

Aki hülye, haljon meg!

(#39) Tele von Zsinór válasza L3zl13 (#38) üzenetére


Tele von Zsinór
őstag

Igen, próbáltam újra a grant-ot, de nem segített.

(#40) muad_dib válasza Törzsfőnök (#36) üzenetére


muad_dib
tag

lehet, megneztem
select ize from valami where masikeredmeny = (select masikeredmeny from masikize) and eznekemjo=true;

a zarojel fontos, maskepp nem eszi meg

[Szerkesztve]

Hogyan nősül a hálózati játék fanatikus? - Holtomiglan holtodiglan...

(#41) Tele von Zsinór válasza Tele von Zsinór (#39) üzenetére


Tele von Zsinór
őstag

up!

(#42) Zoltán


Zoltán
őstag

Sziasztok!

Írtam ezt a kódot:

<?php
$database=''db_ak48'';
$sqlhost=''localhost'';
$sqluser=''ak48'';
$sqlpass=''...törölve...'';

$kapcsolat=mysql_connect($sqlhost, $sqluser, $sqlpass);
if (! $kapcsolat) die (''Nem lehet csatlakozni'');
print ''Sikerült a kapcsolat!'';
mysql_select_db($database)
or die (''Nem lehet megnyitni az adatbázist:''.mysql_error() );
print ''Sikerült kiválasztani a $database adatbázist!'';
mysql_close ($kapcsolat)

CREATE TABLE elsotablam
(
azonosito INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (azonosito),
nev VARCHAR (8),
jelszo VARCHAR (10),
email VARCHAR (250),
datum VARCHAR (20),
ip VARCHAR (250));
)


?>

De a 17. sorra ( Create table........) hibát ír. Addig biztos, hogy jó, amíg csatlakozik az adatbázishoz, csak a tábla fejlécét nem tudom létrehozni. Mit írhattam el?
Köszi előre is!

(#43) Tele von Zsinór válasza Zoltán (#42) üzenetére


Tele von Zsinór
őstag

ad1: miért zárolod a mysql kacsolatot a query végrehajtása előtt?
ad2: a create table miért nem egy mysql_query utasításban van benne?

(#44) Zoltán válasza Tele von Zsinór (#43) üzenetére


Zoltán
őstag

''ad1'' -Erre nem tudok, mit mondani, egyszerűen ilyen töketlen vagyok. :B Elnézést kérek.
''ad2'' -mert nem tudom, hogyan kell. Megírnád? Köszi!

[Szerkesztve]

(#45) Zoltán válasza Zoltán (#44) üzenetére


Zoltán
őstag

Szóval itt tartok:

<?php
$database=''db_ak48'';
$sqlhost=''localhost'';
$sqluser=''ak48'';
$sqlpass=''törölve'';

$kapcsolat=mysql_connect($sqlhost, $sqluser, $sqlpass);
if (! $kapcsolat) die (''Nem lehet csatlakozni'');
print ''Sikerült a kapcsolat!'';
mysql_select_db($database)
or die (''Nem lehet megnyitni az adatbázist:''.mysql_error() );
print ''Sikerült kiválasztani a $database adatbázist!'';

mysql_query(
CREATE TABLE elsotablam //ez lesz itt a tábla neve
(
azonosito INT NOT NULL AUTO_INCREMENT, //INT-egész szám
PRIMARY KEY (azonosito),
nev VARCHAR (8),
jelszo VARCHAR (10),
email VARCHAR (250),
datum VARCHAR (20),
ip VARCHAR (250));
)
);
mysql_close ($kapcsolat)

?>

Kedves Hozzáértők: Mondjátok el légyszi, hogy hogyan kellene helyesen használni a my_sql_query- t! Kökő!

[Szerkesztve]

(#46) muad_dib válasza Zoltán (#45) üzenetére


muad_dib
tag

saccra ami nekem nem teccik az a pontosvesszod meg a zarojelezes..
amugy mysq_query(''create table ize ( id int(10) not_null, masik varchar(30), harmadik varchar(15), primary key(id));'');

Hogyan nősül a hálózati játék fanatikus? - Holtomiglan holtodiglan...

(#47) Zoltán


Zoltán
őstag

Most sikerült kapcsolódni az adatbázishoz, de semmit sem ír kia a $sorok-ra.

<?php
$database=''db_ak48'';
$sqlhost=''localhost'';
$sqluser=''ak48'';
$sqlpass=''3660qHhJyNkw6'';

$kapcsolat=mysql_connect($sqlhost, $sqluser, $sqlpass);
if (! $kapcsolat) die (''Nem lehet csatlakozni'');
print ''Sikerült a kapcsolat!'';
mysql_select_db($database)
or die (''Nem lehet megnyitni az adatbázist:''.mysql_error() );
print ''Sikerült kiválasztani a $database adatbázist!'';

mysql_query(''
CREATE TABLE probatabla

azonosito INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (azonosito),
nev VARCHAR (8),
jelszo VARCHAR (10),
email VARCHAR (250),
datum VARCHAR (20),
ip VARCHAR (250));
'');

$nev=''Anna'';
$jelszo=''bingo777'';
$email=''annana@franconmail.hu'';
$datum=''2004.11.27. - 17:20'';
$ip=''555.666.777.888'';

$parancs = ''INSERT INTO probatabla
(azonosito, nev, jelszo, email, datum, ip)
VALUES
('$azonosito','$nev','$jelszo','$email','$datum','$ip')'';

$sorlekerdez = mysql_query(''SELECT * FROM probatabla'');
$sorok= mysql_num_rows($sorlekerdez);

print ''$sorok'';

mysql_close ($kapcsolat)

?>

Tudtok ajánlani valami jó mysql tutorialt, mert amit én találtam az semmire se jó, mint az fentebb látszik. Köszi.

(#48) VladimirR válasza Zoltán (#47) üzenetére


VladimirR
nagyúr

jelszo!!!

(#49) Zoltán válasza VladimirR (#48) üzenetére


Zoltán
őstag

Megváltoztattam.

(#50) muad_dib válasza Zoltán (#47) üzenetére


muad_dib
tag

:DDD
Azért lehet, mert ugyan összerakod a $parancsot, de nem annyira futtatod le :)
jah, amúgy javaslat: ugyan nem kötelező de azért rakd csak ki a ;-t a mysql parancsok után...

okos php doksi
Bővebben: link



[Szerkesztve]

Hogyan nősül a hálózati játék fanatikus? - Holtomiglan holtodiglan...

Útvonal

Fórumok  »  Szoftverfejlesztés  »  MySQL topic
Copyright © 2000-2024 PROHARDVER Informatikai Kft.