MySQL topic - Szoftverfejlesztés fórum

üzenetek

hozzászólások


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!


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]


b14
(senior tag)

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


Angel82
(csendes tag)

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


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);


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


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.


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'';
}


b14
(senior tag)

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


Angel82
(csendes tag)


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


L3zl13
(nagyúr)

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


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.


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


b14
(senior tag)

LOL


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!


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]


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!


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...


b14
(senior tag)

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


clone
(csendes tag)

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

Üdv: Gábor

üzenetek