Salve a tutti,
ho una pagina con la quale gestisco delle carte fedeltà, i loro punti e l'operatore che sta lavorando...
Tutto parte dalla pagina di login:
Da qui si arriva alla pagina session_start.php che gestisce la sessione e il controllo di user password e attivazione:
Da qui si arriva alla pagina ready.php, non è altro che un disegno che dice che hai effettuato accesso e ti spedisce alla pagina ddt_go.php
Questa è la pagina principale... Da qui si vede l'operatore loggato passato in sessione, la data e l'ora, l'eventuale barcode della tessera, il pulsante per la ricerca tessera e il saldo dei punti... Funziona tutto alla grande... solamente che dal click del bottone "cercacard" si apre un popup che ti fa immettere codice, lo cerca e se lo trova, chiude il popup e aggiorna la pagina ddt_go con il numero del barcode passato in sessione... Anche questo TUTTO ok... solamente che ora mi rimane salvato FISSO il barcode dell'ultima tessera usata... Come posso fare?
La pagina cerca card è questa:
ho una pagina con la quale gestisco delle carte fedeltà, i loro punti e l'operatore che sta lavorando...
Tutto parte dalla pagina di login:
PHP:
<?php
//creo la sessione
//in TUTTE le pagine in cui uso le sessioni
if(!isset($_SESSION)){
session_start ();
}
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Benvenuti nel Gestionale</title>
<style type="text/css">
body {
font: Eras Medium ITC;
text-align: center;
}
</style>
<style type="text/css">
#main {
width:420px;
height:300px;
position:absolute;
top:50%;
left:50%;
margin:-150px 0 0 -179px;
}
</style>
</head>
<body bgcolor="#f7b76b">
<div id="main" text align="left">
<p><font size="4px" face="Eras Medium ITC">Effettua il Login per accedere al gestionale</font></p><br><br><br>
<form action="session_start.php" method="post">
<table style="">
<tr>
<td height="41"><font size="4px" face="Eras Medium ITC">Inserisci Username: </font></td><td><input name="user" type="text" value="">
</td>
</tr>
<tr>
<td height="41"><font size="4px" face="Eras Medium ITC">Inserisci Password: </font></td><td>
<input name="pwd" type="password" value="">
</td>
</tr>
</table>
<p align="center">
<input type=submit value="Login" name="B1" style="font-weight: 700"></font></td></tr></p>
</form>
</div>
</body>
</html>
Da qui si arriva alla pagina session_start.php che gestisce la sessione e il controllo di user password e attivazione:
PHP:
<?php
//creo la sessione
//in TUTTE le pagine in cui uso le sessioni
if(!isset($_SESSION)){
session_start ();
}
?>
<?php
//ho verificato che provengo da login
//collegamento al db
//verifiche sui post ....e li leggo
$user = $_POST['user'];
$user = addslashes(htmlspecialchars(($_POST['user'])));
if($user==""){
echo '<P> User Vuota</P>';
header('Location:user_empty.php');
//ritorno al form
$a=1;
}
$pwd = $_POST['pwd'];
$pwd = addslashes(htmlspecialchars(($_POST['pwd'])));
if($pwd=="") {
header('Location:pwd_empty.php');
//ritorno al form
$b=1;
}
?>
<?php
include('connect.php');
//verifico di provenire da login.php e non digitando sul bw il nome della pagina
if(basename($_SERVER['HTTP_REFERER']) != 'login.php'){
//non provengo da login.php
unset($_SESSION);
//distruggo eventuali sessioni e quindi rimando a login
@header('Location:login.php');
} else {
if ($a!=1 && $b!=1){
//interrogo il db, non ho messo la codifica dell'user e pass
$query=mysql_query("SELECT * FROM utenti WHERE user='$user' and pwd='$pwd' and active='1'");
//verifico che esista un utente con tale username e tale password
$esiste=mysql_num_rows($query);
//se $esiste == 0 non cè
if($esiste > 0){//esiste
//estraggo usn e pass
$rows=mysql_fetch_array($query);
$utente=1;
//e li passo in sessione
$_SESSION['user']=$rows['user'];
$_SESSION['pwd']=$rows['pwd'];
//accedo alla/alle pag riservate
@header('Location:ready.php');
}else{
$querynoactive=mysql_query("SELECT * FROM utenti WHERE user='$user' and pwd='$pwd' and active='0'");
//verifico che esista un utente con tale username e tale password
$esisteactive=mysql_num_rows($querynoactive);
//se $esiste == 0 non cè
if($esisteactive > 0){//esiste
//estraggo usn e pass
$rows=mysql_fetch_array($querynoactive);
echo "Devi attivare il tuo account tramite la mail che ti è stata inviata!";
}
//non esiste
// controlla che siano di un amministratore
$queryadmin = mysql_query("SELECT * FROM admin WHERE user='$user' AND pwd='$pwd'");
$esisteadmin=mysql_num_rows($queryadmin);
//se $esiste == 0 non cè
if($esisteadmin > 0){//esiste
//estraggo usn e pass
$rows=mysql_fetch_array($queryadmin);
$admin=1;
//e li passo in sessione
$_SESSION['user']=$rows['user'];
$_SESSION['pwd']=$rows['pwd'];
//accedo alla/alle pag riservate
@header('Location:ready.php');
}else{
unset($_SESSION);
@header('location:error_pwd_user.php');
}
}
}
}
?>
<html>
<head>
<style type="text/css">
body { background-image: url(sfondo.jpg);
background-repeat: repeat-x;
font: Eras Medium ITC;
}
</style>
</head>
<body bgcolor="#f7b76b">
</body>
Da qui si arriva alla pagina ready.php, non è altro che un disegno che dice che hai effettuato accesso e ti spedisce alla pagina ddt_go.php
PHP:
<?php
//creo la sessione
//in TUTTE le pagine in cui uso le sessioni
if(!isset($_SESSION)){
session_start ();
} else {
session_start();
unset($_SESSION['barcode']);
session_destroy($_SESSION['barcode']);
session_write_close();
}
include('connect.php');
?>
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="utf-8">
<title>Creazione DdT</title>
<style type="text/css">
* { font-family:Arial; }
h2 { padding:0 0 5px 5px; }
h2 a { color: #224f99; }
a { color:#999; text-decoration: none; }
a:hover { color:#802727; }
p { padding:0 0 5px 0; }
input { padding:5px; border:1px solid #999; border-radius:4px; -moz-border-radius:4px; -web-kit-border-radius:4px; -khtml-border-radius:4px; }
</style>
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript">
var ajax = new sack();
var currentClientID=false;
function getClientData()
{
var clientId = document.getElementById('clientID').value.replace(/[^0-9]/g,'');
if(clientId.length==4 && clientId!=currentClientID){
currentClientID = clientId
ajax.requestFile = 'getClient.php?getClientId='+clientId; // Specifying which file to get
ajax.onCompletion = showClientData; // Specify function that will be executed after file has been found
ajax.runAJAX(); // Execute AJAX function
}
}
function showClientData()
{
var formObj = document.forms['clientForm'];
eval(ajax.response);
}
function initFormEvents()
{
document.getElementById('clientID').onblur = getClientData;
document.getElementById('clientID').focus();
}
window.onload = initFormEvents;
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(function() {
$("#aggiungi").click(function() {
elem = $(".campo").first().clone();
elem.css("display", "block");
elem.appendTo("#campi");
});
$("#campi").on("click", ".remove", function() {
$(this).parent().remove();
});
$("#aggiungi").click();
});
</script>
<style type="text/css">
body { background-image: url(sfondo.jpg);
background-repeat: repeat-x;
font: Eras Medium ITC;
}
</style>
<style type="text/css">
#main {
width:672px;
height:600px;
position:absolute;
top:352px;
left:523px;
margin:-150px 0 0 -336px;
}
</style>
</head>
<body bgcolor="#f7b76b">
<p align="center">
<img src="images/logo.png" >
<form action="read_ddt.php" method="post" name="read">
<div id="main">
Operatore: <font color="#FF0000"><?php echo $_SESSION[user]; ?></font><br>
Data: <?php echo (date("d/m/Y"));?><br>
Ora: <?php echo (date("H:i"));?><br>
Barcode card:<font color="#FF0000"><?php echo $_SESSION[barcode]; ?></font><br><br>
<input type="button" onClick="window.open('puntifidelity.htm', 'Cerca card', 'width=690, height=700, resizable, status, scrollbars=1, location');"
value="Cerca card">
<p align="left"><a href="#" id="aggiungi">Aggiungi riga</a></p>
<div id="campi">
<p>
<div class="campo" style="display: none;">
<input type="text" placeholder="Barcode" name="campo[]" id="barcode">
<input type="text" placeholder="Codice" name="codice[]" id="clientID">
<input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione">
<input type="text" placeholder="Quantità" name="quantita[]" id="quantita">
<br><a href="#" class="remove">Rimuovi riga</a></br>
</p>
</div>
</div>
<p>
<?php
$query=mysql_query("SELECT * FROM fidelitypoint WHERE barcode='$_SESSION[barcode]' ");
//verifico che esista una una card con tale barcode
$esiste=mysql_num_rows($query);
//se $esiste == 0 non cè
if($esiste > 0){//esiste
//estraggo usn e pass
$rows=mysql_fetch_array($query);
}
$querypunti=mysql_query("Select sum(punti) from fidelitypoint where barcode='$_SESSION[barcode]'");
$row=mysql_fetch_array($querypunti);
?>
Saldo punti:<font color="#FF0000"> <?php echo $row[0]; ?></font> <br><br>
<input name="read" type="submit" id="read" value="Inserisci">
</p>
</div>
</form>
</p>
</body>
</html>
Questa è la pagina principale... Da qui si vede l'operatore loggato passato in sessione, la data e l'ora, l'eventuale barcode della tessera, il pulsante per la ricerca tessera e il saldo dei punti... Funziona tutto alla grande... solamente che dal click del bottone "cercacard" si apre un popup che ti fa immettere codice, lo cerca e se lo trova, chiude il popup e aggiorna la pagina ddt_go con il numero del barcode passato in sessione... Anche questo TUTTO ok... solamente che ora mi rimane salvato FISSO il barcode dell'ultima tessera usata... Come posso fare?
La pagina cerca card è questa:
PHP:
<?php
session_start();
//CONNESSIONE AL DATABASE
include('connect.php');
//RECUPERA DATI DAL FORM
$mail = $_POST['mail'];
$mail = addslashes(htmlspecialchars(($_POST['mail'])));
$Barcode = $_POST['Barcode'];
$Barcode = addslashes(htmlspecialchars(($_POST['Barcode'])));
if($Barcode =="" ){
if($mail==""){
?>
<script>
alert('Il campo mail deve essere riempito!');
location.href='puntifidelity.htm';
</script>
<?php
}else{
if((!isset($_POST['mail'])) || (!eregi("^([a-z0-9\._-]+)(@[a-z0-9.-]+)(\.{1}[a-z]{2,4})$", $_POST['mail'])))
{
echo "Attenzione, formato email non valido.";
//ritorno al form
}else{
$ctrl_mail = @mysql_query("SELECT * FROM fidelity WHERE mail='$mail'") or die (mysql_error());
if(@mysql_num_rows($ctrl_mail)>0)
{
$_SESSION['mail'] = $mail;
?>
<script>
location.href='fidelitypoint.php';
</script>
<?php
}else{
?>
<script>
alert('Email non trovata');
location.href='puntifidelity.htm';
</script>
<?php
}
}
}
}else{
$ctrl_barcode = @mysql_query("SELECT * FROM fidelity WHERE barcode='$Barcode'") or die (mysql_error());
if(@mysql_num_rows($ctrl_barcode)>0)
{
$_SESSION['barcode'] = $Barcode;
echo '<script>opener.location.href="ddt_go.php";self.close();</script>';
}else{
?>
<script>
alert('Numero tessera non trovato');
location.href='puntifidelity.htm';
</script>
<?php
}
}
?>