Как предотвратить пользователя от удара URL непосредственно в браузере, так что он не может редактировать запись так:Предотвращение от редактирования записи непосредственно ударять URL в торт PHP
http://localhost/demo_cake/users/edit/7
Мой код редактирования в контроллере, как указано ниже, Пожалуйста, дайте какие-либо предложения:
public function edit() {
$id = $this->request->params['pass'][0];
$this->User->id = $id;
if($this->User->exists()){
if($this->request->is('post') || $this->request->is('put')){
if($this->User->save($this->request->data)){
$this->Session->setFlash('User was edited.');
$this->redirect(array('action' => 'index'));
}else{
$this->Session->setFlash('Unable to edit user. Please, try again.');
}
}else{
$this->request->data = $this->User->read();
}
}else{
$this->Session->setFlash('The user you are trying to edit does not exist.');
$this->redirect(array('action' => 'index'));
}
}
index.php
<h2>Users</h2>
<!-- link to add new users page -->
<div class='upper-right-opt'>
<?php echo $this->Html->link('+ New User', array('action' => 'add')); ?>
</div>
<table style='padding:5px;'>
<!-- table heading -->
<tr style='background-color:#fff;'>
<th>ID</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Username</th>
<th>Email</th>
<th>Actions</th>
</tr>
<?php
//loop to show all retrieved records
foreach($users as $user){
echo "<tr>";
echo "<td>{$user['User']['id']}</td>";
echo "<td>{$user['User']['firstname']}</td>";
echo "<td>{$user['User']['lastname']}</td>";
echo "<td>{$user['User']['username']}</td>";
echo "<td>{$user['User']['email']}</td>";
//here are the links to edit and delete actions
echo "<td class='actions'>";
echo $this->Html->link('Edit', array('action' => 'edit', $user['User']['id']));
//in cakephp 2.0, we won't use get request for deleting records
//we use post request (for security purposes)
echo $this->Form->postLink('Delete', array(
'action' => 'delete',
$user['User']['id']), array(
'confirm'=>'Are you sure you want to delete that user?'));
echo "</td>";
echo "</tr>";
}
?>
</table>
Если бы я был вами, я не буду использовать ссылку для редактирования/удаления данных ... вместо этого используйте кнопку. –
BTW Это ваш локальный хост. : P –
, но мне нужно использовать ссылку, и я обновил свой код, чтобы показать, как я использую ссылку. – user3653474