- Home
- Categorie
- Coding e Sistemistica
- PHP
- Creare pagina HTML da script PHP
-
Intanto bisognerebbe vedere come hai fatto il login e l'iscrizione al sito, per vedere se va bene o meno.
-
In che senso???
-
Non hai detto di aver fatto la pagina di login ed iscrizione per gli utenti che devono scrivere le pagine?
-
Io ho fatto login e iscrizione ma non solo per chi scrive ma per tutti....lo posto???
-
Si, perchè dobbiamo vedere come aggiungere i permessi ad esempio di amministratore ad esempio per scrivere pagine.
-
Login
[PHP]<?php
inizializzazione della sessione
@session_start();
inclusione del file di funzione
@include_once 'functions.php';
istanza della classe
$obj = new Iscrizioni();
chiamata al metodo per la verifica della sessione
if ($obj->verifica_sessione())
{redirect in caso di esito positivo
@header("location:index.php");
}chiamata al metodo per l'autenticazione
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$login = $obj->verifica_login(htmlentities($_POST['email_o_nome_utente'], ENT_QUOTES), htmlentities($_POST['password'], ENT_QUOTES));controllo sull'esito del metodo
if ($login) {
# redirect in caso di esito positivo
@header("location:index.php");
}else{
# notifica in caso di esito negativo
echo 'I dati indicati non sono corretti.';
}
}form per l'autenticazione
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Pagina per l'autenticazione</title>
<center><img src="Images/Logo.png" height="20%"/></center>
</head>
<body bgcolor="#FFFFCC">
<center><img src="Images/italy.png"/><img src="Images/usa.png"/><image src="Images/france.png"/><image src="Images/brasil.png"/></center><TABLE borderColor=0000CC bgcolor="CCFFFF" cellSpacing=0 cellPadding=10 width="35%" height="10%"
align= center border=5 vspace="20">
<tr><td><div class="head"><center><h1>Login</h1></center></div>
<center><div id="container">
<div id="main-body">
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="form_autenticazione" name="autenticazione">
<div class="head"><h1></h1></div>
<label>Inserisci l'email o il nome utente</label><br/>
<input type="text" name="email_o_nome_utente" /><br/>
<label>Inserisci la password</label><br/>
<input type="password" name="password" id="password" /><br/>
<input type="submit" name="invio_dati" value="Invia"/><br/><br/>
<label><a href="iscrizione.php" title="Registrazione">Se non sei registrato puoi farlo adesso</a></label>
</form>
</div>
</div>
</center></td></tr></table>
</body>
</html>[/PHP]Iscrizione
[PHP]<?php
inclusione del file di funzione
@include_once 'functions.php';
istanza della classe
$obj = new Iscrizioni();
chiamata al metodo per la verifica della sessione
if ($obj->verifica_sessione())
{
#redirect in caso di esito negativo
@header("location:index.php");
}chiamata al metodo per la registrazione
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$registrato = $obj->registra(htmlentities($_POST['nome_reale'], ENT_QUOTES), htmlentities($_POST['nome_utente'], ENT_QUOTES), htmlentities($_POST['password'], ENT_QUOTES), htmlentities($_POST['email'], ENT_QUOTES));controllo sull'esito del metodo
if ($registrato) {
# notifica in caso di esito positivo
echo 'Registrazione conclusa <a href="login.php">ora puoi loggarti</a>.';
}else{
# notifica in caso di esito negativo
echo 'Stai cercando di registrarti con dei dati giá presenti nel database.';
}
}form per l'iscrizione
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Pagina per la registrazione</title>
<center><img src="Images/Logo.png" height="20%"/></center>
</head>
</head>
<body bgcolor="#FFFFCC">
<center><img src="Images/italy.png"/><img src="Images/usa.png"/><image src="Images/france.png"/><image src="Images/brasil.png"/></center><TABLE borderColor=0000CC bgcolor="CCFFFF" cellSpacing=0 cellPadding=10 width="35%" height="25%"
align= center border=5 vspace="20">
<tr><td>
<center><div id="container">
<div id="main-body">
<form id="register" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="form_registrazione" name="registrazione">
<div class="head"><h1>Registrazione iscritti</h1></div>
<label color="yellow">Nome</label><br/>
<input type="text" name="nome_reale" /><br/>
<label>Nome utente</label><br/>
<input type="text" name="nome_utente" /><br/>
<label>Password</label><br/>
<input type="password" name="password" /><br/>
<label>Il tuo indirizzo di posta elettronica</label><br/>
<input type="text" name="email" id="email" /><br/><br/>
<input type="submit" name="registra" value="Registrami"/><br/><br/>
<label><a href="login.php" title="Login">Se sei già registrato puoi loggarti da qui</a></label>
</form>
</div>
</div>
</center><link rel="stylesheet" type="text/css" href="/style.css" />
<style type="text/css"></body>
</html>[/PHP]Funzioni
[PHP]<?php
inclusione del file di configurazione
@include_once 'config.php';
definizione della classe che conterrà i metodi per la gestione degli iscritti
class Iscrizioni {
definizione del costruttore
public function __construct()
{
# istanza della classe per la connessione al database
$data = new DATA_Class();
}metodo per la registrazione
public function registra($nome_reale, $nome_utente, $password, $email)
{
# cifratura della password
$password = @sha1($password);
# confronto degli input con i dati contenuti in tabella
$query = @mysql_query("SELECT id_utente FROM iscritti WHERE nome_utente = '$nome_utente' OR email = '$email'") or die('Errore: ' . mysql_error());
# controllo sulla presenza di corrispondenze prodotte dal confronto
$conta = @mysql_num_rows($query);
# se il confronto non genera corrispondenze..
if ($conta == 0)
{
# ..si procede con la registrazione..
$risultato = @mysql_query("INSERT INTO iscritti(nome_utente, password, nome_reale, email) VALUES ('$nome_utente', '$password','$nome_reale','$email')") or die('Errore: ' .mysql_error());
return $risultato;
}else{
# ..altrimenti l'esito della registrazione sarà negativo
return FALSE;
}
}metodo per l'autenticazione
public function verifica_login($email_o_nome_utente, $password)
{
# cifratura della password
$password = @sha1($password);
# confronto degli input con i dati contenuti in tabella
$query = @mysql_query("SELECT id_utente FROM iscritti WHERE email = '$email_o_nome_utente' OR nome_utente='$email_o_nome_utente' and password = '$password'") or die('Errore: ' . mysql_error());
# controllo sulla presenza di una corrispondenza prodotta dal confronto
$conta = @mysql_num_rows($query);
# se il confronto genera una corrispondenza..
if ($conta == 1)
{
# ..viene generata la sessione di login..
$risultato = @mysql_fetch_object($query);
$_SESSION['login'] = true;
$_SESSION['id_utente'] = $risultato->id_utente;
return TRUE;
}else{
# ..altrimenti l'esito dell'autenticazione sarà negativo
return FALSE;
}
}metodo per la visualizzazione del nome dell'utente loggato
public function mostra_utente($id_utente)
{
# estrazione del nome reale sulla base dell'identificatore memorizzato in sessione
$query = @mysql_query("SELECT nome_reale FROM iscritti WHERE id_utente = $id_utente") or die('Errore: ' . mysql_error());
$risultato = @mysql_fetch_object($query);
# stampa a video del nome reale dell'utente
echo $risultato->nome_reale;
}metodo per il controllo sulla sessione
public function verifica_sessione()
{
# il metodo restituisce l'informazione relativa alla sessione a patto che questa sia stata inizializzata
if(isset($_SESSION['login']))
{
return $_SESSION['login'];
}else{
return FALSE;
}
}metodo per il logout
la sessione viene distrutta a seguito di uno specifico input dell'utente
public function esci() {
$_SESSION['login'] = FALSE;
@session_destroy();
}
}
?>[/PHP]Ed il file delle configurazioni
[PHP]<?php
definizione delle costanti per l'autenticazione al DBMS
define('DATA_HOST', '');
define('DATA_UTENTE', '');
define('DATA_PASS', '');
define('DATA_DB', '');classe per l'interazione con il database
class DATA_Class {
definizione del costruttore
function __construct() {
# connessione al DBMS
$connessione = @mysql_connect(DATA_HOST, DATA_UTENTE, DATA_PASS) or die('Errore nella connessione: ' . mysql_error());
# selezione del database
@mysql_select_db(DATA_DB, $connessione) or die('Errore dal database: ' . mysql_error());
}
}
?>[/PHP]
-
Per capirlo c ho messo 3 ore....mah al massimo qualche guida completa magari in pdf???
-
Basta modificare una impostazione del browser ed entri anche nelle pagine in cui dice che c'è il controllo e ti reindirizza, per com'è realizzato lo script attualmente.
È realizzato con la programmazione ad oggetti, se devi realizzare una cosa semplice in tempi brevi forse ti conviene utilizzare qualcosa di più semplice.
Qui avevo realizzato io un tutorial tempo fà:
http://www.giorgiotave.it/forum/scripting-e-risorse-utili/83033-tutorial-area-privata.htmlPenso dovrebbe essere più facile da comprendere, grazie ai commenti, e non ci sono questo genere di errori.
-
Riguardo ad un bel libro??? Perche' mi sembra che se voglio continuare prima o poi mi devo addentrare alla lettura quindi meglio subito.
-
Non ho mai usato libri di php per cui non sò dirti più di tanto, in italiano non ce ne sono moltissimi, se capisci l'inglese non avrai problemi a trovarne uno buono.
Cerca di evitare libri vecchi, in quanto non sono più molto validi.Qui trovi delle risorse utili per imparare.
-
Il mio era una base da cui partire,l'ho anche scritto ..
-
Si bonzetto non era per dire che il tuo suggerimento è sbagliato, ma per far notare che non basta mischiare 2 codici presi un pò sui libri e un pò sul forum per avere un applicazione perfetta senza problemi.
Infatti come ho detto il tuo suggerimento fà il suo dovere, ma deve essere in grado di implementarlo e rendere il tutto sicuro non solo fare copia incolla.
-
Mò mi metto a studiare dai, in caso di problemi voi siete qui giusto ???
-
Certo, per qualsiasi dubbio, domanda o chiarimento siamo qui.
Anzi spero di vederti spesso qui, leggendo le domande poste dagli altri utenti puoi imparare moltissimo.
-
Solo una curiosità, tu hai ribadito di non aver usato libri per il Php la domanda sorge spontane....e come hai imparato???
-
Ho iniziato leggendo sul cellulare delle guide in vacanza (Sapevo solo html e css quando ho iniziato) e quando sono tornato dalle vacanze ed aver letto tutto il possibile trovato in giro, ho preso uno script già fatto di una cosa che mi interessava e ho iniziato a modificarlo. Dopo un pò di tempo ho iniziato a crearmelo da 0. Insomma non è stato semplicissimo, e nemmeno veloce, ma con il tempo e la passione si può fare.
E ho imparato cosi le basi, il resto si imparare dedicandosi a progetti un pò più grandicelli per lunghi tempi.
Diciamo che comunque non si smette mai di imparare, c'è sempre qualcosa di nuovo, o qualcosa che con l'esperienza fatta cambieresti.
-
Salve Referpoint.
Ricorda la raccomandazione del Consigliere direttivo di stamattina?
Il rispetto del regolamento del forum non è facoltativo.
Grazie per l'attenzione.
-
Adesso riguardo ma non penso di aver commesso errori ortografici, in caso li avessi commessi cosa faccio...edito?
-
Ciao ReferPoint,
abbiamo già provveduto noi a modificare i messaggi che non rispettavano le maiuscole e la punteggiatura, motivo per cui adesso non li vedi ma vedi la scritta che sono stati modificati da noi.
-
No no tranquillo li avevo già notati stamattina e mi dispiace, mi sà che prima del libro di Php me ne serve uno di lingua Italiano :D.