Azione mostra/nascondi dopo il verificarsi di una determinata azione

applefriend

Nuovo Utente
9 Set 2015
3
0
0
Salve, premetto che sono un neofita di php/css/html/javascript. Nonostante ciò, ho provato e smanettato per un bel pò di tempo al fine di raggiungere una soluzione, ma non sono riuscito a combinare nulla.
Ho realizzato una pagina opportunamente modificata da me prendendo un template già fatto, ho necessita che questo template con una home, abbia un bottone che riguardi l'amministrazione, (l'idea era un sito di ricette, che inviate opportunamente dagli utenti, vengono successivamente convalidate dall'admin). Ecco appunto cliccando sul pulsante ho creato la videata (phpmyadmin mi è stato amico) insomma sono riuscito ad arrivare fin qui.
Ora iniziano i problemi, praticamente all'inserimento della password, vorrei far comparire un form per cancellare una data ricetta, purtroppo non riesco proprio a capire come fare. Ossia il form per cancellare la richiesta, si presenta ancora prima di inserire la password in questo modo chiunque (anche non admin) può cancellare ricette a suo piacimento, e ovviamente questo non mi va bene.
Ecco a voi il codice, se riuscite a dirmi come nascondere/visualizzare il form della cancellazione, vi sarò grato.
Codice:
<!DOCTYPE php>
<html lang="it">
    <head>
        <title>#FoodArt | Pannello Admin</title>
		<meta charset="UTF-8" />
        <meta name="description" content="#FoodArt | L'arte in cucina" />
        <meta name="keywords" content="cibo,food,art,mangiare,piatti,pranzo,cena,pasto" />
		<meta name="author" content="Genco Antonello & Nicola Farella" />
        <link rel="stylesheet" type="text/css" href="css/style.css" />
		<link rel="stylesheet" type="text/css" href="css/sbimenu.css" />
		<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow' rel='stylesheet' type='text/css' />
		<link href='http://fonts.googleapis.com/css?family=News+Cycle&v1' rel='stylesheet' type='text/css' />
		 <script type="text/javascript">
			function mostra() {	 
			document.getElementById("videata1").style.display="block";
			document.getElementById("videata").style.display="none";
		}
		</script>
	
    </head>
	
<body>
	
	<div class="header">
				<h1>#FoodArt | Pannello Admin <span> Antipasti, primi, secondi e dessert</span></h1>
			
			</div>
 	
	<h2 id="videata">
	<form action="#" method='POST'>
		<p>Inserisci password amministratore: </p> <input type="password" name="pass1" required id="password"/>
		<p><input type="submit" class="submit" /></p>
		<p><input type="reset" class="clear" /></p>
	</form>
	</h2>
	
	<h2 id="videata1">
		<form action="Lista.php" method="post"> 
			<h2>Elimina Ricetta Nro: </h2>
			 <input type="text" name="Nro" required maxlength='3'/></p>
			<br>
			<p><input type="submit" class="submit" /></p>
			<p><input type="reset" class="clear" /></p>
		</form>
	</h2>
	
	
	<?php 
			if(isset($_POST['pass1'])){
				//In base alla password inserita cambiano gli elementi visualizzati
				$connessione = new mysqli("localhost","root","", "FoodArtDB");
				$query1 = "SELECT Password FROM Login WHERE Password='" . $_POST['pass1'] . "'";
				$risultati1 = mysqli_query($connessione, $query1);
				$num=mysqli_num_rows($risultati1);
				if ($num != 0){
					echo "Errore, la password inserita non e' corretta";
				} else {
					echo "Hai effettuato l'accesso come amministratore.";
						?>
						<script type="text/javascript"> mostra(); </script>
						<?php			
				}	
			}
		?>
		<br><br>
		<button onclick="location.href='Home.html'">Torna Al Menu Principale</button>
	
		
		<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
		<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
		<script type="text/javascript" src="js/jquery.bgImageMenu.js"></script>
		<script type="text/javascript">
			$(function() {
				$('#sbi_container').bgImageMenu();
			});
		</script>
    </body>
</html>
 

filomeni

Moderatore
Membro dello Staff
MOD
14 Mag 2006
1.052
6
38
51
Roseto degli Abruzzi (TE)
www.sitiweb.cloud
Ciao, è normale il funzionamento... Per fare quello che dici, la password deve servire per l'accesso ad un'area privata che all'interno contiene gli strumenti di amministrazione.
Per far questo devi costruire una pagina visibile solo se il login è "TRUE" e la sessione è avviata, quindi una pagina di controllo dei dati di accesso e l'avvio della sessione.
 

otto9due

Utente Attivo
22 Feb 2014
535
21
28
Come suggerito giustamente da @filomeni, dovresti leggerti qualcosa sulle SESSIONI PHP. Sono semplici da utilizzare, e ti permettono di ottenere quello che desideri.


Saluti.
G.G.
 

applefriend

Nuovo Utente
9 Set 2015
3
0
0
Come suggerito giustamente da @filomeni, dovresti leggerti qualcosa sulle SESSIONI PHP. Sono semplici da utilizzare, e ti permettono di ottenere quello che desideri.


Saluti.
G.G.

Grazie mille, li sto guardando da un pò e sto cercando di modificare il codice ma ho bisogno di una mano a livello concettuale. Voglio prima mettere in chiaro le idee e poi cercare di operare.
Ho eliminato gli script javascript, ho lasciato la pagina esclusivamente il form login il controllo della password e il bottone per tornare indietro alla home, ora mi concentro sul codice:
HTML:
<h2>
	<form action="#" method='POST'>
		<p>Inserisci password amministratore: </p> 
                <input type="password" name="pass1" required id="password"/>
		<p><input type="submit" class="submit" /></p>
		<p><input type="reset" class="clear" /></p>
	</form>
	</h2>

la password la controllo dal database quindi piu sotto scrivo così:

PHP:
<?

if(isset($_POST['pass1'])){
				
				$connessione = new mysqli("localhost","root","", "FoodArtDB");
				$query1 = "SELECT Password FROM Login WHERE Password='" . $_POST['pass1'] . "'";
				$risultati1 = mysqli_query($connessione, $query1);
				$num=mysqli_num_rows($risultati1);
				if ($num != 0){
					echo "Errore, la password inserita non e' corretta";
					header("Location: form.htm");

				} else {
					echo "Hai effettuato l'accesso come amministratore.";
					session_start();
						$_SESSION['login'] = "ok";

ora non capisco cosa sbaglio infatti inserisco anche:

PHP:
session_start();
if ($_SESSION['login'] != "ok") {
	header("Location: eliminaricetta.html");

}

e poi se la password è corretta vorrei far comparire il form per eliminare una ricetta dal database quindi vorrei far comparire questo : (quest'ultimo frammento lo inserisco in un altra pagina html di nome eliminaricetta.html)

HTML:
<h2>
		<form action="Lista.php" method="post"> 
			<h2>Elimina Ricetta Nro: </h2>
			 <input type="text" name="Nro" required maxlength='3'/></p>
			<br>
			<p><input type="submit" class="submit" /></p>
			<p><input type="reset" class="clear" /></p>
		</form>
	</h2>

Cos'è che non va?qualcuno riesce a darmi una mano?
 

otto9due

Utente Attivo
22 Feb 2014
535
21
28
Attualmente sono dal telefonino, e non riesco a verificare correttamente se ci sn errori.
Ma forse c'è una cosa che posso aggiungere per aiutarti a risolvere.
Te lo spiego in linea di principio, credo che riuscirai a farlo solo, altrimenti domani con il pc vedo di controllarlo.
Allora, una volta che verifichi la pass ( che comunque ti conviene criptare almeno in sh1 o altri metodi, anche questo molto semplice )
Nelle pagine che vuoi tenere con accesso riservato devi comunque inserire un if che verifica la presenza della sessione attiva, ed in base al fatto che esista o meno ti fa accedere o non accedere.
Quindi ricapitolando:
1) fai il login
2) effettuato il login con successo crei la sessione
3) nelle pagine che vuoi criptare inserisci un if che se la sessione è aperta visualizza il contenuto altrimenti ti reindirizza altrove.


Saluti.
G.G.
 

filomeni

Moderatore
Membro dello Staff
MOD
14 Mag 2006
1.052
6
38
51
Roseto degli Abruzzi (TE)
www.sitiweb.cloud
Il primo errore è sulla comparazione della password, la variabile recuperata "pass1" devi vedere l'ugualianza con la pws in db
PHP:
if($pass1===$password)
{
//qui crei sessione e redirect sull'area privata
}
else{//crei il redirect su pagina errore}
 

Jennifer.Jennifer

Nuovo Utente
12 Set 2015
4
0
0
Vorrei capire come mai il form non funziona come deve:
Ciao ho bisogno di capire, perché questo form non funziona più sul sito

<form
action="http://FormMail.aruba.it/cgi-bin/FormMail.pl " method="post"
style="background-repeat: no-repeat; background-position: center top;"
>
<div align="center">
<input name="subject" value="Contatto sito" type="hidden" />
<input name="recipient" type="hidden" value="[email protected]" />
<input name="env_report"
value="REMOTE_HOST,HTTP_USER_AGENT" type="hidden" />
<input
name="redirect" value="" type="hidden" />
<table class="contatto">
<tr>
<td class="colonna1">Name*</td>
<td class="colonna2"><input name="nome" type="text" id="nome" size="20" maxlength="25" /></td>
<td class="colonna1">Surname*</td>
<td class="colonna2"><input name="cognome" type="text" id="cognome" maxlength="50" /></td>
</tr>
<tr>
<td class="colonna1">Company</td>
<td class="colonna2"><input name="azienda" type="text" id="azienda" maxlength="25" /></td>
<td class="colonna1">Adresse</td>
<td class="colonna2"><input name="indirizzo" type="text" id="indirizzo" maxlength="50" /></td>
</tr>
<tr>
<td class="colonna1">City*</td>
<td class="colonna2"><input name="città" type="text" id="città" maxlength="25" /></td>
<td class="colonna1">Postal code</td>
<td class="colonna2"><input name="cap" type="text" id="cap" maxlength="50" /></td>
</tr>
<tr>
<td class="colonna1">Email*</td>
<td class="colonna2"><input name="email" type="text" id="email" maxlength="50" /></td>
<td class="colonna1">Telephone*</td>
<td class="colonna2"><input name="telefono" type="text" id="phone" maxlength="50" /></td>
</tr>
<tr>
<td class="colonna1">Notes</td>
<td colspan="3" class="colonna2"><textarea name="note" id="note" cols="70" rows="5"></textarea></td>
</tr>
<tr>
<td colspan="3" class="colonna1">In accordance with art.13 of D.LGS n. 196/2003 protecting personal data with Rule 193/2003 on the handling of personal data*</td>
<td class="colonna2"><input type="checkbox" name="autorizzazione" id="autorizzazione" value="si" /></td>
</tr>
<tr>
<td class="colonna1"></td>
<td class="colonna2"><input type="submit" name="button" id="button" value="Send" /></td>
<td class="colonna1"><input type="reset" name="cancella" id="cancella" value="Delete" /></td>
<td class="colonna2"></td>
</tr>
<tr>
<td colspan="4" class="colonna1">*Required fields</td>
</tr>
</table>
</div>
</form>

Il modulo per l'invio dei dati risiede su http://www./contact.html, e non è consentito l'accesso da domini che non usino il servizio di hosting su cui risiede il formail.

Hai qualche form che tu sappia, che funziona senza script?
 
Discussioni simili
Autore Titolo Forum Risposte Data
R [Photoshop] Creare Azione Photoshop 1
maxnegri Eseguire un'azione con php ad ogni condivisione su Facebook PHP 0
J [Javascript] Inserire un caricamento con animazione prima dell'esecuzione di un'azione Javascript 1
L [php/js] Conferma Azione PHP 2
B Azione Onclick inserimento database PHP 6
felino Azione "Topic Risolto" Supporto Mr.Webmaster 14
S Notice: Undefined index: azione in PHP 6
I [VBulletin] azione specificata non valida CMS (Content Management System) 1
T 2 form una sola azione PHP 6
T 2 form una sola azione..... PHP 18
H Azione alla chiusura di una finestra popup? PHP 1
max_400 timer in php alla fine un'azione PHP 6
G MIO SITO COMPLETAMENTE BACKUPPATO! MAi vista un'azione del genere Leggi, Normative e Fisco 2
A azione per animazione Flash 3
S Come si ripete un azione senza l'ausilio dell' oggetto timer? Programmazione 0
F AIUTOOO: Pulsante Flash Azione Flash 3
B Azione Ad Un Bottone Flash 6
I Url rewrite con .htaccess funziona ma poi mostra indirizzo "reale" nella barra di navigazione Apache 1
Z [Flash] Mostra tastiera AS3-AIR Flash 2
L php - pulsante premuto che mostra #div PHP 3
Trapano [MySQL] mostra solamente i campi con asterisco prima del valore MySQL 0
J mostra/nascondi immagine in base al checkbox Javascript 1
L Mostra scrivania in windows 10 Windows e Software 1
P Problema tasferimento magento su altro server > mostra pagina "negozio in aggiornamento" Magento 0
Marco_88 Funzione "mostra altri prodotti" Javascript 0
B Mostra/nascondi option su confronto datepicker PHP 0
F Mostra e nascondi <div> Javascript 2
M Scroll che mostra e nasconde elementi Javascript 2
felino Mostra le quantità disponibili nella pagina del prodotto CMS (Content Management System) 1
ypsilon86 Mostra e Nascondi elementi di una tabella MySql PHP 9
I Migliorare la funzione mostra/nascondi righe multiple Javascript 1
LaKanka Javascript e php mostra/nascondi div PHP 6
M Mostra singolo utente online Classic ASP 9
A mostra immagine PHP 2
G Come rimettere filtro mostra in Thunderbird 2 Windows e Software 0
G Esiste scorciatoia Firefox per mostra password? Windows e Software 0
L mostra/nascondi div Javascript 0
F script mostra immagine PHP 3
L mostra nascondi Layer Javascript 4

Discussioni simili