Professional Documents
Culture Documents
Anem a continuar afegint funcionalitats a la interfície d’administració. El que volem en aquest punt és
que tal i com pots veure en la imatge de sota l’administrador sigui també capaç d’inserir registres en les
taules, esborrar registres prèviament ticats i actualitzar-ne. De moment i com pots veure només ho
implementarem per a la taula llibres.
Indicació 1: En la inserció, assegura’t tant de que no t’intenten inserir un llibre amb un ISBN duplicat,
com de que l’únic camp que es pot deixar com a null en espera de ser concretat més endavant sigui el
del preu, com de que preu és un nombre. En cas que ho estigui volem la següent resposta:
Introdueixo ISBN duplicat i mentre l’estic inserint ho detecta i:
Indicació 2: Un cop s’hagi inserit un llibre volem que es mostrin les dades de tots de forma que poguem
veure el que s’acava d’inserir amb el següent format:
Indicació 3: Forma de guardar referències d’entitats: $VALOR=htmlentities(addslashes($VALOR));
Indicació 7: No té sentit actualitzar l’isbn. Aconsegueix d’alguna forma que aquest no es pugui modificar.
Resposta :
INDEX.PHP
<?php
function loginForm(){
echo'
<div id="loginform">
<form action="index.php" method="post">
<p><strong>Introdueix usuari i contrassenya per continuar:</strong></p>
<label for="name">User: </label>
<input type="text" name="user" id="name" />
<label for="name">Pass: </label>
<input type="text" name="pass" id="pass" />
<input type="submit" name="enter" id="enter" value="Enter" />
</form>
</div>
';
}
if(isset($_POST['user'])){
if($_POST['user'] != "" && $_POST['pass'] != ""){
$_POST['user'] = stripslashes(htmlspecialchars($_POST['user']));
$_POST['pass'] = stripslashes(htmlspecialchars($_POST['pass']));
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Chat</title>
//Definire les dues variables globals que usaré per saber quin usuari és el que fa AJAX
//i que redefiniré cada vegada que es logui un usuari
var user="";
var pass="";
$(document).ready(function(){
window.location = 'index.php';
}
});
$.ajax({
type: 'POST',
url: 'mdadesc.php',
dataType: 'html',
data: {
usu: user,
pas: pass
},
success: function(suc) {
jQuery('#clienttb').html(suc);
},
error: function() {alert('An error occurred!');}
});
});
//Funció que mostra les dades dels llibres el parametre passa 0 si s'invoca sense inserir
////cap llibre i l'isbn si s'invoca despres de la inserció d'un llibre'
function mostradadesllibres(isbn){
$.ajax({
type: 'POST',
url: 'mdadesl.php',
dataType: 'html',
data: {
usu: user,
pas: pass,
is: isbn
},
success: function(suc) {
jQuery('#llibretb').html(suc);
},
error: function() {alert('An error occurred!');}
});
}
var isbn=jQuery(':text:eq(0)','#inllibretb').val();
var ce = '0';
if(isbn != ''){
//Si l'atribut és vermell vol dir que l'isbn és incorrecte!!'
//Ho comprovo a partir de l'atribu'
//Mirava d'usar la funció comprovaISBN però crec que anava per un fil a part i fallava!!!!!!!
var atr = jQuery("#isbn").attr('class');
if(atr == 'none'){
ce=1;
};
}
//El segon pas serà comprovar que tant autor com títol no s'entren com a nulls'
var a =jQuery('#autor').val();
var t =jQuery('#titol').val();
jQuery("#autor").attr('class','none');
jQuery("#titol").attr('class','none');
jQuery("#preu").attr('class','none');
if(a == '') {
ce='0'; //Condició per no entrar a introduir
jQuery("#autor").attr('class','roig');
}
if(t =='') {
ce='0'; //Condició per no entrar a introduir
jQuery("#titol").attr('class','roig');
}
//Tercer comprovaré que el preu sigui un nombre
var p =jQuery('#preu').val();
if(isNaN(p)){
ce='0'; //Condició per no entrar a introduir
jQuery("#preu").attr('class','roig');
}
//En cas que em retorni exit
if (ce == '1') {
//Recullo per jQuery el que he introduit en cada un dels camps del formulari d'inserció'
var isbnj=jQuery(':text:eq(0)','#inllibretb').val();
var autorj=jQuery(':text:eq(1)','#inllibretb').val();
var titolj=jQuery(':text:eq(2)','#inllibretb').val();
var preuj=jQuery(':text:eq(3)','#inllibretb').val();
$.ajax({
type: 'POST',
url: 'idadesl.php',
dataType: 'html',
data: {
usu: user,
pas: pass,
isbn: isbnj,
autor: autorj,
titol: titolj,
preu: preuj
},
success: function(suc) {
alert(suc);
},
error: function() {alert('An error occurred!');}
});
//Ara ja mostro les dades dels llibres amb el nou llibre inserit 1
//segon més tard esborrant primer els que hi havia
jQuery('#llibretb').html('');
var t=setTimeout(function(){mostradadesllibres(isbnj);},2000);
}
});
//Event per a que quan es perdi el focus de l'isbn aquest comprobi que aquest no està duplicat'
$("#isbn").keyup(function(){
comprovaISBN();
});
//Funció que comprova la no duplicitat de l'isbn d'un llibre que anem a introduir'
function comprovaISBN(){
var isbn=jQuery("#isbn").val();
$.ajax({
type: 'POST',
url: 'comprovaISBN.php',
dataType: 'html',
data: {
usu: user,
pas: pass,
isbnp: isbn
},
success: function(suc) {
if(suc == 0){
//Cas dolent
jQuery("#isbn").attr('class','roig');
return 0;
}else{
//Cas bo
jQuery("#isbn").attr('class','none');
return 1;
}
},
error: function() {
alert('An error occurred!');}
});
}
for(var i=0;i<n;i++){
if(jQuery('#llibretb input:checkbox:eq('+i+')').is(':checked')){
//Vaig posant a dins d'un array les posicions ticades'
//Els isbns dels llibres a esborrar
//alert("ticat: "+i+" poscion array: "+c);
var is=jQuery('#llibretb tr:eq('+i+') input:eq(0)').val();
arr[c]=is;
c=c+1;
}
}
});
for(var i=0;i<n;i++){
if(jQuery('#llibretb input:checkbox:eq('+i+')').is(':checked')){
//Vaig posant a dins d'un array les el numero de fila ticada'
//alert("ticat: "+i+" poscion array: "+c);
arr[c]=i;
c=c+1;
}
}
//Li passo les 4 dades perque no puc saber quina es la que tinc que actualitzar.
$.ajax({
type: 'POST',
url: 'adadesl.php',
dataType: 'html',
data: {
usu: user,
pas: pass,
isbn: isbnj,
autor: autorj,
titol: titolj,
preu: preuj
},
success: function(suc) {
//Trec l'isbn del llibre esborrat
alert(suc);
//Actualitzo la llista dels llibres usant la funció
//mostradadesllibres(0);
},
error: function() {alert('An error occurred!');}
});
});
});
</script>
<style type="text/css">
/* CSS Document */
body {
font:12px arial;
color: #222;
text-align:center;
padding:35px; }
form, p, span {
margin:0;
padding:0; }
input {
font:12px arial; }
#wrapper {
margin:0 auto;
margin-top: 10px;
padding-bottom:25px;
background:#EBF4FB;
width:704px;
height: 440px;
border:10px ridge cadetblue;
box-shadow: 3px 3px 7px grey;
border-radius: 9px;
opacity: 0.7;
}
#loginform {
margin:0 auto;
margin-top: 60px;
padding-bottom:25px;
background:#EBF4FB;
width:504px;
border:10px ridge cadetblue;
box-shadow: 3px 3px 7px grey;
border-radius: 9px;
opacity: 0.7;
}
body{
background-image: url(fons2.png);
}
strong{
color: grey;
letter-spacing: 2px;
}
#nom{
text-align: left;
font-weight: bold;
}
#loginform {
padding-top:18px; }
#loginform p {
margin: 5px; }
#submitmsg {
box-shadow: 3px 3px 7px grey;
}
#submit {
width: 60px;
}
.error {
color: #ff0000; }
#menu {
padding:12.5px 25px 12.5px 25px;
}
#name, #pass {
border-radius: 4px;
box-shadow: 3px 3px 7px grey;
border:1px solid aqua;
padding-left: 4px;
color: grey;
}
#name, #pass {
margin-right: 9px;
}
/*Estil dels botons*/
#enter, #exit, #mdadesc, #edadesc, #adadesc, #mdadesl, #edadesl, #adadesl, #idadesl{
border-radius: 4px;
box-shadow: 3px 3px 7px grey;
border:1px solid aqua;
text-align: center;
font-weight: bold;
color: darkslategrey;
}
<?php
if(!isset($_POST['user']) || !isset($_POST['pass']) || isset($_GET['error']) || ($_POST['user'] == "" || $_POST['pass'] == "")) {
if (isset($_GET['error'])){
echo '<span class="error">'.$_GET['error'].'</span>';
}else{
echo '<span class="error">Siusplau introdueix usuari i contrassenya</span>';
}
loginForm();
}
else{
//Aquest és el cas en que ha posat usuari i passord ---> Això fora de l'IF || (!isset($_POST['pass']) || $_POST['pass'] != "pass")!!!
//Connexió a mysql
$mysql = mysqli_connect("localhost", "bookusers","bookusers", "webbooks");
if(!$mysql){
//echo 'no puc establir la connexió';
//Ara he de construir a ma la direcció
$err='Error intern. No es pot establir la connexió. Torni a probar-ho més tard';
$direccio='http://localhost/P55/index.php?error='.$err;
header('Location:'.$direccio);
}
//Selecció de la base de dades apropiada
$selected = mysqli_select_db($mysql, "webbooks");
if(!$selected){
$err='Error intern. No es pot seleccionar la base de dades. Torni a intentar-ho més tard';
$direccio='http://localhost/P55/index.php?error='.$err;
header('Location:'.$direccio);
}
//Faig una consulta a la base de dades per veure si hi ha una fila que clavi el que m'entren
$query="select count(*) from credencials where usuari = '".$_POST['user']."' and contrassenya = '".$_POST['pass']."'";
$result= mysqli_query($mysql, $query);
if(!$result){
$err='Error intern. No rutlla la query. Torni a intentar-ho més tard';
$direccio='http://localhost/P55/index.php?error='.$err;
header('Location:'.$direccio);
}
$row= mysqli_fetch_row($result);
$count = $row[0];
//Canvio l'usuari i la pass de la variable global per poder consultar-los cada vegada que faci AJAX
echo '<script type="text/javascript">';
echo 'var pass="'.$_POST['pass'].'";';
echo 'var user="'.$_POST['user'].'";';
echo '</script>';
} else {
$err='Usuari o contrassenya incorrectes';
$direccio='http://localhost/P55/index.php?error='.$err;
header('Location:'.$direccio);
}
?>
<!--Aquí hauré de posar una cosa o una altra depenent del client i de l'administrador-->
<div id="wrapper">
<div id="menu">
</tbody>
</table>
</div>
<!--Dades inserció dels llibres-->
<div id="inllibre">
<table>
<caption>Insereix llibres</caption>
<thead>
<tr>
<th>ISBN</th><th>Autor</th><th>Tìtol</th><th>Preu</th>
</tr>
</thead>
<tbody id="inllibretb">
<tr><td><input type="text" name="ide" id="isbn"></td><td><input type="text" name="autor" id="autor"></td><td><input type="text" name="titol"
id="titol"></td><td><input type="text" name="preu" id="preu"></td></tr>
</tbody>
</table>
</div>
<input name="mdadesl" type="button" id="mdadesl" value="Mostra dades"/>
<input name="edadesl" type="button" id="edadesl" value="Esborra ticats"/>
<input name="adadesl" type="button" id="adadesl" value="Actualitza ticats"/>
<input name="idadesl" type="button" id="idadesl" value="Insereix llibre"/>
<hr/>
</div>
<?php
}
?>
</body>
</html>
MDADESC.PHP
<?php
/* El primer que faré serà recollir el usuari i pass que hem enviat per POST
* Confiaré que siguin correctes però hauri de comprobar que ho fossin
*/
//Si no s'ha passat per POST res de res a tomá pol culo!
if( !isset($_POST['usu']) || !isset($_POST['pas']) ){
header('Location:http://localhost/P55/index.php');
}
$user = $_POST['usu'];
$pass = $_POST['pas'];
//Si ets l'administrador
if ($user == 'admin'){
//Connexió a mysql
$mysql = mysqli_connect("localhost", "bookadmin","1111", "webbooks");
if(!$mysql){
//echo 'no puc establir la connexió';
//Ara he de construir a ma la direcció
$err='Error intern. No es pot establir la connexió. Torni a probar-ho més tard';
echo $err;
}
//Selecció de la base de dades apropiada
$selected = mysqli_select_db($mysql, "webbooks");
if(!$selected){
$err='Error intern. No es pot seleccionar la base de dades. Torni a intentar-ho més tard';
echo $err;
}
//Faig una consulta a la base de dades per veure si hi ha una fila que clavi el que m'entren
$query="select * from client";
$result= mysqli_query($mysql, $query);
if(!$result){
$err='Error intern. No rutlla la query. Torni a intentar-ho més tard';
echo $err;
}
echo $sort.'</tr>';
}else{
echo 'altres usaris que ha ompliré el codi quan toqui';
}
?>
MDADESL.PHP
<?php
/* El primer que faré serà recollir el usuari i pass que hem enviat per POST
* Confiaré que siguin correctes però hauri de comprobar que ho fossin
*/
//Si no s'ha passat per POST res de res a tomá pol culo!
if( !isset($_POST['usu']) || !isset($_POST['pas']) ){
header('Location:http://localhost/P55/index.php');
}
$user = $_POST['usu'];
$pass = $_POST['pas'];
//Connexió a mysql
$mysql = mysqli_connect("localhost", "bookadmin","1111", "webbooks");
if(!$mysql){
//echo 'no puc establir la connexió';
//Ara he de construir a ma la direcció
$err='Error intern. No es pot establir la connexió. Torni a probar-ho més tard';
echo $err;
}
//Selecció de la base de dades apropiada
$selected = mysqli_select_db($mysql, "webbooks");
if(!$selected){
$err='Error intern. No es pot seleccionar la base de dades. Torni a intentar-ho més tard';
echo $err;
}
//Faig una consulta a la base de dades per veure si hi ha una fila que clavi el que m'entren
$query="select * from llibre";
$result= mysqli_query($mysql, $query);
if(!$result){
$err='Error intern. No rutlla la query. Torni a intentar-ho més tard';
echo $err;
}
//Miro quantes files em retornarà
$numresults= mysqli_num_rows($result);
}
echo $sort.'</tr>';
}else{
echo 'altres usaris que ha ompliré el codi quan toqui';
}
?>
Idadesl.php
<?php
/* El primer que faré serà recollir el usuari i pass que hem enviat per POST
* Confiaré que siguin correctes però hauri de comprobar que ho fossin
*/
//Si no s'ha passat per POST res de res a tomá pol culo!
if( !isset($_POST['usu']) || !isset($_POST['pas']) ){
header('Location:http://localhost/P55/index.php');
}
$user = $_POST['usu'];
$pass = $_POST['pas'];
$isbn = $_POST['isbn'];
$autor = $_POST['autor'];
$titol = $_POST['titol'];
$preu = $_POST['preu'];
//Connexió a mysql
$mysql = mysqli_connect("localhost", "bookadmin","1111", "webbooks");
if(!$mysql){
//echo 'no puc establir la connexió';
//Ara he de construir a ma la direcció
$err='Error intern. No es pot establir la connexió. Torni a probar-ho més tard';
echo $err;
}
//Selecció de la base de dades apropiada
$selected = mysqli_select_db($mysql, "webbooks");
if(!$selected){
$err='Error intern. No es pot seleccionar la base de dades. Torni a intentar-ho més tard';
echo $err;
}
?>
comprovaISBN.php
<?php
/* El primer que faré serà recollir el usuari i pass que hem enviat per POST
* Confiaré que siguin correctes però hauri de comprobar que ho fossin
*/
//Si no s'ha passat per POST res de res a tomá pol culo!
if( !isset($_POST['usu']) || !isset($_POST['pas']) ){
header('Location:http://localhost/P55/index.php');
}
$user = $_POST['usu'];
$pass = $_POST['pas'];
//Recullo l'isbn
$isbne = $_POST['isbnp'];
//Connexió a mysql
$mysql = mysqli_connect("localhost", "bookadmin","1111", "webbooks");
if(!$mysql){
//echo 'no puc establir la connexió';
//Ara he de construir a ma la direcció
$err='Error intern. No es pot establir la connexió. Torni a probar-ho més tard';
echo $err;
}
//Selecció de la base de dades apropiada
$selected = mysqli_select_db($mysql, "webbooks");
if(!$selected){
$err='Error intern. No es pot seleccionar la base de dades. Torni a intentar-ho més tard';
echo $err;
}
//Faig una consulta a la base de dades per veure si hi ha una fila que clavi el que m'entren
$query="select isbn from llibre";
$result= mysqli_query($mysql, $query);
if(!$result){
$err='Error intern. No rutlla la query. Torni a intentar-ho més tard';
echo $err;
}
}
echo $sort;
}else{
echo 'altres usaris que ha ompliré el codi quan toqui';
}
?>
edadesl.php
<?php
/* El primer que faré serà recollir el usuari i pass que hem enviat per POST
* Confiaré que siguin correctes però hauri de comprobar que ho fossin
*/
//Si no s'ha passat per POST res de res a tomá pol culo!
if( !isset($_POST['usu']) || !isset($_POST['pas']) ){
header('Location:http://localhost/P55/index.php');
}
$user = $_POST['usu'];
$pass = $_POST['pas'];
//Recullo l'isbn
$isbne = $_POST['isbn'];
//Connexió a mysql
$mysql = mysqli_connect("localhost", "bookadmin","1111", "webbooks");
if(!$mysql){
//echo 'no puc establir la connexió';
//Ara he de construir a ma la direcció
$err='Error intern. No es pot establir la connexió. Torni a probar-ho més tard';
echo $err;
}
//Selecció de la base de dades apropiada
$selected = mysqli_select_db($mysql, "webbooks");
if(!$selected){
$err='Error intern. No es pot seleccionar la base de dades. Torni a intentar-ho més tard';
echo $err;
}
//Faig una consulta per esborrar el que tingui l'isbn en qüestió
$query="delete from llibre where isbn like '".$isbne."'";
$result= mysqli_query($mysql, $query);
if(!$result){
$err='Error intern. No rutlla la query. Torni a intentar-ho més tard';
echo $err;
} else {
echo $isbne;
}
}else{
echo 'altres usaris que ha ompliré el codi quan toqui';
}
?>
Adadesl.php
<?php
/* El primer que faré serà recollir el usuari i pass que hem enviat per POST
* Confiaré que siguin correctes però hauri de comprobar que ho fossin
*/
//Si no s'ha passat per POST res de res a tomá pol culo!
if( !isset($_POST['usu']) || !isset($_POST['pas']) ){
header('Location:http://localhost/P55/index.php');
}
$user = $_POST['usu'];
$pass = $_POST['pas'];
$isbn = $_POST['isbn'];
$autor = $_POST['autor'];
$titol = $_POST['titol'];
$preu = $_POST['preu'];
?>