Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: помощь новичку
 
 автор: Pontiac_GTO   (05.10.2012 в 17:12)   письмо автору
 
 

Почему я зарегил одного пользователя
Но когда я зарегил другого у него изменился логин ! А дополнительная инфа такая же как и у предыдущего! В чём проблема?

  Ответить  
 
 автор: Valick   (05.10.2012 в 17:34)   письмо автору
 
   для: Pontiac_GTO   (05.10.2012 в 17:12)
 

Задавайте вопрос как можно полнее. Укажите хотя бы куда вы зарегили этих "несчастных" пользователей. Но если код не ваш и к его написанию вы не имеете никакого отношения, то помочь вам вряд ли смогут.

  Ответить  
 
 автор: Pontiac_GTO   (05.10.2012 в 17:37)   письмо автору
 
   для: Valick   (05.10.2012 в 17:34)
 

Вот я зарегистрировал 1 пользователя, ввёо все данные. Зашёл на сайт, всё работает как надо! Вышел! Регистрирую 2 пользователя , ввожу совсем другие данные. Зашёл на сайт, а там все данные от 1 пользователя! Только логин поменялся!

  Ответить  
 
 автор: Valick   (05.10.2012 в 17:43)   письмо автору
 
   для: Pontiac_GTO   (05.10.2012 в 17:37)
 

уф.... чувствую скучно не будет...
спрашиваю последний раз, что это за сайт на котором вы регистрируете пользователя?
варианты ответов:
1) этот сайт (форум)
2) сайт который вы скачали и установили (укажите название)
3) просто какой-то конкретный сайт в интернете
4) все сайты всего интернета на планете земля
5) сайт который вы написали своими руками*

  Ответить  
 
 автор: Pontiac_GTO   (05.10.2012 в 17:46)   письмо автору
 
   для: Pontiac_GTO   (05.10.2012 в 17:37)
 

сам написал

  Ответить  
 
 автор: Valick   (05.10.2012 в 17:52)   письмо автору
 
   для: Pontiac_GTO   (05.10.2012 в 17:46)
 

ну тогда стоит показать кусок кода ответственный за регистрацию и авторизацию пользователя и показать таблицу (надеюсь работаете с базой данных)

  Ответить  
 
 автор: Pontiac_GTO   (05.10.2012 в 17:56)   письмо автору
 
   для: Valick   (05.10.2012 в 17:52)
 

ща

  Ответить  
 
 автор: Pontiac_GTO   (05.10.2012 в 17:56)   письмо автору
 
   для: Pontiac_GTO   (05.10.2012 в 17:56)
 

регистрация:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Регистрация</title>
<style type="text/css">
INPUT {
background: silver; margin:0px; padding:1px; /* Цвет фона */
}
</style>
</head>
<body>
<table>

<form action="verification.php" method="POST">
<tr>
<td>Логин<font color="red">*</font>:</td>
<td><input type="text" size="20" name="login" ></td>
</tr>
<tr>
<td>Пароль<font color="red">*</font>:</td>
<td><input type="password" size="20" maxlength="20" name="password" ></td>
</tr>
<tr>
<td>Подтверждения пароля<font color="red">*</font>:</td>
<td><input type="password" size="20" maxlength="20" name="password2"></td>
</tr>
<tr>
<td>E-mail<font color="red">*</font>:</td>
<td><input type="text" size="20" name="email"></td>
</tr>
<tr>
<td>Имя:</td>
<td><input type="text" size="20" name="name"></td>
</tr>
<tr>
<td>Фамилия:</td>
<td><input type="text" size="20" name="lastname"></td>
</tr>
<tr>
<td></td>
<td colspan="2"><input type="submit" value="Зарегистроваться..." name="submit" ></td>
</tr>
<br>
</form>
</table>
<font face="Verdana" size="4">Поля со значком <font color="red">*</font> должны быть обязательно заполнены!</font>
<br><a href='index.php'>На главную</a>
</body>
</html>

  Ответить  
 
 автор: Pontiac_GTO   (05.10.2012 в 17:58)   письмо автору
 
   для: Pontiac_GTO   (05.10.2012 в 17:56)
 

авторизация:

<?php
include_once("bd.php");

if (isset($_POST['submit'])){
if(empty($_POST['login'])) {
echo '<br><font color="red"><img border="0" src="error.gif" align="middle" alt="Введите логин!"> Введите логин! </font>';
}
elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
echo '<br><font color="red"><img border="0" src="error.gif" align="middle" alt="В поле "Логин" введены недопустимые символы!"> В поле "Логин" введены недопустимые символы! Только буквы, цифры и подчеркивание!</font>';
}
elseif(empty($_POST['password'])) {
echo '<br><font color="red"><img border="0" src="error.gif" align="middle" alt="Введите пароль !"> Введите пароль!</font>';
}
elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
echo '<br><font color="red"><img border="0" src="error.gif" align="middle" alt="Пароль слишком короткий!"> Пароль слишком короткий! Пароль должен быть не менее 6 символов! </font>';
}
elseif(empty($_POST['password2'])) {
echo '<br><font color="red"><img border="0" src="error.gif" align="middle" alt="Введите подтверждение пароля!"> Введите подтверждение пароля!</font>';
}
elseif($_POST['password'] != $_POST['password2']) {
echo '<br><font color="red"><img border="0" src="error.gif" align="middle" alt="Введенные пароли не совпадают!"> Введенные пароли не совпадают!</font>';
}
elseif(empty($_POST['email'])) {
echo '<br><font color="red"><img border="0" src="error.gif" align="middle" alt="Введите E-mail!">Введите E-mail! </font>';
}
elseif (!preg_match("/^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}$/", $_POST['email'])) {
echo '<br><font color="red"><img border="0" src="error.gif" align="middle" alt="E-mail имеет недопустимий формат!"> E-mail имеет недопустимий формат! Например, name@gmail.com! </font>';
}

else{
$login = $_POST['login'];
$password = $_POST['password'];
$mdPassword = md5($password);
$password2 = $_POST['password2'];
$email = $_POST['email'];
$rdate = date("d-m-Y в H:i");
$name = $_POST['name'];
$lastname = $_POST['lastname'];

$query = ("SELECT id FROM users WHERE login='$login'");
$sql = mysql_query($query) or die(mysql_error());

if (mysql_num_rows($sql) > 0) {
echo '<font color="red"><img border="0" src="error.gif" align="middle" alt="Пользователь с таким логином зарегистрированый!"> Пользователь с таким логином зарегистрирован!</font>';
}
else {
$query2 = ("SELECT id FROM users WHERE email='$email'");
$sql = mysql_query($query2) or die(mysql_error());
if (mysql_num_rows($sql) > 0){
echo '<font color="red"><img border="0" src="error.gif" alt="Пользователь с таким e-mail зарегистрированый!"> Пользователь с таким e-mail уже зарегистрирован!</font>';
}
else{
$query = "INSERT INTO users (login, password, email, reg_date, name_user, lastname )
VALUES ('$login', '$mdPassword', '$email', '$rdate', '$name', '$lastname')";
$result = mysql_query($query) or die(mysql_error());;
echo '<font color="green"><img border="0" src="ok.gif" align="middle" alt="Вы успешно зарегистрировались!"> Вы успешно зарегистрировались!</font><br><a href="index.php">На главную</a>';


}
}
}
}
?>

  Ответить  
 
 автор: confirm   (05.10.2012 в 18:30)   письмо автору
 
   для: Pontiac_GTO   (05.10.2012 в 17:58)
 

Обязательно прочтите сперва это:
http://php.net/manual/ru/security.database.sql-injection.php
Не обрамленный код тегом code читать сложно, так ведь? Мало найдется охотников разбираться в такой писанине.

  Ответить  
 
 автор: mihdan   (07.10.2012 в 12:22)   письмо автору
 
   для: Pontiac_GTO   (05.10.2012 в 17:58)
 

Структуру базы покажите. У вас автоинкрементное поле в ней есть?

  Ответить  
 
 автор: indexer   (09.10.2012 в 16:37)   письмо автору
 
   для: Pontiac_GTO   (05.10.2012 в 17:58)
 

Жесть!

учитесь сразу писать правильно, а не кашу из php и html.
Через год, когда захотите внести изменения в код, вам его будет проще переписать с 0.

в куске кода выведите переменные прежде чем отправлять в базу

else{
# <!--new. show var before send
echo <<<EOF
$login
$mdPassword
$email
$rdate
$name
$lastname
EOF;
# new-->
$query = "INSERT INTO users (login, password, email, reg_date, name_user, lastname )
VALUES ('$login', '$mdPassword', '$email', '$rdate', '$name', '$lastname')";
$result = mysql_query($query) or die(mysql_error());;
echo '<font color="green"><img border="0" src="ok.gif" align="middle" alt="Вы успешно зарегистрировались!"> Вы успешно зарегистрировались!</font><br><a href="index.php">На главную</a>';


Значения переменных выводятся перед отправкой в базу. т.е. изменить их может только сама база.

Програмить вслепую без отладчика, это еще большая жесть чем каша php/html, а у вас тут все вместе сложилось. Выберите вначале инструмент, заточите под себя, потом им пользуйтесь. как наступит просветление писать можно хоть в блокноте.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования