Функция дает возможность добавить бузу с нуля но если находит емайл а пароль что есть в базе не совпадает с введеннім то новий пароль добавлять не хочет!!! function db_add_mail_and_pass($email_and_pass) { //////////////////////////////////////////// $email_true = 0; $email_add = 0; $email_false = 0; $pass_true = 0; $pass_add = 0; $pass_false = 0; //////////////////////////////////////////// $str_email_and_pass = explode("\n", $email_and_pass); for($i = 0; $i < count($str_email_and_pass); $i++) { $email_or_pass = explode(":", $str_email_and_pass[$i]); // деленее на email и пароль $email = $email_or_pass[0]; // берем email $password = $email_or_pass[1]; //берем пароль $date = date("Y-m-d"); if (filter_var($email, FILTER_VALIDATE_EMAIL)) { $sql_isset_email = mysql_query("select * from db_email where email = '".$email."'"); $sql_isset_count = mysql_num_rows($sql_isset_email); $_no_add = false; if (isset($password)) { $pass_true++; }else{ $password = 0; $pass_false++; $_no_add = true;} if ($sql_isset_count == 0) { echo $password.=":"; $add_email = mysql_query("insert into db_email (email, password, date_last_passwd) values ('$email','$password','$date')"); if ($add_email == true) $email_add++; if ($_no_add == false) $pass_add++; } else { if ($password<>0) { $db_isset_password = mysql_fetch_assoc($sql_isset_email); $db_isset_password['password']; $db_password = explode(":", $db_isset_password['password']); $isset_password = false; $o = count($db_password); for($y = 0; $y < $o; $y++) { if (str_replace(" ", "", $db_password[$y]) == str_replace(" ", "", $password)) $isset_password == true; } if ($isset_password == false) { $db_password[count($db_password)] == $password; $res_password = implode(":", $db_password); mysql_query("update db_email set password = '".$res_password."', date_last_passwd = '".$date."' where email = '".$email."'"); $pass_add++; } } } $email_true++; } else { $email_false++; $pass_false++; } } return $email_true.":".$email_add.":".$email_false.":".$pass_true.":".$pass_add.":".$pass_false; } Code function db_add_mail_and_pass($email_and_pass) { //////////////////////////////////////////// $email_true = 0; $email_add = 0; $email_false = 0; $pass_true = 0; $pass_add = 0; $pass_false = 0; //////////////////////////////////////////// $str_email_and_pass = explode("\n", $email_and_pass); for($i = 0; $i < count($str_email_and_pass); $i++) { $email_or_pass = explode(":", $str_email_and_pass[$i]); // деленее на email и пароль $email = $email_or_pass[0]; // берем email $password = $email_or_pass[1]; //берем пароль $date = date("Y-m-d"); if (filter_var($email, FILTER_VALIDATE_EMAIL)) { $sql_isset_email = mysql_query("select * from db_email where email = '".$email."'"); $sql_isset_count = mysql_num_rows($sql_isset_email); $_no_add = false; if (isset($password)) { $pass_true++; }else{ $password = 0; $pass_false++; $_no_add = true;} if ($sql_isset_count == 0) { echo $password.=":"; $add_email = mysql_query("insert into db_email (email, password, date_last_passwd) values ('$email','$password','$date')"); if ($add_email == true) $email_add++; if ($_no_add == false) $pass_add++; } else { if ($password<>0) { $db_isset_password = mysql_fetch_assoc($sql_isset_email); $db_isset_password['password']; $db_password = explode(":", $db_isset_password['password']); $isset_password = false; $o = count($db_password); for($y = 0; $y < $o; $y++) { if (str_replace(" ", "", $db_password[$y]) == str_replace(" ", "", $password)) $isset_password == true; } if ($isset_password == false) { $db_password[count($db_password)] == $password; $res_password = implode(":", $db_password); mysql_query("update db_email set password = '".$res_password."', date_last_passwd = '".$date."' where email = '".$email."'"); $pass_add++; } } } $email_true++; } else { $email_false++; $pass_false++; } } return $email_true.":".$email_add.":".$email_false.":".$pass_true.":".$pass_add.":".$pass_false; }
Какие инжекты? это просто процесс добавления данных в базу видимо с фейк сайта, не знаю , зачем ты все так замудрил или взял этот код где-то, там три строчки
Лень разбираться, тем более ты даже нормально не описал, что это конкретно за функция - изменение пароля/вход/вход с фейка или что-то еще, иди на стаковерфлоу с нормальным описанием проблемы
Как раз таки в момент добавления данных в SQL можно провести иньекцию и вытащить данные из базы или грохнуть вовсе
спс)) я уже все переделал заработало. Это функция для добавления мила и пароля в базу, но если мыло писудствует а пароль отличаетса от то что есть в базе то он добавляетса отдельно. и именно с кодом добавления пароля отдельно вышла проблема но ничего я все переделал работает )))
Все равно кода слишком много для этой задачи) Ты че, дурак? а ну расскажи, как ты реализовываешь работу с базой без функций mysql
Начиная уже с того, что данные передаются в формате майл:пасс, а дальше ты их делишь... зачем? тем более, если кто-то в пароль введет : функция будет работать неправильно
но у меня решение получилось вот таокое <? function db_add_mail_and_pass($email_and_pass) { $str_email_and_password = explode("\n", $email_and_pass); $spec = array("\r","\n","\t"," "); $str_email_and_password = str_replace($spec, "", $str_email_and_password); $str_count = count($str_email_and_password) - 1; for ($i = 0; $i <= $str_count; $i++) { $email_or_password = explode(":", $str_email_and_password[$i]); (String) $email = $email_or_password[0]; (String) $password = $email_or_password[1]; $date = date("Y-m-d"); if (filter_var($email, FILTER_VALIDATE_EMAIL)) { $sql_isset_email = mysql_query("select * from db_email where email = '".$email."'"); $sql_isset_count = mysql_num_rows($sql_isset_email); if (isset($password)) { $pass_true++; }else{ $password = 0; $pass_false++;} if ($sql_isset_count == 0) { $password; mysql_query("insert into db_email (email, password, date_last_passwd) values ('$email','$password','$date')"); } else update_password($email, $password); } } } function update_password($email, $password) { $spec = array("\r","\n","\t"," "); $sql_isset_email = mysql_query("select * from db_email where email = '".$email."'"); $db_isset_password = mysql_fetch_assoc($sql_isset_email); $db_password = explode(":", $db_isset_password['password']); $db_password = str_replace($spec, "", $db_password); $date = date("Y-m-d"); $count_password = count($db_password); $er[$count_password]; for ($x = 0; $x < $count_password; $x++) { (String) $_db_password = $db_password[$x]; $_db_password = str_replace($spec, "", $_db_password); if ($password == $_db_password) $er[$x+1] = true; else $er[$x+1] == false; } if (array_search(true, $er) == NULL) { $db_password[$count_password+1] = $password; echo $res_password = implode(":", $db_password); mysql_query("update db_email set password = '".$res_password."', date_last_passwd = '".$date."' where email = '".$email."'"); } } ?> Code <? function db_add_mail_and_pass($email_and_pass) { $str_email_and_password = explode("\n", $email_and_pass); $spec = array("\r","\n","\t"," "); $str_email_and_password = str_replace($spec, "", $str_email_and_password); $str_count = count($str_email_and_password) - 1; for ($i = 0; $i <= $str_count; $i++) { $email_or_password = explode(":", $str_email_and_password[$i]); (String) $email = $email_or_password[0]; (String) $password = $email_or_password[1]; $date = date("Y-m-d"); if (filter_var($email, FILTER_VALIDATE_EMAIL)) { $sql_isset_email = mysql_query("select * from db_email where email = '".$email."'"); $sql_isset_count = mysql_num_rows($sql_isset_email); if (isset($password)) { $pass_true++; }else{ $password = 0; $pass_false++;} if ($sql_isset_count == 0) { $password; mysql_query("insert into db_email (email, password, date_last_passwd) values ('$email','$password','$date')"); } else update_password($email, $password); } } } function update_password($email, $password) { $spec = array("\r","\n","\t"," "); $sql_isset_email = mysql_query("select * from db_email where email = '".$email."'"); $db_isset_password = mysql_fetch_assoc($sql_isset_email); $db_password = explode(":", $db_isset_password['password']); $db_password = str_replace($spec, "", $db_password); $date = date("Y-m-d"); $count_password = count($db_password); $er[$count_password]; for ($x = 0; $x < $count_password; $x++) { (String) $_db_password = $db_password[$x]; $_db_password = str_replace($spec, "", $_db_password); if ($password == $_db_password) $er[$x+1] = true; else $er[$x+1] == false; } if (array_search(true, $er) == NULL) { $db_password[$count_password+1] = $password; echo $res_password = implode(":", $db_password); mysql_query("update db_email set password = '".$res_password."', date_last_passwd = '".$date."' where email = '".$email."'"); } } ?> я вместил вот так )) как этот можно сократить ???
Наверное ты дурачок, про экранизацию данных ничего не слышал? Рассказать тебе как работает ' or 1 order by ... и union select ? Так иди почитай, если тебе специально кто-то файлик засунет ****ом датабейса не удивляйся
Дело не в способе передачи данных, хоть в $_COOKIES передавай, важно что бы данные входящие фильтровались, а у тебя в голом виде всё льётся в базу данных