Autor | Zpráva | ||
---|---|---|---|
Fisak Profil |
#1 · Zasláno: 18. 10. 2012, 15:06:16 · Upravil/a: Fisak
Dobrý den. Mám problém s tím, že pokud zaškrtnu checkbox tak je to v pohodě.. ale pokud nezaškrtnu checkbox tak už mi to píše hlášku "Notice: Undefined index: web_spacer in F:\localhost\insignia\admin\php_modules\general_settings\index.php on line 10"
checkbox: <?php $slozka_u_pl = OpenDir ("plugins/usefull_plugins/"); while (false !== ($soubor_pl = ReadDir ($slozka_u_pl))) { if($soubor_pl != "." and $soubor_pl != ".." and $soubor_pl != "") { $soubor_u_pl = str_replace("_", " ", $soubor_pl); if(options($soubor_pl) == "on") { echo "<label><input name=\"$soubor_pl\" type=\"checkbox\" class=\"form\" size=\"25\" checked=\"checked\"/><a href=\"".options("mod_rewrite", "admin", "plugins", "$soubor_pl")."\">".ucfirst("$soubor_u_pl")."</a></label> || "; } else { echo "<label><input name=\"$soubor_pl\" type=\"checkbox\" class=\"form\" size=\"25\"/><a href=\"".options("mod_rewrite", "admin", "plugins", "$soubor_pl")."\">".ucfirst("$soubor_u_pl")."</a></label> || "; } } } ?> a php kod pro ukládání do db: //nastavení pluginů $slozka_u_pld = OpenDir ("plugins/usefull_plugins/"); while(false !== ($soubor_pld = ReadDir ($slozka_u_pld))) { if($soubor_pld != "." and $soubor_pld != ".." and $soubor_pld != "") { $form_soubor_pld = preg_replace('#[^0-9\a-z\-\_\.]#ui', '', $_POST[$soubor_pld]); $overeni = DB::query("SELECT * FROM [:pref:options] where [type] = %s", $soubor_pld); if(count($overeni)) { DB::query('UPDATE [:pref:options] SET [text] = %s', $form_soubor_pld, ' WHERE [type]=%s', $soubor_pld); } else { $arr = array( 'type' => $soubor_pld, 'text' => $form_soubor_pld, ); DB::query('INSERT INTO [:pref:options]', $arr); } } } údajně je chyba v tomto řádku " $form_soubor_pld = preg_replace('#[^0-9\a-z\-\_\.]#ui', '', $_POST[$soubor_pld]); " |
||
shaggy Profil |
#2 · Zasláno: 18. 10. 2012, 15:26:34
Platí to, čo platilo v iných témach (stačilo pohľadať), napríklad: Notice: Undefined index: odeslano
Skúsim ťa naviesť, na tom riadku robíš s hodnotou $_POST['web_spacer'], ktorá sa však neodoslala. |
||
Fisak Profil |
#3 · Zasláno: 18. 10. 2012, 15:48:21
shaggy:
ok děkuji.. vyřešil sem to takto: $post_soubor = isset ($_POST[$soubor_pld]) ? $_POST[$soubor_pld] : ('default'); $form_soubor_pld = preg_replace('#[^0-9\a-z\-\_\.]#ui', '', $post_soubor); |
||
Fisak Profil |
#4 · Zasláno: 18. 10. 2012, 17:40:05
tak znova tu mám ten samý problém ale se sessionem:
<?php if(isset($_POST['change'])) { if(!empty($_POST["old_pass"]) and !empty($_POST["new_pass_1"]) == !empty($_POST["new_pass_2"]) and !empty($_POST["new_pass_1"]) and !empty($_POST["new_pass_2"])) { //podmínky pro přepsání starého hesla $admin_sql = DB::query("select * from [:pref:admins] where %and", array( 'id = %i', mysql_real_escape_string($_SESSION["admin_id"]), 'pass = %s', mysql_real_escape_string($_SESSION["old_pass"]), )); $pass1 = md5($_POST["new_pass_1"]); $pass2 = md5($_POST["new_pass_2"]); if(mysql_num_rows($admin_sql) and $pass1 == $pass2) { DB::query("UPDATE [:pref:admins] SET [pass] = '".$pass2."' where [id] = %i", mysql_real_escape_string($_SESSION["admin_id"])); //zapsání nového hesla redirect_page("admin", "option_admins", "1"); } else redirect_page("admin", "option_admins", "2"); } else redirect_page("admin", "option_admins", "2"); } což by měla být nejspíš blbost ..vždyť old pass už je v sessionu tak proč by bylo undefined ? |
||
Davex Profil |
#5 · Zasláno: 18. 10. 2012, 18:42:21
Vypiš si
var_dump($_SESSION) . Pole by mělo být prázdné, protože chybí session_start() .
|
||
Tori Profil |
Označená část na ř.4 je přebytečná, následující dvě podmínky jsou více restriktivní:
if(!empty($_POST["old_pass"]) and !empty($_POST["new_pass_1"]) == !empty($_POST["new_pass_2"]) and !empty($_POST["new_pass_1"]) and !empty($_POST["new_pass_2"])) {
Btw proč ukládáte do session i otisk hesla přihlášeného uživatele a zcela ignorujete, co vlastně zadal do formuláře jako současné heslo? Co když se někdo přihlásí ze společného počítače, pak odejde, a někdo jiný mu zkusí změnit heslo, přičemž jako staré heslo zadá nějakou blbost. Změna hesla projde, ne? |
||
Fisak Profil |
#7 · Zasláno: 18. 10. 2012, 20:05:46
Tori:
Ona to totiž byla ta chyba.. tam nemělo být $_SESSION["old_pass"]; ale => $_POST["old_pass"]; a pak už to funguje normálně v pohodě :-) |
||
Časová prodleva: 12 let
|
0