ПХП, кто подскажет с одной функцией?

Печать RSS
361

S
Автор
Землянин
0
Смотрите, есть настройки пользовательские, а там никнейм, то есть site.ru/nickname , и когда меняешь что-либо в настройках, пишет, что такой никнейм уже есть, хотя пользователь никнейм не трогал, как это предотвратить ?
И

Оранжевые штаны
0
1. spletni, иии? Что за скрипт? Или какой движок? Какая функция?
S
Автор
Землянин
0
$.ajax({
type: "POST",
url: "save_sett.php",
data: "set=profile&id='.$_SESSION[id].'&login=" + $("#username").val() + "&first_name=" + $("#name").val() + "&last_name=" + $("#last_name").val() + "&city=" + $("#location").val() + "&about=" + $("#about").val() + "&status=" + $("#promo").val() + "&bday=" + $("#bday option:selected").val() + "&bmonth=" + $("#bmonth option:selected").val() + "&byear=" + $("#byear option:selected").val() + "&sex=" + $("#sex option:selected").val(),
success: function(html){
$("#success").html(html);
window.location.reload(true);
}
});


вот код, что сохраняет изменения, но как тут сделать чтобы логин он не затрагивал, но если всё же пользователь меняет логин, то и его брал бы... ?
S
Автор
Землянин
0
никто не поможет глупцу? :[
N

Эцилопп сией тентуры
0
save_sett.php в студию smile
S
Автор
Землянин
0
$login = trim($_POST['login']);
$login = preg_replace("/[^a-z0-9_-]/i", "", $login);




if(strlen($login) < 3){ echo "Короткий логин!"; }

$l_check = mysql_fetch_array(mysql_query("SELECT login FROM users WHERE id = '$uid' "));
$check = mysql_num_rows(mysql_query("SELECT login FROM users WHERE login = '$login' "));
if($check !== 0 AND $login !== $l_check['login']){ echo "Логин уже зарегистрирован!!!"; exit;}

mysql_query("UPDATE users SET login = '$login', first_name = '$first_name', last_name = '$last_name', city = '$city', about = '$about', status = '$status', leng = '$leng', b_day = '$b_day', b_month = '$b_month', b_year = '$b_year', sex = '$sex' WHERE id = '$id'");
echo "Настройки сохранены!";
}

2000 лет д.н.э.
0
$check = mysql_num_rows(mysql_query("SELECT login FROM users WHERE login = ".$login." AND id!=".$uid."; "));
з.ы. хотите помощи, делайте хоть что то для этого.
хотя бы минимум, заключайте код в соответствующие теги
Изменил: ramzes (30.05.2012 / 23:15)
N

Эцилопп сией тентуры
0
<?php
$intUser = mysql_num_rows(
                          mysql_query("
                                       SELECT `id` FROM `users` 
                                       WHERE `login` = '" . $login  . "'  
                                       AND `id` != " . $uid . " 
                                       LIMIT 1;
                                      ")
                         );
if ($intUser > 0) {
    die('Логин уже зарегистрирован!!!');
}

Вместо
<?php
$l_check = mysql_fetch_array(mysql_query("SELECT login FROM users WHERE id = '$uid' "));
$check = mysql_num_rows(mysql_query("SELECT login FROM users WHERE login = '$login' "));
if($check !== 0 AND $login !== $l_check['login']){ echo "Логин уже зарегистрирован!!!"; exit;}
Изменил: Nu3oN (30.05.2012 / 23:24)
S
Автор
Землянин
0
7, 8, Джикинайс и ramzes, спасибо большое, за ваши попытки, но ни один из приведенных кодов, к сожалению, не работает ...

2000 лет д.н.э.
0
переменная $uid откуда берется?
проверь ее
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск