2014-01-09 2 views
0

У меня есть MySQL таблицы members с колоннами id, user, password и verifiedМогу ли я отправить дополнительные переменные через сообщение формы в PHP?

Когда пользователь входит в систему, используя имя пользователя и пароль (по сравнению с членами-дб) они представлены с формой. Форма собирает информацию для проверки вручную администратором. После отправки формы он отправит электронное письмо администратору со всеми подробностями, чтобы подтвердить его вручную.

Проблема, с которой я сталкиваюсь, заключается в том, что администратор хочет, чтобы письмо содержало ссылку, которая позволит ему обновить проверенное поле в таблице участников после нажатия. Мне нужно отправить ранее сохраненную переменную с формой для этого. Таким образом, у меня есть ссылка на таблицу участников.

Например, если я храню $ user_id как идентификатор какой строки мне нужно обновить, и я мог бы послать его вперед с формой, то я мог бы просто использовать функцию UPDATE WHERE ID = $ user_id

Вот моя форма ...

<form method="post" name="verify_form" action="../includes/verify.php"> 
Website for Online Verification: <input type="text" name="webpage" id="webpage" /><br /> 
Identification Number: <input type="text" name="number" id="number" /><br /> 
Expiration Date: <input type="text" name="expire" id="expire" /><br /> 
<input type="submit" value="Verify Me!" onclick="return vformhash(this.form, this.form.webpage, this.form.number, this.form.expire);" /> 
<input type="reset" value="Clear Form" /> 
</form> 

есть ли способ, чтобы отправить мой ранее захваченный $ user_id на страницу verify.php, когда пользователь отправляет?

+0

вы можете использовать скрытые поля формы. однако не думали о каком-либо эффекте безопасности. например http://www.echoecho.com/htmlforms07.htm –

+1

@dagon Вы так полезны ... Спасибо. –

+0

@dagon Я прочитал. Попытка подтвердить, что я опубликовал отличный вопрос. Но, как говорится в конце, иногда люди слишком претенциозны, чтобы получать ваши вопросы. Не отчаивайтесь. Лучший совет там. Еще раз спасибо, приятель. ;) –

ответ

2

Вы можете использовать скрытое поле:

<input type="hidden" name="userid" value="<?php echo $user_id; ?>" > 
+0

Это не очень хороший способ отправить его через скрытое поле, но если вы хотите это сделать, тогда закодируйте свой user_id перед тем, как перейти к скрытому полю. И декодируйте его, когда вы попадете в форму – Shahbaz

1

Вы можете использовать:

<input type='hidden' name='user' value=<?php echo $user_id; ?>> 

внутри формы.

0

Вы можете отправить его в URL, как

$url = "verify.php?user_id=" . $ user_id; 

И доступ к ним в verify.php странице по

$ user_id = $_GET ['user_id']; 
0

Вы можете использовать скрытые поля: <input type="hidden"....

Если информация чувствительна, вы не должны помещать ее в эти скрытые поля, а хранить ее в сеансе или иным образом на своем сервере. Затем вы можете использовать скрытое поле для хранения ключа, который вы можете использовать, чтобы снова найти эти значения позже.

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

0

Два варианта:

Изменения вашего для тега передать идентификатор как GET пары:

action="../includes/verify.php?user_id=123" 

-или-

Добавить скрытое поле:

<input type="hidden" name="user_id" id="user_id" value="123" /> 

Вы можете получить доступ к этому значению либо $_GET['user_id'] для варианта №1, либо $_POST['user_id'] для опции № 2 в вашем скрипте PHP.

0

Когда пользователь входит в систему, сохранить их ID в значение, например $_SESSION["userID"] сеанса. Затем в файле verify.php вы можете получить доступ к $_SESSION["userID"]. Это чище, чем передавать ID взад и вперед в качестве параметров.

Смежные вопросы