Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Создание системы регистрации/авторизации

Фабула
-----------------------------------------------------------------------------------------------------------------------------
Подумал, подумал и все ж создал новую тему. Мой вопрос относится к созданию системы регистрации/авторизации ... может кто подскажет как действовать или укажет на возможную ошибку .... для того, чтобы разобраться в алгоритме настройки взял простой пример из интернета, поправил ошибки авторов, запустил, все работает, т.е. форма регистрации отправляет в базу данных регистрационные данные, форма авторизации срабатывает, отправляя пользователя на промежуточную страницу с приветственным сообщением, подставляя в качестве имени вошедшего сессионную переменную, в которую принят логин пользователя ( в моем случае он называется username ). Все хорошо, но хотелось бы, чтобы в сессионную переменную принималось регистрационное имя пользователя. То, которое хранится в БД в качестве его настоящего имени. Ну, вот, например, не "Привет, meduza!", а "Привет, Михаил!". Я думаю вы понимаете суть проблемы.

По существу
------------------------------------------------------------------------------------------------------------------------------
Приведу полностью сначала рабочие варианты файла регистрации register.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php require_once("includes/connection.php"); ?>
<?php include("includes/header.php"); ?>
<?php
    
    if(isset($_POST["register"])){
    
    if(!empty($_POST['full_name']) && !empty($_POST['email']) && !empty($_POST['username']) && !empty($_POST['password'])) {
  $full_name= htmlspecialchars($_POST['full_name']);
    $email=htmlspecialchars($_POST['email']);
 $username=htmlspecialchars($_POST['username']);
 $password=md5($_POST['password']);
 $query=mysql_query("SELECT * FROM usertbl WHERE username='".$username."'");
  $numrows=mysql_num_rows($query);
if($numrows==0)
   {
    $sql="INSERT INTO usertbl
  (full_name, email, username,password)
    VALUES('$full_name','$email', '$username', '$password')";
  $result=mysql_query($sql);
 if($result){
    $message = "Account Successfully Created";
} else {
 $message = "Failed to insert data information!";
  }
    } else {
    $message = "That username already exists! Please try another one!";
   }
    } else {
    $message = "All fields are required!";
    }
    }
if (!empty($message)) {echo "<p class='error'>". "MESSAGE: ". $message . "</p>";}
    ?>
<div class="container mregister">
<div id="login">
 <h1>Регистрация</h1>
<form action="register.php" id="registerform" method="post"name="registerform">
 <p><label for="user_login">Полное имя<br>
 <input class="input" id="full_name" name="full_name"size="32"  type="text" value=""></label></p>
<p><label for="user_pass">E-mail<br>
<input class="input" id="email" name="email" size="32"type="email" value=""></label></p>
<p><label for="user_pass">Имя пользователя<br>
<input class="input" id="username" name="username"size="20" type="text" value=""></label></p>
<p><label for="user_pass">Пароль<br>
<input class="input" id="password" name="password"size="32"   type="password" value=""></label></p>
<p class="submit"><input class="button" id="register" name= "register" type="submit" value="Зарегистрироваться"></p>
      <p class="regtext">Уже зарегистрированы? <a href= "login.php">Введите имя пользователя</a>!</p>
 </form>
</div>
</div>
<?php include("includes/footer.php"); ?>
файла авторизации login.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php  if(isset($_SESSION["session_username"])){
    // вывод "Session is set"; // в целях проверки
    header("Location: intropage.php");
    }
 
    if(isset($_POST["login"])){
 
    if(!empty($_POST['username']) && !empty($_POST['password'])) {
    $username=htmlspecialchars($_POST['username']);
    $password=md5($_POST['password']);
    $query =mysql_query("SELECT * FROM usertbl WHERE username='".$username."' AND password='".$password."'");
    $numrows=mysql_num_rows($query);
    if($numrows!=0)
 {
while($row=mysql_fetch_assoc($query))
 {
    $dbusername=$row['username'];
  $dbpassword=$row['password'];
 }
  if($username == $dbusername && $password == $dbpassword)
 {
    // старое место расположения
    //  session_start();
     $_SESSION['session_username']=$username;    
 /* Перенаправление браузера */
   header("Location: intropage.php");
    }
    } else {
    //  $message = "Invalid username or password!";
    
    echo  "Invalid username or password!";
 }
    } else {
    $message = "All fields are required!";
    }
    }
    ?>
<?php include("includes/header.php"); ?>
<?php require_once("includes/connection.php"); ?>
<?php include("includes/header.php"); ?>
<div class="container mlogin">
<div id="login">
<h1>Вход</h1>
<form action="" id="loginform" method="post"name="loginform">
<p><label for="user_login">Имя опльзователя<br>
<input class="input" id="username" name="username"size="20"
type="text" value=""></label></p>
<p><label for="user_pass">Пароль<br>
 <input class="input" id="password" name="password"size="20"
  type="password" value=""></label></p> 
    <p class="submit"><input class="button" name="login"type= "submit" value="Log In"></p>
    <p class="regtext">Еще не зарегистрированы?<a href= "register.php">Регистрация</a>!</p>
   </form>
 </div>
  </div>
<?php include("includes/footer.php");?>
и промежуточного файла intropage.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php session_start();
 
if(!isset($_SESSION["session_username"])):
header("location:login.php");
else:
?>
    
<?php include("includes/header.php"); ?>
<div id="welcome">
<h2>Добро пожаловать, <span><?php echo $_SESSION['session_username'];?>! </span></h2>
  <p><a href="logout.php">Выйти</a> из системы</p>
</div>
    
<?php include("includes/footer.php"); ?>
    
<?php endif;?>
Комментарии авторов оставил - они мне не мешают.

Теперь то, что нафантазировал я. Сразу скажу, что внес кое-какие изменения: в форме регистрации добавил еще одно поле для ввода имени пользователя (назвал его name) и в код php соот-но тоже, добавил строку в таблице БД. Новая регистрация работает без проблем, все данные заносятся в БД.

А вот подправленный файл login.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php session_start();?>
<?php require_once("includes/connection.php"); ?>
<?php if(isset($_SESSION["session_name"])){
    // вывод "Session is set"; // в целях проверки
    header("Location: intropage.php");
    }
 
    if(isset($_POST["login"])){
 
    if(!empty($_POST['username']) && !empty($_POST['password'])) {
    $username=htmlspecialchars($_POST['username']);
    $password=md5($_POST['password']);
    $query =mysql_query("SELECT name, username, password FROM usertbl WHERE name='".$name."' AND username='".$username."' AND password='".$password."'");
    $numrows=mysql_num_rows($query);
    if($numrows!=0)
 {
while($row=mysql_fetch_assoc($query))
 {
    $dbname=$row['name'];
    $dbusername=$row['username'];
    $dbpassword=$row['password'];
 }
  if($username == $dbusername && $password == $dbpassword)
 {
    // старое место расположения
    //  session_start();
     $_SESSION['session_name']=$name;
     
 /* Перенаправление браузера */
   header("Location: intropage.php");
    }
    } else {
    //  $message = "Invalid username or password!";
    
    echo  "Invalid username or password!";
 }
    } else {
    $message = "All fields are required!";
    }
    }
    ?>
<?php include("includes/header.php"); ?>
<?php require_once("includes/connection.php"); ?>
<?php include("includes/header.php"); ?>
<div class="container mlogin">
<div id="login">
<h1>Вход</h1>
<form action="" id="loginform" method="post"name="loginform">
<p><label for="user_login">Имя пользователя<br>
<input class="input" id="username" name="username"size="20"
type="text" value=""></label></p>
<p><label for="user_pass">Пароль<br>
 <input class="input" id="password" name="password"size="20"
  type="password" value=""></label></p> 
    <p class="submit"><input class="button" name="login"type= "submit" value="Log In"></p>
    <p class="regtext">Еще не зарегистрированы?<a href= "register.php">Регистрация</a>!</p>
   </form>
 </div>
  </div>
<?php include("includes/footer.php"); ?>
и intropage.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php session_start();
 
if(!isset($_SESSION["session_name"])):
header("location:login.php");
else:
?>
    
<?php include("includes/header.php"); ?>
<div id="welcome">
<h2>Добро пожаловать, <span><?php echo $_SESSION['session_name'];?>! </span></h2>
  <p><a href="logout.php">Выйти</a> из системы</p>
</div>
    
<?php include("includes/footer.php"); ?>
    
<?php endif?>
Идея заключалась в том, чтобы сформировав запрос к БД, дополнительно к username и password вытащить из БД переменную name, произвести как и в рабочем варианте проверку на соответствие логина и пароля, но в качестве сессионной переменной принять не извлеченную из БД переменную $username, а регистрационное имя пользователя $name. И дальше его уже использовать в файле intropage.php ... но что-то пошло не так. При попытке авторизоваться показывается сообщение о неверном логине или пароле. И вот где собака порылась не могу понять. Help, please!
Ответ: Не совсем понял в чем заключалась идея, но думаю, прежде чем править, стоит самому попробовать разработать php код для авторизации пользователя на сайте...
Вопрос: Помогите советом по созданию системы оплаты на сайте

Помогите, советим или примером как можно это сделать.
Делаю сайт знакомств, осталось только сделать системы пополнение кредитов, использывал старый скрипт, но на нем только paypal. Хочу сделать опплату через freekassa, но не могу понять как прописать, создаю системы пополнение по новой,я понимаю как это должно роботать, но увы я нуб, и не знаю как сделать взаимодействие с базой данных.
Может кто подскажет как это реализовать.
вот как оно должно работать.
1.При нажатии оплатить перебрасывает на сайт оплаты в моем случаее это freekassa
2.после совершения оплаты приходит обратная связь с данными
id пользователя, сумма пополнения,и совершен ли платеж
Если платеж не совершен то вернуть обратно на сайт и вывести окно об ошибке оплаты
если же платеж совершен то
вытянуть с базы текущий балланс добавить сумму пополнение, и записать обратно в базу.
после этого вывести сообщение на сайте об успешном пополнении баланса,
но как сделать взаимодействие с базой ?
Ответ:
LetsLoves пишет:
Помогите, советим или примером как можно это сделать.
Делаю сайт знакомств, осталось только сделать системы пополнение кредитов, использывал старый скрипт, но на нем только paypal. Хочу сделать опплату через freekassa, но не могу понять как прописать....


Добрый день! С freekassa я не работал. Посмотрел бегло их описание. Реализация традиционная.
О принципах реализации процесса акцептирования.
(прошу прощения, коды не подчистил и не комментировал.)
1. Обычно платёжные системы дают возможность акцептирования через их форму оплаты либо через XML-интерфейс. Советую выбрать первое.
Вам необходимо через POST-Request на адрес указанный документации платежной системы отправить необходимые данные.

Для начала вызывается, например, payment_online.php
Спойлер ()

2. Затем JS загружает в iframe 'payment_f2' на Вашей странице payment.php,
а он через JS запускает в этом iframe окно акцептирования платёжной системы.
Спойлер ()

3.Обратите внимание на параметры payment redirection.
На Ваш скрипт-обработчик по адресу $get_link через $_GET переменные поступит код статуса оплаты и вся информация о платеже.
Клиент может по-разному завершить процесс оплаты: оплатить, прервать оплату или ввести не верные данные карты.
В начале нужно проверить дигитальную сигнатуру и код статуса оплаты .
В случае успешной оплаты Вы сохраняете информацию в БД , отправляете подтверждение клиенту и.т.п.
Если оплата не проходит, выдаёте сообщение клиенту.
Неплохо было бы отправить клиенту письмо с линком на повторную оплату.
Также неплохо бы написать скрипт для контроля поступления оплаты и запускать его через CRON.

Удачи!

(Отредактировано автором: 31 Октября, 2017 - 09:57:19)

Вопрос: Создание системы классов: пациент, врач, больница, процедуры

Здравствуйте нужна помощь в задании по джаве.


Задание:
Разработайте UML-диаграмму системы, а затем
напишите программу на языке Java, которая реализует эту систему

Больница - Пациенту назначается Врач. Врач назначает Пациенту
процедуры, которые он выполняет. Пациент может быть выписан
из больницы после окончания лечения, при нарушении режима
или иных обстоятельств

Методические указания

Выходные данные можно задать двумя способами: ввести набором с клавиатуры или
помощью генератора случайных чисел.
Для наглядности программы (работы системы) необходимо выводить на консоль
сообщение о выполнении действия.
Ответ:
Сообщение от vitaliy98v
Тут я не пойму как нужно сделать, как то через отдельные .cpp файлы
Сообщение от vitaliy98v
Разработайте UML-диаграмму системы
при чем тут файлы вообще? Где ваша UML диаграмма для начала?
Вопрос: С чего начать создание системы учета заказов такси или информационной системы ломбарда?

Создание информационной системы учета заказов радиотакси(ИЛИ)Создание информационной системы ломбарда.
Незнаю с чего начать даже и что вообще сделать надо кто может помогите сделать там например как оно должно быть.
Там форму код 1 или другой темы. СПАСИБО!
Ответ: Роман Гончар, все сущности сперва надо оформить в виде классов. Скорее всего, в полном ТЗ даже должно быть написано, какую примерно структуру хотят видеть. Наберите в гугле "Основы ООП C#", и исходя из полученных данных начинайте писать. Если не получается-выкладывайте код, подправят. А кнопки и прочий интерфейс-когда будут готова модель данных. есть по этому поводу.
Вопрос: Какие инструменты выбрать для создания системы?

Здравствуйте.
Подскажите пожалуйста кто-нибудь, на чем писать систему, удовлетворяющую следующим требованиям:
1. Доступность через Интернет (с браузера, телефона, планшета)
2. Обработка запросов Яндекс.XML и др.
3. Парсинг веб-страниц
4. Работа с внешними устройствами USB/COM.
5. Запуск внешних приложений win32
Т.е. имеется например Python, который позволяет отлично делать пп. 3, 5, наверное 2.
Есть java, которая отлично как будто будет удовлетворять пп. 1, 2.
PHP, javascript - п.1 - великолепно.
Но вообще какую связку лучше здесь применить?
Знание есть только мелкоофисного visual basic, остальное на нуле...
Может кто предложит варианты?
Например в пользу Pythonа говорит то, что его очень много используют как будто для подобных немассовых задач?
Ответ: сам спросил, сам ответил.
вот что значит - выходные!
http://lurkmore.to/Копипаста:Python
Вопрос: Создание системы, для управление бытовой техники

Здравствуйте, нужно создать систему управление какой то бытовой техникик, но я не представляю даже как она должна быть выглядит, можете кинуть какие то примерчики (должна быть создана в Делфи или в Борленде с++)
Ответ: возможно автор уже не сомневается в существовании единого и всеобъемлющего Skynet ))
Вопрос: Графика (создание системы многоугольников)

Сделать систему блуждающих закрашенных многоугольников.
(5 штук). Цвета - по случайному закону, координаты центров правильных
многоугольников -случайны. Положение по углу - случайное. Число сторон и их длина задается в диалоге.

Добавлено через 2 часа 33 минуты
Еще, она должна быть выполнена с помощью объектов.
Ответ: Типа такого что ли?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
uses graph,crt;
type mngl=object
          x,y,n,a,c:integer;
          u:real;
          procedure Init(ax,ay,an,aa,ac:integer;au:real);
          procedure Draw;
          procedure Newkoord(ax,ay:integer);
          end;
procedure mngl.Init(ax,ay,an,aa,ac:integer;au:real);
begin
x:=ax;
y:=ay;
n:=an;
a:=aa;
c:=ac;
u:=au;
end;
procedure mngl.Draw;
var p:array[1..13] of pointtype;
    i:byte;
    r,f:real;
begin
r:=a/2/sin(pi/n);
f:=u;
for i:=1 to n+1 do
 begin
  p[i].x:=x+round(r*cos(f));
  p[i].y:=y-round(r*sin(f));
  f:=f+2*pi/n;
 end;
setcolor(c);
setfillstyle(1,c);
fillpoly(n+1,p);
end;
procedure mngl.Newkoord(ax,ay:integer);
begin
x:=ax;
y:=ay;
end;
const n=5;
var k,d,x,y,i:integer;
    m:array[1..n] of mngl;
begin
clrscr;
repeat
write('Chislo storon 3-12 k=');
readln(k);
until k in [3..12];
repeat
write('Dlina storon 10-50 d=');
readln(d);
until d in [10..50];
randomize;
initgraph(x,y,'');
for i:=1 to n do
m[i].init(50+random(getmaxX-100),50+random(getmaxY-100),
k,d,9+random(7),2*pi*random);
  m[i].Draw;
repeat
cleardevice;
for i:=1 to n do
m[i].Draw;
delay(500);
for i:=1 to n do
 begin
  m[i].x:=50+random(getmaxX-100);
  m[i].y:=50+random(getmaxY-100);
 end;
until keypressed;
end.
Вопрос: Создание системы диалогов

Хочу реализовать систему диалогов подобную в вк.
Необходимо как-то хранить ID юзеров диалога. Придумал хранить в виде 1,123,412,311 (юзер иды).
Но как потом искать тех, кто состоит в диалоге? Например, в диалоге же может быть 2 пользователя с ID 1 и 11.

Представим ситуацию, что диалог уже создан, имеет определенный ID. На странице пользователя я пишу ему сообщение, которое должно пойти в диалог. И это сообщение должно быть в колонке message таблицы dialogs.
Как мне найти этот диалог между двумя юзерами?


Предполагаемая структура



Я хотел делать поиск такого вида:
SQL
1
SELECT id FROM dialogs WHERE user_ids LIKE CONCAT (% :sender %) AND user_ids LIKE CONCAT (% :receiver %)
но бывают же варианты, когда user_ids будет содержать 1,11 или 11,1 , тогда поиск ничего не найдет.
Как лучше сделать структуру?
P.S. имеется таблица pm для сообщений, которые будут содержать ид диалогов
Ответ:
Сообщение от JimUSA
А что там копать, залезли в модуль сообщений и всё на виду.
Хорошо, буду копаться там, если в голову ничего не придет

Добавлено через 17 часов 59 минут
Может, кому будет интересно, как я сделал:
По логике изначально в диалоге должно быть только 2 пользователя, поэтому колонка user_ids будет иметь вид: 123,444 или 444,123 (потому что мы пишем ЛС не в самом диалоге, а на странице пользователя в попап окне). Создали или обновили диалог, получаем номер диалога, присваиваем его к каждому сообщению этого диалога (отдельная таблица pm).

А поиск по диалогам уже делаем в таком же виде: user_ids должен содержать мой ид (например, 333): 333, или ,333
Вопрос: Создание файловой системы и поиска по ней

Всем привет!

Уважаемые гуру программинга, помоги племяннику сделать курсовую работу на c#.

Вот задача:

Реализовать простейшую поисковую систему для локального компьютера, в частности создать индексный файл для быстрого поиска по содержимому файловой системы.

Буду благодарен любым исходникам или целевым ссылкам на скрипты и описания создания системы.


Спасибо!
Ответ:
Вопрос: Система частиц (эффекты для вашей игры)

Итак, не имея опыта в разработке такого решения я попытаюсь сейчас открыть сам процесс разработки с нуля. Начнем с структуры. Что такое эффект? Я немного неверно выразился когда начинал тему, конкретно мне нужно было создать систему частиц чтобы они сделали нужные эффекты. Однако можно рассматривать эффект в приложении к HLSL - это обработка по какому то алгоритму исходных данных что дает новое изображение, например из глади водной получим красивую реалистичную воду http://www.gamedev.ru/code/articles/?id=4361 . Если вас интересует эта тема (HLSL эффекты) то можно почитать
1. http://www.render.ru/books/show_book.php?book_id=729
2. http://www.intuit.ru/department/grap...dhlsl/8/1.html
3. http://netlib.narod.ru/library/book0053/toc.htm
Возможно то что мы будем делать будет использовать HLSL а возможно и нет. Но это разные вещи.
Мои же изыскания будут отталкиваться от http://codesampler.com/dx9src/dx9src...article_system т.е. создании системы частиц. Частицы этой системы как раз и создадут сам "эффект". Например эффект дождя или снега - частицы тут капля или снежинка. Для дождя и снега характерны РАЗНЫЕ поведения частиц, но не переписывать же нам кучу кода для разных ситуаций? Нет, следует сделать универсальную систему. Этим мы и попробуем заняться.

Итак как же организовать частицы? Так как мы не знаем сколько частиц будет в нашем эффекте (универсальная система) я предпологаю связать данные списком где будет 1-ая частица которая содержит указатель на следующую а та на следующую и т.д.
Кроме этого чтобы частицы могли вести себя по разному нужно делать это по принципу callback. У каждой частицы есть Update метод который будет выполнять член-callback функцию посылающую в неё себя (this) а данный callback уже изменит СВОЙСТВА (позиция, размер, вес и др.) частицы. В этом плане callback вызов служит как бы ВОЗДЕЙСТВИЕМ на частицу, однако тут есть проблема. Допустим у нас есть воздействие:
Код C++
1
2
3
void Wind(Particle* _this){
   // что то сделаем с Particle
}
Это замечательно, но ветер может быть разный. Дуть под разным углом, с разной силой и может вообще быть не статичный. Можно писать кучу callback-синонимов WindHeawy WindLow и т.д. однако я предлагаю другое. Т.к. это искуственная среда то не будет зазорным хранить ПАРАМЕТРЫ воздействия в самом Particle как указатель. Конечно это не совсем логично впрочем как и хранение в нем воздействия, однако для решаемой задачи это удобно. Не всегда программирование красиво описывает реальность...
Ограничения с которыми мы сталкиваемся - у всех воздействий есть одинаковые ПАРАМЕТРЫ. Частицы должны иметь одинаковые заранее определенный набор СВОЙСТВ. Я не думаю что это слишком помешает нашей реализации и в конце концов их не так много если подумать.

На сегодня все. Это была теория по самой частице, буду реализовывать её. Критика приветствуется
Ответ: Ребята, подскажите альтернативный вариант решения этого вопроса по средствам C#.
За раннее благодарен!