Редактиране на обява чрез email и парола...

SLADE

Registered
Здравейте, колеги. Направил съм в базата данни поле email и поле password, но не знам какво да направя, че когато се въведе в полето дадения email и парола да отваря обявата на този email и парола... Един вид всяка обява има различни email и парола и при въвеждането им да се отваря обявата и да може да се редактира. Надявам се да сте ме разбрали!

P. S. Първоначало си мислех да е само с парола, но като се замислих на 100% ще има еднакви пароли и за това реших да е и с двете, но не знам как да го направя. Надявам се да ми помогнете...
Благодаря предварително!
 
Хах..

Направи редакцията вместо по Е-майл да бъде по #ID на обявата.

Правиш си;
SELECT * FROM `table` WHERE `id`='1' AND `pass`='proba';

примерно.. ако е ОКЕЙ го пускаш.
 
Правиш си един edit.php примерно в него копираш кода който ползваш за пускане на обяви. Правиш си една форма с 3 полета obqvaid, email, password. Като obqvaid след малко ще ти обясна какво ще представлява. Сега в този edit.php файл променяш заявката от INSERT да стане на UPDATE като сложиш една WHERE клауза само за обявата в която си, разбира се това ще е спрямо ID.

Сега отваряш базата ти данни и правиш едно поле obqvaid. Това поле obqvaid му задаваш стойност int(50) примерно и му слагаш ключ index.

Сега когато пускаш обява ще генирираш 4 - 5 цифрен код, който ще е obqvaid. Този код ще го показваш на потребителите който искат да пуснат обява, той ще им е лично тяхен (с този код ще си отварят обявата за редактиране, разбира се ще се проверява и по email който са въвели и парола).

Сега защо го правим така:
Ако е по "оригиналното" ID на обявата първо няма как да го покажеш на потребителите с точност коя е тяхната обява. Какво имам предвид, примерно 2 ма едновременно пускат обява и ако е по ID то на самата обява нямам как със сигурност да кажеш, че последно качената обява има ID-то на обявата която те са пуснали.
 
eddyy93 каза:
Правиш си един edit.php примерно в него копираш кода който ползваш за пускане на обяви. Правиш си една форма с 3 полета obqvaid, email, password. Като obqvaid след малко ще ти обясна какво ще представлява. Сега в този edit.php файл променяш заявката от INSERT да стане на UPDATE като сложиш една WHERE клауза само за обявата в която си, разбира се това ще е спрямо ID.

Сега отваряш базата ти данни и правиш едно поле obqvaid. Това поле obqvaid му задаваш стойност int(50) примерно и му слагаш ключ index.

Сега когато пускаш обява ще генирираш 4 - 5 цифрен код, който ще е obqvaid. Този код ще го показваш на потребителите който искат да пуснат обява, той ще им е лично тяхен (с този код ще си отварят обявата за редактиране, разбира се ще се проверява и по email който са въвели и парола).

Сега защо го правим така:
Ако е по "оригиналното" ID на обявата първо няма как да го покажеш на потребителите с точност коя е тяхната обява. Какво имам предвид, примерно 2 ма едновременно пускат обява и ако е по ID то на самата обява нямам как със сигурност да кажеш, че последно качената обява има ID-то на обявата която те са пуснали.

Пълни глупости говориш. Ако си е направил правилно структурата на таблицата с обяви - дори едно временно да пуснат (което е едно на милион) обявите пак няма да са с едно и също ID колоната е прави PRIMARY KEY (`id`) , за да се дублират.

Както казах обявата има своя уникален номер (id) и при публикуването и се добавя парола.

След, което файла за промяна ще стане така:

PHP:
<?php
function verify_passwd($id_obqva, $password) {
	$data = mysql_query("SELECT `id` FROM `table` WHERE `id` = '{$id_obqva}' AND `password` = '{$password}';") or die(mysql_error());
	return mysql_num_rows($data)? 1 : 0;
}
if(isSet($_POST['submit'])) {
	if(isSet($_POST['id'])) { $get_id = (int)$_POST['id']; } else { $get_id = ""; }
	if(isSet($_POST['password'])) { $get_passwd = $_POST['password']; } else { $get_passwd = ""; }
	if(empty($get_id) || empty($get_passwd)) {
		echo "полетата са празни";
	} else {
		if(verify_passwd($get_id, $get_passwd) > 0) {
			echo "Данните за редакция са невалидни!";
		} else {
			echo "Кода, който ще ти е за редакция";
		}
	}
} else {
	echo "
	<form method="POST">
		ID: <input type="text" name="id" />
		PASS: <input type="text" name="password" />
		<input type="submit" name="submit" value="Давай!" />
	</form>";
}
?>

След успешното публикуване на обявата се праща е-майл до търговеца/частното лице, което получава ID номер + парола и линк за редакция.

Като ID номера го взима с mysql_insert_id();..
 
Кажи ми как ще покажеш на потребитела кое му е ID - то на обявата.

PHP:
SELECT * FROM `table` ORDER BY id DESC LIMIT 0, 1

Добре ами точно в момента в която трябва да му покажеш id - то, някой друг е пуснал обява. Ще му покаже ID - то на другия.
 
eddyy93 каза:
Кажи ми как ще покажеш на потребитела кое му е ID - то на обявата.

PHP:
SELECT * FROM `table` ORDER BY id DESC LIMIT 0, 1

Добре ами точно в момента в която трябва да му покажеш id - то, някой друг е пуснал обява. Ще му покаже ID - то на другия.

$query = mysql_query("INSERT INTO .............");
$last_id = mysql_insert_id();
echo $last_id;

БАУ..

Другия вариант, да си драсне функция , с която да вади последния запис от тоя е-майл.
 
Благодаря и на давама Ви. Реших да го направя по начина на eddyy93
По-лесен и по-надежден ми се струва.
Поздрави!
 

Back
Горе