[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: обновление данных
Sheldon
Доброго времени суток!

у меня есть бд, в которой я хочу сменить логин, пароль или е-майл пользователя (личный кабинет). при етом хотелось, что бы изменять можно было не только все сразу но и по отдельности.
вот форма:
<?php
session_start();
if (isset($_SESSION["name"])){
echo $_SESSION["name"].", вот форма для изменения данных";

echo "<Form action='/new/new1/rename.php' method='post'>
Введите новый логин : <input type = 'text' name = 'login'><br>
Введите новый e-mail : <input type = 'text' name = 'mail'><br>
Введите новый пароль : <input type = 'text' name = 'pass'><br>
Повторите новый пароль : <input type = 'text' name = 'pass1'><br>
<input type = 'submit' value = 'Изменить'>
</form>"
;
}
?>


вот обработчик
<?php
session_start();
if (isset($_SESSION["name"])){
$name = $_SESSION["name"];


$login = $_POST ['login'];
$mail = $_POST ['mail'];
$pass = $_POST['pass'];
$pass1 = $_POST ['pass1'];

//проверяю на правильность
include "config.php";
if(preg_match("/^[A-Za-z0-9]+$/",$login))
{
$query_login = 'UPDATE `users` SET `user_login` ="' . $login . '" WHERE `user_login` = "' . $name . '"';
$ath_login = mysql_query ($query_login, $dbdeskriptor);
$name = $login;
}

if ((preg_match("/^[A-Za-z0-9]+$/",$pass)) && $pass == $pass1)
{
$passt = md5 ($pass);
$query_pass = 'UPDATE `users` SET `user_pass` ="' . $passt . '" WHERE `user_login` = "' . $name . '"';
$ath_pass = mysql_query ($query_pass, $dbdeskriptor);
}

if(preg_match('/^([a-zA-Z0-9._-]+)\@([a-zA-Z0-9-]+\.)+\w{2,6}$/', $mail))
{
$query_mail = 'UPDATE `users` SET `user_mail` ="' . $mail . '" WHERE `user_login` = "' . $name . '"';
$ath_mail = mysql_query ($query_mail, $dbdeskriptor);
}

mysql_close ($dbdeskriptor);

echo "вы успешно поменяли данные";
}

?>


логин меняется, а остальное что то не горит желанием...



Спустя 1 час, 52 минуты, 44 секунды (10.06.2011 - 18:17) alex12060 написал(а):

if ((preg_match("/^[A-Za-z0-9]+$/",$pass)) && $pass == $pass1)


Тут ошибка

Спустя 1 час, 2 минуты, 6 секунд (10.06.2011 - 19:19) ИНСИ написал(а):
Sheldon попробуй так:
session_start();
if(isset($_SESSION['name'])){

//проверяю на правильность
include 'config.php';

$query = array();
$name = $_SESSION['name'];

if(preg_match("/^[A-Za-z0-9]+$/",$_POST['login'])) {
$query[] = "`user_login` = '{$_POST['login']}'";
$_SESSION['name'] = $_POST['login'];
}

if((preg_match("/^[A-Za-z0-9]+$/",$_POST['pass'])) && ($_POST['pass'] == $_POST['pass1']))
$query[] = "`user_pass` = '{$_POST['pass']}'";

if(preg_match('|^[a-z0-9_\.-]+@([a-z0-9]+\.)+[a-z]{2,4}$|i', $_POST['mail']))
$query[] = "`user_mail` = '{$_POST['mail']}'";

if(sizeof($query) > 0) {
mysql_query("
UPDATE `users`
SET "
.implode(', ',$query)."
WHERE `user_login` = '
{$name}'
"
) or die(mysql_error());
}

mysql_close($dbdeskriptor);

echo "вы успешно поменяли данные";
}

Спустя 5 минут, 13 секунд (10.06.2011 - 19:24) inpost написал(а):
Sheldon
запросы пиши: mysql_query() or die(mysql_error());

А теперь, допустим, ты делаешь условие if() else(), тебе надо проверить, вернуло ли это условие TRUE or FALSE, поэтому делай так для проверки и отладки:
if(условие)
{
echo 'Условие прошло успешно';
}

Теперь, если успешно, смотрим код запроса, обрати внимание на то, что запрос писать надо так, как я показал, вместе с die(mysql_error());

Спустя 13 часов, 58 минут, 49 секунд (11.06.2011 - 09:23) Sheldon написал(а):
благодарствую за помощь)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.