Guest User

Untitled

a guest
Nov 22nd, 2017
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.49 KB | None | 0 0
  1. <?php
  2. // variable declaration
  3. $username = "";
  4. $email = "";
  5. $errors = array();
  6. $_SESSION['success'] = "";
  7. $Usererr = $Mailerr = $Passerr = false;
  8.  
  9. // connect to database
  10. $db = mysqli_connect('localhost', 'root', 'sa', 'registration');
  11.  
  12. // REGISTER USER
  13. if (isset($_POST['reg_user'])) {
  14. // receive all input values from the form
  15. $username = mysqli_real_escape_string($db, $_POST['username']);
  16. $email = mysqli_real_escape_string($db, $_POST['email']);
  17. $password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
  18. $password_2 = mysqli_real_escape_string($db, $_POST['password_2']);
  19.  
  20. // form validation: ensure that the form is correctly filled
  21. if (empty($username)) { array_push($errors, "El nombre de usuario es obligatorio"); $Usererr=true; }
  22. if (empty($email)) { array_push($errors, "El correo electrónico es obligatorio"); $Mailerr=true; }
  23. if (empty($password_1)) { array_push($errors, "Se requiere una contraseña"); $Passerr=true; }
  24.  
  25. if ($password_1 != $password_2) {
  26. array_push($errors, "Las dos contraseñas no coinciden");
  27. }
  28.  
  29. // register user if there are no errors in the form
  30. if (count($errors) == 0) {
  31. $password = md5($password_1);//encrypt the password before saving in the database
  32. $query = "INSERT INTO users (username, email, password)
  33. VALUES('$username', '$email', '$password')";
  34. mysqli_query($db, $query);
  35.  
  36. $_SESSION['username'] = $username;
  37. $_SESSION['success'] = "Ahora estás logeado";
  38. unset($_SESSION['msg']);
  39. if (isset($_GET["redirect"])){
  40. header('location: ' . $_GET["redirect"]);
  41. }else
  42. header('location: index.php');
  43. }
  44. }
  45. // ...
  46.  
  47. // LOGIN USER
  48. if (isset($_POST['login_user'])) {
  49. $username = mysqli_real_escape_string($db, $_POST['username']);
  50. $password = mysqli_real_escape_string($db, $_POST['password']);
  51.  
  52. if (empty($username)) {
  53. array_push($errors, "Username is required");
  54. }
  55. if (empty($password)) {
  56. array_push($errors, "Password is required");
  57. }
  58.  
  59. if (count($errors) == 0) {
  60. $password = md5($password);
  61. $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
  62. $results = mysqli_query($db, $query);
  63.  
  64. if (mysqli_num_rows($results) == 1) {
  65. $_SESSION['username'] = $username;
  66. $_SESSION['success'] = "Ahora estás logeado";
  67. unset($_SESSION['msg']);
  68. if (isset($_GET["redirect"])){
  69. header('location: ' . $_GET["redirect"]);
  70. }else
  71. header('location: pagina_privada.php');
  72. }else {
  73. array_push($errors, "Combinación errónea de usuario y contraseña");
  74. }
  75. }
  76. }
  77.  
  78. ?>
  79.  
  80. <?php
  81. session_start();
  82. ?>
  83.  
  84. <?php
  85. if (!isset($_SESSION['username'])) {
  86. $_SESSION['msg'] = "Para acceder a esta página, debes iniciar sesión primero";
  87. header('location: login.php?redirect=pagina_privada.php');
  88. }
  89. ?>
  90. <?php
  91. include("../PHP/header.php");
  92. include("../PHP/headerejercicio.php");
  93. include("login_functions.php");
  94. ?>
  95.  
  96. <?php
  97. echo $_SESSION['username'];
  98. ?>
  99.  
  100. <?php
  101. include("../PHP/footer.php");
  102. include("../PHP/footerejercicio.php");
  103. ?>
  104.  
  105. <?php
  106. session_start();
  107. ?>
  108.  
  109. <?php
  110. if (isset($_SESSION['username'])) {
  111. $_SESSION['msg'] = "Ya estás logeado";
  112. header('location: pagina_privada.php');
  113. }
  114. ?>
  115.  
  116. <?php
  117. include("../PHP/header.php");
  118. include("../PHP/headerejercicio.php");
  119. include("login_functions.php");
  120. ?>
  121.  
  122. <?php
  123. if (count($errors) > 0) {
  124. //Mostrar todos los mensajes de error
  125. for ($i = 0; $i < sizeOf($errors); $i++)
  126. echo "<div class='alert alert-danger' role='alert'>$errors[$i]</div>";
  127. }
  128. ?>
  129.  
  130. <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
  131. <div class="form-group <?php if ($Usererr) echo 'has-error';?>">
  132. <label for="username">Nombre de usuari@</label>
  133. <input type="text" class="form-control" id="username" name="username" value="<?php echo $username?>">
  134. </div>
  135. <div class="form-group <?php if ($Mailerr) echo 'has-error';?>">
  136. <label for="email">Correo</label>
  137. <input type="text" class="form-control" id="email" name="email" value="<?php echo $email?>">
  138. </div>
  139. <div class="form-group <?php if ($Passerr) echo 'has-error';?>">
  140. <label for="password_1">Contraseña</label>
  141. <input type="password" class="form-control" id="password_1" name="password_1">
  142. </div>
  143. <div class="form-group <?php if ($Passerr) echo 'has-error';?>">
  144. <label for="password_2">Confirma la contraseña</label>
  145. <input type="password" class="form-control" id="password_2" name="password_2">
  146. </div>
  147. <button type="submit" class="btn btn-default" name="reg_user">Registrarse</button>
  148. <p>¿Ya tienes un usuario? <a href='login.php'>Login</a></p>
  149.  
  150. <?php
  151. include("../PHP/footer.php");
  152. include("../PHP/footerejercicio.php");
  153. ?>
  154.  
  155. <?php
  156. session_start();
  157. ?>
  158.  
  159. <?php
  160. if(isset($_GET["redirect"])){
  161. $redirect = htmlspecialchars($_SERVER['PHP_SELF']) . "?redirect=" . $_GET["redirect"];
  162. }
  163. else {
  164. $redirect = htmlspecialchars($_SERVER['PHP_SELF']);
  165. }
  166. ?>
  167.  
  168. <?php
  169. include('login_functions.php');
  170. include("../PHP/header.php");
  171. include("../PHP/headerejercicio.php");
  172. ?>
  173.  
  174.  
  175. <?php
  176. if (isset($_SESSION['username'])) {
  177. ?>
  178. <p>Está registrado como <strong><?php echo $_SESSION['username']; ?></strong></p>
  179. <?php
  180. }else{
  181. if(isset($_SESSION['msg'])){
  182. echo "<div class='alert alert-danger' role='alert'>$_SESSION[msg]</div>";
  183. unset($_SESSION['msg']);
  184. }
  185. ?>
  186.  
  187. <?php
  188.  
  189.  
  190. if (count($errors) > 0) {
  191. //Mostrar todos los mensajes de error
  192. for ($i = 0; $i < sizeOf($errors); $i++)
  193. echo "<div class='alert alert-danger' role='alert'>$errors[$i]</div>";
  194. }
  195. ?>
  196.  
  197. <form action="<?php echo $redirect;?>" method="post">
  198. <div class="form-group <?php if ($Usererr) echo 'has-error';?>">
  199. <label for="username">Nombre de usuari@</label>
  200. <input type="text" class="form-control" id="username" name="username" value="<?php echo $username?>">
  201. </div>
  202. <div class="form-group <?php if ($Passerr) echo 'has-error';?>">
  203. <label for="password">Contraseña</label>
  204. <input type="password" class="form-control" id="password" name="password">
  205. </div>
  206. <button type="submit" class="btn btn-default" name="login_user">Acceder</button>
  207. <p>¿Todavia no tienes un usuario? <a href='register.php'>Registrarse</a></p>
  208. </form>
  209. <?php
  210. }
  211. ?>
  212.  
  213. <?php
  214. include("../PHP/footer.php");
  215. include("../PHP/footerejercicio.php");
  216. ?>
  217.  
  218. <?php
  219. session_start();
  220. include('login_functions.php');
  221. ?>
  222.  
  223.  
  224. <?php
  225. include("../PHP/header.php");
  226. include("../PHP/headerejercicio.php");
  227. ?>
  228.  
  229. <?php if (isset($_SESSION['username'])) {?>
  230.  
  231. <p>Está registrado como <strong><?php echo $_SESSION['username']; ?></strong></p>
  232.  
  233. <?php
  234. }else{
  235. ?>
  236.  
  237. <?php
  238. if ($errors){
  239. //Mostrar todos los mensajes de error
  240. for ($i = 0; $i < sizeOf($errors); $i++)
  241. echo "<div class='alert alert-danger' role='alert'>$errors[$i]</div>";
  242. }
  243. ?>
  244.  
  245.  
  246.  
  247. <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
  248. <div class="form-group <?php if ($Usererr) echo 'has-error';?>">
  249. <label for="username ">Nombre de usuari@</label>
  250. <input type="text" class="form-control" id="username" name="username" value="<?php echo $username?>">
  251. </div>
  252.  
  253. <div class="form-group <?php if ($Passerr) echo 'has-error';?>">
  254. <label for="password">Contraseña</label>
  255. <input type="password" class="form-control" id="password" name="password">
  256. </div>
  257.  
  258. <button type="submit" class="btn btn-default" name="login_user">Acceder</button>
  259. <p>¿Todavia no tienes un usuario? <a href='register.php'>Registrarse</a></p>
  260.  
  261. <?php
  262. }
  263. ?>
  264.  
  265. <?php
  266. include("../PHP/footerejercicio.php");
  267. include("../PHP/footer.php");
  268. ?>
  269.  
  270. <?php
  271. /*
  272. ******************************** PROCESO Y MODELO ***************************************
  273. Aquí empieza la parte de proceso de la página y de conexión con el modelo de la bd
  274.  
  275. Como podéis observar en esta parte NO se escribe nada de HTML!!!
  276.  
  277. Esto es así porque en esta parte, podemos iniciar sesiones, hacer redirecciones, etc. y para ello es obligatorio
  278. no haber producido salida HTML
  279.  
  280. De hecho, toda esta parte podría estar perfectamente en otro script php. Sólo está aquí para que os sea más sencillo
  281. */
  282. function sanitize_input($data) {
  283. /*
  284. La variable $db se define fuera de esta función. Para no ir pasando la conexión a la bd en cada función se usa
  285. global $db; que indica que esta variable tiene ámbito (scope) global y está definida en otra parte
  286. */
  287. global $db;
  288. $data = trim($data);
  289. //Quitar las comillas escapadas ' y ""
  290. $data = stripslashes($data);
  291. //Prevenir la introducción de scripts en los campos
  292. $data = htmlspecialchars($data);
  293.  
  294. return mysqli_real_escape_string($db, $data);
  295. }
  296. function connect_db(){
  297. //Conexión con la bd
  298. $db = mysqli_connect('localhost', 'root', 'sa', 'mi_primera_web');
  299.  
  300. //IMPORTANTE. Siempre que os conectéis fijad la codificación de caracteres a utf8
  301. mysqli_query($db, "SET NAMES 'utf8'");
  302. return $db;
  303. }
  304.  
  305. /* Este array lo uso para mostrar la información del Method, action, view_mode y parámetros
  306. Solo es para pruebas
  307. */
  308. $debug = array();
  309. array_push($debug, "Method: " . $_SERVER["REQUEST_METHOD"]);
  310.  
  311. // Conectar con la base de datos
  312. $db = connect_db();
  313.  
  314. //Inicializar variables (SIEMPRE!!!)
  315. $id = -1; /* Así identificamos el valor NULL, con un valor que NUNCA pueda tener ese campo */
  316. $id_categoria = -1;
  317. $nombre = "";
  318. $precio = 0;
  319. $descripcion = "";
  320. $nombreErr = false;
  321. $precioErr = false;
  322. $descripcionErr = false;
  323. $errors = array();
  324. $info = array();
  325. $error = false;
  326.  
  327. if (($_SERVER["REQUEST_METHOD"] == "POST")){
  328. /*
  329. Recordad que todas las opciones que implican modificación de BD se hacen con post
  330. Las posibles opciones son:
  331. update, delete e insert
  332.  
  333. Dependiendo del método uno de los `button submit` se llama de una forma u otra (mirad el form)
  334. De esta forma sabemos qué acción ha realizado el usuario
  335. */
  336. if (isset($_POST['update'])) {
  337. $action = "update";
  338. }else if (isset($_POST['delete'])) {
  339. $action = "delete";
  340. }else if (isset($_POST['insert'])) {
  341. $action = "insert";
  342. }
  343.  
  344. //Siempre estamos en view_mode edit al hacer post, a no ser que se cambie por show_message (ver más abajo la explicación)
  345. $view_mode = "edit";
  346. switch ($action) {
  347. case "update":
  348. //Hacemos comprobaciones
  349. $id = sanitize_input($_POST['id']);
  350. $nombre = sanitize_input($_POST['nombre']);
  351. $id_categoria = sanitize_input($_POST['id_categoria']);
  352. $descripcion = sanitize_input($_POST['descripcion']);
  353. $precio = sanitize_input($_POST['precio']);
  354. if (empty($nombre)) {
  355. array_push($errors, "El nombre de la categoría es obligatorio");
  356. $nombreErr = true;
  357. }
  358. if (empty($descripcion)){
  359. array_push($errors, "La descripción del producto es obligatoria");
  360. $descripcionErr = true;
  361. }
  362. if (empty($precio)){
  363. array_push($errors, "El precio del producto es obligatorio");
  364. $precioErr = true;
  365. }
  366. if (count($errors) == 0) {
  367. //todo bien
  368.  
  369. $query = "UPDATE productos set nombre = '$nombre', descripcion = '$descripcion', id_categoria = $id_categoria, precio = $precio where id=$id";
  370.  
  371. if (!mysqli_query($db, $query)){
  372. // Si se produce algún error, informamos
  373. array_push($errors, mysqli_error($db));
  374. }
  375.  
  376. /* Sólo pruebas */
  377. array_push($debug, "Query: " . $query);
  378. }
  379. break;
  380. case "delete":
  381. $id = sanitize_input($_POST['id']);
  382. $query = "DELETE FROM productos where id=$id";
  383. mysqli_query($db, $query);
  384. if (!mysqli_query($db, $query)){
  385.  
  386. //IMPORTANTE: Si se produce algún error, pasamos a action update
  387. array_push($errors, mysqli_error($db));
  388. $action = "update";
  389. $nombre = $_POST['nombre'];
  390. $descripcion = $_POST['descripcion'];
  391. $precio = $_POST['precio'];
  392. $id_categoria = $_POST['id_categoria'];
  393. $error = true;
  394. }else{
  395. //Cuando va bien sólo muestro un mensaje. Mirad más abajo
  396. $view_mode = "show_message";
  397. }
  398. /* Sólo pruebas */
  399. array_push($debug, "Query: " . $query);
  400.  
  401. break;
  402. case "insert":
  403. $id = "";
  404. $nombre = sanitize_input($_POST['nombre']);
  405. $id_categoria = sanitize_input($_POST['id_categoria']);
  406. $descripcion = sanitize_input($_POST['descripcion']);
  407. $precio = sanitize_input($_POST['precio']);
  408. if (empty($nombre)) {
  409. array_push($errors, "El nombre de la categoría es obligatorio");
  410. $view_mode = "add_new";
  411. $nombreErr = true;
  412. }
  413. if (empty($descripcion)){
  414. array_push($errors, "La descripción del producto es obligatoria");
  415. $view_mode = "add_new";
  416. $descripcionErr = true;
  417. }
  418. if (empty($precio)){
  419. array_push($errors, "El precio del producto es obligatorio");
  420. $view_mode = "add_new";
  421. $precioErr = true;
  422. }
  423.  
  424. $query = "INSERT INTO productos (nombre, descripcion, id_categoria, precio) VALUES('$nombre', '$descripcion', $id_categoria, $precio)";
  425. array_push($debug, "Query: " . $query);
  426. if (mysqli_query($db, $query)){
  427. /*
  428. IMPORTANTE: Si todo va bien pasamos a action update de la categoría insertada
  429. La función mysqli_insert_id devuelve el último id automático insertado
  430. */
  431. $id = mysqli_insert_id($db);
  432. $action = "update";
  433. }else{
  434. //Si se produce algún error, seguiremos en action insert para que el usuario lo pueda corregir
  435. array_push($errors, mysqli_error($db));
  436. }
  437. break;
  438. default:
  439. array_push($errors, "Opción incorrecta");
  440. /* Este action y view_mode son especiales. Los uso para contemplar casos incongruentes */
  441. $action = "incorrect";
  442. $view_mode = "show_message";
  443. }
  444. }
  445. if (($_SERVER["REQUEST_METHOD"] == "GET")){
  446. //Ver en qué estado hemos de mostrar el form
  447. //Por defecto, la opción es editar un ítem
  448. $view_mode = "edit";
  449. /*
  450. En el GET sólo pueden venir los modos edit, add_new
  451. Dependiendo de este parámetro las "action" posibles son:
  452. edit -> update o delete
  453. add_new -> insert
  454.  
  455. NOTA. El modo "show_message" es especial. No se usa como parámetro en la URL, sino que se usa para indicar que no
  456. queremos mostrar el formulario (por ejemplo, una vez borrado un elemento, cuando no se encuentra el elemento, etc)
  457.  
  458. Si "view_mode" es:
  459. * edit: Muestra los datos del elemento junto con Guardar, Eliminar y Nuevo
  460. * add_new: Muestra un formulario con los datos en blanco y los botones Guardar y Cancelar
  461. * show_message: No muestra el formulario. Se usa en casos especiales (buscad en el código)
  462. */
  463. if (isset($_GET['view_mode'])) {
  464. $view_mode = strtolower($_GET['view_mode']);
  465. }
  466. if ($view_mode == "edit"){
  467. /* Obtener los datos del elemento */
  468. $id = -1; //Suponemos que es NULL
  469. if (isset($_GET["id"])){
  470. $id = $_GET["id"];
  471. }
  472. if ($id != -1){
  473. $query = "SELECT * from productos where id = $id";
  474. }else{
  475. /*
  476. Si no hay id es porque visitamos la página sin querystring.
  477. Nos quedamos con la primera que haya. Fijáos en "limit 1"
  478. */
  479. $query = "SELECT * from productos order by id asc limit 1";
  480. }
  481. array_push($debug, "Query: " . $query);
  482.  
  483. $results = mysqli_query($db, $query);
  484. if ($results->num_rows > 0) {
  485. //Rellenar las variables con las obtenidas de la BD
  486. $row = mysqli_fetch_assoc($results);
  487. $id = $row["id"];
  488. $nombre = $row["nombre"];
  489. $descripcion = $row["descripcion"];
  490. $id_categoria = $row["id_categoria"];
  491. $precio = $row["precio"];
  492. //Si el elemento existe, la action ahora es update
  493. $action = "update";
  494. }else{
  495. //Si no obtenemos ningún elemento es porque está vacía la tabla o no existe tal elemento
  496. if ($id == -1){
  497. //No hay ninguno, pasar automáticamente a modo add_new
  498. $view_mode = "add_new";
  499. }else{
  500. //El elemento no existe
  501. $view_mode = "show_message";
  502. array_push($errors, "El producto $id no existe");
  503. }
  504. }
  505. }
  506. /*
  507. ********** CUIDADO ********************
  508. NO HACER
  509. else if ($view_mode == "add_new"){
  510. porque cuando estamos en modo "edit" podemos cambiar a "add_new"
  511. */
  512. if ($view_mode == "add_new"){
  513. $id = "";
  514. $action = "insert";
  515. }
  516. //Si no son estos modos no mostramos el formulario
  517. if (($view_mode != "add_new") && ($view_mode != "edit") && ($view_mode != "show_message")){
  518. $view_mode = "show_message";
  519. $action = "incorrect";
  520. array_push($errors, "Opción incorrecta");
  521. }
  522. }
  523. ?>
  524. <?php
  525.  
  526. /* ******************************** VISTA ***************************************
  527. Aquí empieza la parte que muestra la página. Ahora ya se puede escribir HTML porque toda la lógica se ha hecho antes
  528. */
  529. function imprimeArbol($idCategoria, $nivel, $currentId){
  530. global $db;
  531. if ( $idCategoria == -1)
  532. $sql = "SELECT * from categorias where id_padre is null";
  533. else
  534. $sql = "SELECT * from categorias where id_padre = $idCategoria";
  535.  
  536. $results = mysqli_query($db, $sql);
  537.  
  538. if ($results->num_rows > 0) {
  539. $nivel = $nivel + 1;
  540. while($row = mysqli_fetch_assoc($results)){
  541. echo "<option value='" . $row["id"] . "' " . ($currentId == $row["id"] ? "selected" : "") . ">";
  542. echo str_pad("", $nivel * 4 * 6, "&nbsp;") . $row["nombre"];
  543. echo "</option>";
  544. imprimeArbol($row["id"], $nivel, $currentId);
  545. }
  546.  
  547. }
  548. }
  549. function imprimeMenu(){
  550. global $db, $id;
  551. $sql = "SELECT * from productos";
  552.  
  553. $results = mysqli_query($db, $sql);
  554.  
  555. if ($results->num_rows > 0) {
  556. echo "<ul>";
  557. while($row = mysqli_fetch_assoc($results)){
  558. echo "<li>";
  559. if ($id == $row["id"]){
  560. echo $row["nombre"];
  561. }else{
  562. echo "<a href='productos.php?id=" . $row["id"] . "&view_mode=edit'>" . $row["nombre"] . "</a>";
  563. }
  564. echo "</li>";
  565. }
  566. echo "</ul>";
  567. }
  568. }
  569.  
  570. $pageheader = "productos";
  571. include("./include/header.php");
  572. ?>
  573. <script>
  574. function checkDelete(){
  575. //Siempre que una acción no se pueda deshacer hay que pedir confirmación al usuario
  576. if (confirm("¿Seguro que desea borrar este producto?"))
  577. return true;
  578. else
  579. return false;
  580. }
  581. </script>
  582. <div class="row">
  583. <div class="col-lg-4">
  584. <?php imprimeMenu(-1); ?>
  585. </div>
  586. <div class="col-lg-8">
  587. <?php
  588. //Mensajes de depuración
  589. echo "<pre>";
  590. for ($i = 0; $i < sizeOf($debug); $i++)
  591. echo $debug[$i] . "n";
  592. echo "view_mode: $view_mode | action: $action | id: $id";
  593. echo "</pre>";
  594.  
  595. //Mostrar todos los mensajes de error
  596. for ($i = 0; $i < sizeOf($errors); $i++)
  597. echo "<div class='alert alert-danger' role='alert'>$errors[$i]</div>";
  598.  
  599. /*
  600. Cuando llegamos aquí ya sabemos en qué modo estamos porque se ha hecho en el controlador
  601. Todas las variables también se han informado allí
  602. */
  603. if (($view_mode == "edit") || ($view_mode == "add_new")){
  604. ?>
  605. <form action="productos.php" method="post">
  606. <div class="form-group">
  607. <label for="id">ID</label>
  608. <!-- Cuidado: Si un campo está disabled NO se envía en el POST, por tanto hay que duplicarlo en uno oculto -->
  609. <input disabled type="text" class="form-control" id="id" value="<?php echo $id; ?>" placeholder="Campo automático">
  610. <input type="hidden" name="id" value="<?php echo $id; ?>">
  611. </div>
  612. <div class="form-group <?php echo ($nombreErr ? " has-error" : "");?> ">
  613. <label for="nombre">Nombre</label>
  614. <input type="text" class="form-control" id="nombre" name="nombre" value="<?php echo $nombre; ?>">
  615. </div>
  616. <div class="form-group <?php echo ($descripcionErr ? " has-error" : "");?> ">
  617. <label for="descripcion">Descripción</label>
  618. <input type="textarea" class="form-control" id="descripcion" name="descripcion" value="<?php echo $descripcion; ?>">
  619. </div>
  620. <div class="form-group <?php echo ($precioErr ? " has-error" : "");?> ">
  621. <label for="precio">Precio</label>
  622. <input type="number" class="form-control" id="precio" name="precio" step=".01" value="<?php echo $precio; ?>">
  623. </div>
  624. <div class="form-group">
  625. <label for="categoria">Categoría</label>
  626. <?php
  627. echo "<select name='id_categoria' id_categoria='id_categoria'>";
  628. imprimeArbol(-1, -1, $id_categoria);
  629. echo "</select>";
  630. ?>
  631. </div>
  632. <button type="submit" name='<?php echo $action; ?>' class="btn btn-primary">Guardar</button>
  633. <?php if ($view_mode == "edit"){?>
  634. <button type="submit" name='delete' class="btn btn-default" onclick='return checkDelete();'>Eliminar</button>
  635. <hr>
  636. <a class='btn btn-default' href='productos.php?view_mode=add_new'>Nueva</a>
  637. <?php }else{ ?>
  638. <a class='btn btn-default' href='productos.php?view_mode=edit'>Cancelar</a>
  639. <?php } ?>
  640. </form>
  641. <?php
  642. }else{
  643. //En este caso sólo hay una posibilidad. En otros forms, tal vez haya más opciones
  644. if (($action == "delete") && (sizeOf($errors) == 0)){
  645. echo "<div class='alert alert-info'>Producto borrado satisfactoriamente <a class='btn btn-default' href='./productos.php'>Continuar</a></div>";
  646. }
  647. }//if (($view_mode == "edit") || ($view_mode == "add_new")){
  648. ?>
  649. </div>
  650. </div>
  651. <?php
  652. //En principio no hace falta cerrar la conexión, pero no está de más
  653. mysqli_close($db);
  654. include("./include/footer.php");
  655. ?>
Add Comment
Please, Sign In to add comment