Salve sono nuovo del forum e ho fatto una ricerca ma non sembra esaudire il mio problema quindi provo a postare.
Situazione
Quando si apre il sito che sto realizzando viene controllato se c'è un cookie con la username settata (in php/mysql e funziona bene). Se il cookie c'è viene estratto il livello di permessi dell'utente dal database (e anche questo funziona alla grande) infine se il livello di permessi è sufficientemente alto da consentirgli l'accesso al pannello di controllo (seppur con delle limitazioni in base ai vari livelli e anche questo funziona) il sito appare ma con il plugin Colorbox lo oscuro e apro un popup con la richiesta della password. A questo punto se la password immessa è corretta (viene passata ad un altro script php e funziona) il popup si dovrebbe chiudere dando accesso al pannello di controllo altrimenti il popup rimane e viene stampato il messaggio "Password Errata".
Problema
Il popup appare correttamente così come anche il campo per l'immissione della password che una volta immessa viene passata allo script php che la confronta con una predefinita in una variabile. Tuttavia se la passwor è giusta il popup non si chiude. Mentre se la password è errata stampa correttamente il messaggio (Password Errata) lasciando intatti form e popup per un nuovo inserimento che è quello che poi voglio.
Domanda
1) Come posso chiudere il popup, senza stampare niente, se la password è giusta ?
Ecco il codice
Mentre il codice php per questo esempio è veramente minimalecodice:<!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></title> <link href="../style.css" rel="stylesheet" type="text/css" /> <link media="screen" rel="stylesheet" target="_blank" href="css/colorbox.css" /> <link media="screen" rel="stylesheet" target="_blank" href="css/popup.css" /> <script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js" type="text/javascript"></script> <script language="javascript" src="js/colorbox.js"></script> <script> /** * * Apro un dialogo con ColorBox * * L'oggetto open_popup apre la finestra di ColorBox * width e height sono le dimensioni * Inline se è su true fa si che venga passato all'oggetto href * Open apre la finestra immediatamente * */ $("document").ready(function (){ $(".open_popup").colorbox({width:"600px", height:"250px", inline:true, open:true, href:"#subscribe_popup"}); /** * * Creo una chiamata ajax per verificare la password immessa nella form * */ $("#form").submit(function(){ // Letteralmente quando viene sottomessa la form esegui la funzione var password = $("input#password").val(); // Letteralmente creo una variabile con il valore del campo password var dataString = 'password=' + password; // Letteralmente credo una stringa con i valori da passare alla funzione per l'analisi $.ajax({ // Letteralmente avvio una richiesta ajax type: "POST", url: "verifica.php", data: dataString, // Letteralmente passo il dataScript via post al file per l'analisi dei dati (verifica.php) complete: function(data){ // Letteralmente eseguo la funzione data quando la richiesta ajax è stata completata $("#dataResponse").html(data.responseText+"Password errata"); // Letteralmente se la password è errata stampo un errore $("#dataResponse").fadeIn(); // Letteralmente se viene stampato un errore mostra il div corrispondente } // Letteralmente chiudo la funzione data }); // Letteralmente chiudo la chiamata ajax return false; // Letteralmente ritorno un valore falso se la chiamata non è andata a buon fine }); }); // Letteralmente chiudo il ciclo principale </script> </head> <body> <h5>Questa parte non sarebbe necessaria ma serve a dimostrare come il sito sottostante sia visibile seppur non accessibile</h5> <div style='display:none' class='open_popup'> <!-- Creo un div con propietà non visibile (display:none) e che viene aperto quanto l'ustruizione jquery richiama la classe open_popup --> <div id="subscribe_popup" style="padding:10px"> <div align="center"> <h1 class="box-title">Password</h1> <form id="form" /> <input type="password" id="password" /> <input type="submit" value="Invia" /> </form> </div> <div id="dataResponse" style="display:none"></div> </div> </div> </body> </html>
Grazie a chi risponderàCodice PHP:
<?php
$testPass = "prova";
if ($_POST['password'] == $testPass)
{
// Decommentando questa riga se la password è giusta stampa il messaggio nel popup
// echo "Password corretta";
return true;
} else {
return false;
}
?>
Marco