Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 17. 3. 2013, 10:46:10
Script přestane funguvovat, když tam vložím tohle:
$email = db_escape(trim($_POST["email"])); Přitom proměnnou $_POST["email"] ve scriptu normálně používám a není s ní žádný problém..
Nevíte někdo kde by mohl být problém?? |
||
Medvídek Profil |
#2 · Zasláno: 17. 3. 2013, 10:50:18
quatzael:
Zkontroluj si funkci db_escape |
||
Mike8748 Profil |
#3 · Zasláno: 17. 3. 2013, 10:51:07
quatzael:
a funkci db_escape mas definovanou? popis problému "nefunguje" je docela k ničemu. máš zapnuté vypisování chyb? píše ti to něco? |
||
quatzael Profil |
Mike8748:
nemám, myslel jsem, že je předdefinovaná.. Našel jsem ji tady v diskuzi.. function db_escape($str) { return mysql_real_escape_string(@get_magic_quotes_gpc() ? stripslashes($str) : $str); } Já teda nemám vůbec ponětí co ta funkce dělá.. Ale na php.net o tomhle způsobu s get_magic_quotes_gpc() mluví jako o deprecated. |
||
Tori Profil |
|||
quatzael Profil |
#6 · Zasláno: 17. 3. 2013, 11:36:39 · Upravil/a: quatzael
Tori:
Jo, stejně nefunguje. Script běží, ale z toho řetězce udělá jinej.. Neexistuje něco lepšího a skutečně fungujícího?? Jestli to tedy je opravdu potřebné.. |
||
Tori Profil |
quatzael:
„Script běží, ale z toho řetězce udělá jinej..“ Jakej? Btw jinak ty SQL dotazy spouštíte přes mysql_query nebo něco jiného (mysqli např.)? |
||
Petr__ Profil * |
#8 · Zasláno: 17. 3. 2013, 12:09:35
quatzael:
Máte tu funkci definovanou v kódu před tím, než ji použijete? Jak už zmiňoval [#3] Mike8748: popis problému "nefunguje" je docela k ničemu. máš zapnuté vypisování chyb? píše ti to něco? Ta funkce slouží k bezpečnému ošetření dat před vložením databáze. Co od ní očekáváte vy? Pro svůj účel je plně dostačující a fungující. |
||
Virtus Profil |
#9 · Zasláno: 17. 3. 2013, 12:12:29
Pokud můžeš tak použí PDO, tam se tenhle problém řeší automaticky interně a ty se nemusíš vůbec o nic starat, jen předáš správně parametry.
|
||
quatzael Profil |
#10 · Zasláno: 17. 3. 2013, 12:18:08
Tori:
mysqli |
||
Tori Profil |
quatzael:
„mysqli“ tak potom je trochu nelogické používat zároveň mysql_* funkce, když pro mysql_ nemáte ani existující spojení k DB, ani nastavenou znakovou sadu (kterou mysql(i)_real_escape_string využívá). Viz MySQLi::real_escape_string |
||
quatzael Profil |
#12 · Zasláno: 17. 3. 2013, 12:24:28 · Upravil/a: quatzael
Tori, Petr_:
mám jí definovanou předtím, než jí zpustím, ale ta funkce mi ten řetězec prostě smaže.. Tori: toho jsem si nevšiml, přepsal jsem to na mysqli, ale stejně to nefunguje.. |
||
Petr__ Profil * |
#13 · Zasláno: 17. 3. 2013, 12:59:58 · Upravil/a: Petr__
quatzael:
„přepsal jsem to na mysqli, ale stejně to nefunguje..“ A přidal jste také jako první parametr link z připojení mysqli_connect? function db_escape($str) { return mysqli_real_escape_string($link, @get_magic_quotes_gpc() ? stripslashes($str) : $str); } Lepší by bylo ukázat jak přesně to teď používáte v kódu i při vkládání do databáze. A tím pádem je tam ten link třeba procpat i do té funkce... function db_escape($str, $link) { return mysqli_real_escape_string($link, @get_magic_quotes_gpc() ? stripslashes($str) : $str); } A použít : $email = db_escape(trim($_POST["email"]), $link); |
||
quatzael Profil |
Petr_:
session_start(); include ($_SERVER['DOCUMENT_ROOT'] . '/inc/db-connect.php'); function db_escape($str) { return mysqli_real_escape_string($db_connect, @get_magic_quotes_gpc() ? stripslashes($str) : $str); } if (isset($_POST['email']) && isset($_POST['password']) && isset($_POST['url'])) { $email = trim($_POST["email"]); $password = trim($_POST["password"]); $url = str_replace("index.php", "", $_POST["url"]); $dbcheckuser = "SELECT * FROM users_login WHERE email = '$email' AND password = '$password'"; $qresult = mysqli_query($db_connect, $dbcheckuser); $userrow = mysqli_fetch_array($qresult); if (isset($userrow['id'])) { $_SESSION['user'] = $userrow['id']; $_SESSION['user_name'] = $userrow['username']; } } header("Location: $url"); ?> Petr_: function db_escape($str, $link) { return mysqli_real_escape_string($link, @get_magic_quotes_gpc() ? stripslashes($str) : $str); } A použít : $email = db_escape(trim($_POST["email"]), $link); Tohle je ono!! Teď to funguje, díky moc!! |
||
Virtus Profil |
#15 · Zasláno: 17. 3. 2013, 13:24:27
Petr_:
function db_escape($str, $link) { return mysqli_real_escape_string($link, @get_magic_quotes_gpc() ? stripslashes($str) : $str); } quatzael: function db_escape($str) { return mysqli_real_escape_string($db_connect, @get_magic_quotes_gpc() ? stripslashes($str) : $str); } |
||
Petr__ Profil * |
#16 · Zasláno: 17. 3. 2013, 13:26:29
quatzael:
session_start(); include ($_SERVER['DOCUMENT_ROOT'] . '/inc/db-connect.php'); function db_escape($str, $db_connect) { return mysqli_real_escape_string($db_connect, @get_magic_quotes_gpc() ? stripslashes($str) : $str); } if (isset($_POST['email']) && isset($_POST['password']) && isset($_POST['url'])) { $email = db_escape(trim($_POST["email"]), $db_connect); $password = db_escape(trim($_POST["password"]), $db_connect); $url = str_replace("index.php", "", $_POST["url"]); $dbcheckuser = "SELECT * FROM users_login WHERE email = '$email' AND password = '$password'"; $qresult = mysqli_query($db_connect, $dbcheckuser); $userrow = mysqli_fetch_array($qresult); if (isset($userrow['id'])) { $_SESSION['user'] = $userrow['id']; $_SESSION['user_name'] = $userrow['username']; } } header("Location: $url"); ?> |
||
quatzael Profil |
#17 · Zasláno: 17. 3. 2013, 13:31:52
Virtus, Petr_:
Už jsem si to opravil, ještě jednou moc dík! |
||
Časová prodleva: 11 let
|
0