Grazie Flavio, nessun problema per la configurazione
Darò un'occhiata oggi cosi da valutare, il prezzo è quello che cercavo, sicuramente far girare al minimo un cPanel non è il massimo.
Grazie a tutti
Grazie Flavio, nessun problema per la configurazione
Darò un'occhiata oggi cosi da valutare, il prezzo è quello che cercavo, sicuramente far girare al minimo un cPanel non è il massimo.
Grazie a tutti
Ciao a tutti,
vorrei caricare sullo stesso spazio web del mio sito un servizio open source che si chiama "NEXTCLOUD" e vorrei chiedervi un ottimo hosting linux da pochi euro al mese o all'anno.
Non carico su un server dedicato perché l'affluenza alla piattaforma non sarà eccessiva ma se non cambia di prezzo di molto, potrebbe essere meglio no?
Chi mi consiglia qualcosa? Mi scrivereste entrambe le idee?
Grazie a tutti ragazzi!!
Buongiorno a tutti e scusate per l'ennesimo post..
Devo creare delle pagine le quali dovranno essere disponibili per "ruoli" diversi.
Al momento in amministrazione accedo dalla cartella admin/index.php(login.php)
Mentre per gli utenti generali accedo tramite root ma vorrei accedere da cartella esempio (areariservata/index.php) come prima pagina per tutti, poi all'interno ci saranno collegamenti che se schiacci magari non ti carica perchè non hai il permesso (ruolo).. c'è qualche buon'anima che mi aiuta??? grazie
[PHP]<?php
include('class/User.php');
$user = new User();
$user->loginStatus();
include('include/header.php');
?>[/PHP]
allego la classe user.php
https://pastebin.com/bSjwh7kq
Buongiorno,
possiedo uno script di registrazione e login utente con connessione MySql
(https://www.html.it/script/registrazione-utente-e-login/)
ma vorrei implementare al suo interno delle autorizzazioni utenti per la visualizzazione di determinate pagine una volta loggati in base all'autorizzazione.
Di conseguenza bisogna andare anche ad inserire nel form registrazione l'inserimento dell'autorizzazione (che può essere anche vuota) e nel login la lettura dell'autorizzazione dal database per la connessione alle pagine.
Per l'inserimento dell'autorizzazione verrà collegata una pagina admin in mio possesso che comunicherà con il database.
Spero in un aiuto da parte di qualche angelo 🥺
Grazie, Davide
Buonasera ragazzi, ho inserito nel database una riga "RUOLO" ma quando vado a registrare l'utente appare questo errore
ERRORE: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'ruolo' cannot be null
Ho provato ad inserire il ruolo all'interno del form (il ruolo sarà modificabile solo da pagina esterna o DB, quindi non serve il campo per l'inserimento nella registrazione) ma probabilmente sbaglio qualcosa..
FORM REGISTRAZIONE
[PHP]<?php require('includes/config.php');
// se effettuato l'accesso reindirizza alla pagina dei membriif( $user->is_logged_in() ){ header('Location: memberpage.php'); exit(); }
// se il modulo è stato inviato, elaboraloif(isset($_POST['submit'])){
if (!isset($_POST['username'])) $error[] = "Please fill out all fields"; if (!isset($_POST['email'])) $error[] = "Please fill out all fields"; if (!isset($_POST['password'])) $error[] = "Please fill out all fields";
$username = $_POST['username'];
// validazione if(!$user->isValidUsername($username)){ $error[] = 'Usernames must be at least 3 Alphanumeric characters'; } else { $stmt = $db->prepare('SELECT username FROM members WHERE username = :username'); $stmt->execute(array(':username' => $username)); $row = $stmt->fetch(PDO::FETCH_ASSOC);
if(!empty($row['username'])){ $error[] = 'Nome inserito già in uso.'; }
}
if(strlen($_POST['password']) < 3){ $error[] = 'Password troppo corta.'; }
if(strlen($_POST['passwordConfirm']) < 3){ $error[] = 'La password confermata è troppo corta'; }
if($_POST['password'] != $_POST['passwordConfirm']){ $error[] = 'le password non corrispondono'; }
//validazione email $email = htmlspecialchars_decode($_POST['email'], ENT_QUOTES); if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ $error[] = 'Inserisci un indirizzo email valido.'; } else { $stmt = $db->prepare('SELECT email FROM members WHERE email = :email'); $stmt->execute(array(':email' => $email)); $row = $stmt->fetch(PDO::FETCH_ASSOC);
if(!empty($row['email'])){ $error[] = 'Email inserita già in uso.'; }
}
// se non sono stati creati errori, continua if(!isset($error)){
//hash the password $hashedpassword = $user->password_hash($_POST['password'], PASSWORD_BCRYPT);
//create the activasion code $activasion = md5(uniqid(rand(),true));
try {
// inserisce nel database con un'istruzione preparata $stmt = $db->prepare('INSERT INTO members (username,password,email,ruolo,active) VALUES (:username, :password, :email, :ruolo, :active)'); $stmt->execute(array( ':username' => $username, ':password' => $hashedpassword, ':email' => $email, ':ruolo' => $ruolo, ':active' => $activasion )); $id = $db->lastInsertId('memberID');
//invia email $to = $_POST['email']; $subject = "Registration Confirmation"; $body = "<p>Registrazione avvenuta con successo.</p> <p>Per attivare il tuo account, clicca sul link: <a href='".DIR."activate.php?x=$id&y=$activasion'>".DIR."activate.php?x=$id&y=$activasion</a></p> <p>Saluti, Davide Marcellino</p>";
$mail = new Mail(); $mail->setFrom(SITEEMAIL); $mail->addAddress($to); $mail->subject($subject); $mail->body($body); $mail->send();
// reindirizza alla pagina dell'indice header('Location: index.php?action=joined'); exit;
// else cattura l'eccezione e mostra l'errore. } catch(PDOException $e) { $error[] = $e->getMessage(); }
}
}
// definisce il titolo della pagina$title = 'Demo';
// include modello di intestazionerequire('layout/header.php');?>
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-8 col-md-6 col-sm-offset-2 col-md-offset-3"> <form role="form" method="post" action="" autocomplete="off"> <h2>REGISTRATI ADESSO!</h2> <p>Sei già registrato? <a href='login.php'>Login</a></p> <hr>
<?php // controlla eventuali errori if(isset($error)){ foreach($error as $error){ echo '<p class="bg-danger">'.$error.'</p>'; } }
// se l'azione si unisce mostra il successo if(isset($_GET['action']) && $_GET['action'] == 'joined'){ echo "<h2 class='bg-success'>Registrazione avvenuta con successo, controlla la tua email per attivare il tuo account.</h2>"; } ?>
<div class="form-group"> <input type="text" name="username" id="username" class="form-control input-lg" placeholder="Nome utente" value="<?php if(isset($error)){ echo htmlspecialchars($_POST['username'], ENT_QUOTES); } ?>" tabindex="1"> </div> <div class="form-group"> <input type="email" name="email" id="email" class="form-control input-lg" placeholder="Email" value="<?php if(isset($error)){ echo htmlspecialchars($_POST['email'], ENT_QUOTES); } ?>" tabindex="2"> </div> <div class="row"> <div class="col-xs-6 col-sm-6 col-md-6"> <div class="form-group"> <input type="password" name="password" id="password" class="form-control input-lg" placeholder="Password" tabindex="3"> </div> </div> <div class="col-xs-6 col-sm-6 col-md-6"> <div class="form-group"> <input type="password" name="passwordConfirm" id="passwordConfirm" class="form-control input-lg" placeholder="Conferma password" tabindex="4"> </div> </div> </div>
<div class="row"> <div class="col-xs-6 col-md-6"><input type="submit" name="submit" value="Register" class="btn btn-primary btn-block btn-lg" tabindex="5"></div> </div> </form> </div> </div>
</div>
<?php// include modello di intestazionerequire('layout/footer.php');?>[/PHP]
[TABLE="class: data"]
[TR="class: even"]
[/TR]
[TH="align: left"][/TH]
[TH="align: left"]Nome[/TH]
[TH="align: left"]Tipo[/TH]
[TH="align: left"]Codifica caratteri[/TH]
[TH="align: left"]Attributi[/TH]
[TH="align: left"]Null[/TH]
[TH="align: left"]Predefinito[/TH]
[TH="align: left"]Extra[/TH]
[TH="class: action, colspan: 8, align: left"]Azione[/TH]
[/TR]
[TR="class: odd"]
[TD="class: center, align: center"][/TD]
[TD="class: right, align: right"]1[/TD]
[TH="class: nowrap, align: left"]memberID[/TH]
[TD="class: nowrap"]int(11)[/TD]
[TD][/TD]
[TD="class: column_attribute nowrap"][/TD]
[TD]No[/TD]
[TD="class: nowrap"]Nessuno[/TD]
[TD="class: nowrap"]AUTO_INCREMENT[/TD]
[TD="class: edit center, align: center"][/TD]
[TD="class: drop center, align: center"][/TD]
[TD][/TD]
[/TR]
[TR="class: even"]
[TD="class: center, align: center"][/TD]
[TD="class: right, align: right"]2[/TD]
[TH="class: nowrap, align: left"]username[/TH]
[TD="class: nowrap"]varchar(255)[/TD]
[TD]latin1_swedish_ci[/TD]
[TD="class: column_attribute nowrap"][/TD]
[TD]No[/TD]
[TD="class: nowrap"]Nessuno[/TD]
[TD="class: nowrap"][/TD]
[TD="class: edit center, align: center"][/TD]
[TD="class: drop center, align: center"][/TD]
[TD][/TD]
[/TR]
[TR="class: odd"]
[TD="class: center, align: center"][/TD]
[TD="class: right, align: right"]3[/TD]
[TH="class: nowrap, align: left"]password[/TH]
[TD="class: nowrap"]varchar(255)[/TD]
[TD]latin1_swedish_ci[/TD]
[TD="class: column_attribute nowrap"][/TD]
[TD]No[/TD]
[TD="class: nowrap"]Nessuno[/TD]
[TD="class: nowrap"][/TD]
[TD="class: edit center, align: center"][/TD]
[TD="class: drop center, align: center"][/TD]
[TD][/TD]
[/TR]
[TR="class: even"]
[TD="class: center, align: center"][/TD]
[TD="class: right, align: right"]4[/TD]
[TH="class: nowrap, align: left"]email[/TH]
[TD="class: nowrap"]varchar(255)[/TD]
[TD]latin1_swedish_ci[/TD]
[TD="class: column_attribute nowrap"][/TD]
[TD]No[/TD]
[TD="class: nowrap"]Nessuno[/TD]
[TD="class: nowrap"][/TD]
[TD="class: edit center, align: center"][/TD]
[TD="class: drop center, align: center"][/TD]
[TD][/TD]
[/TR]
[TR="class: odd"]
[TD="class: center, align: center"][/TD]
[TD="class: right, align: right"]5[/TD]
[TH="class: nowrap, align: left"]ruolo[/TH]
[TD="class: nowrap"]varchar(255)[/TD]
[TD]latin1_swedish_ci[/TD]
[TD="class: column_attribute nowrap"][/TD]
[TD]No[/TD]
[TD="class: nowrap"]Nessuno[/TD]
[TD="class: nowrap"][/TD]
[TD="class: edit center, align: center"][/TD]
[TD="class: drop center, align: center"][/TD]
[TD][/TD]
[/TR]
[TR="class: even"]
[TD="class: center, align: center"][/TD]
[TD="class: right, align: right"]6[/TD]
[TH="class: nowrap, align: left"]active[/TH]
[TD="class: nowrap"]varchar(255)[/TD]
[TD]latin1_swedish_ci[/TD]
[TD="class: column_attribute nowrap"][/TD]
[TD]No[/TD]
[TD="class: nowrap"]Nessuno[/TD]
[TD="class: nowrap"][/TD]
[TD="class: edit center, align: center"][/TD]
[TD="class: drop center, align: center"][/TD]
[TD][/TD]
[/TR]
[TR="class: odd"]
[TD="class: center, align: center"][/TD]
[TD="class: right, align: right"]7[/TD]
[TH="class: nowrap, align: left"]resetToken[/TH]
[TD="class: nowrap"]varchar(255)[/TD]
[TD]latin1_swedish_ci[/TD]
[TD="class: column_attribute nowrap"][/TD]
[TD]Sì[/TD]
[TD="class: nowrap"]NULL[/TD]
[TD="class: nowrap"][/TD]
[TD="class: edit center, align: center"][/TD]
[TD="class: drop center, align: center"][/TD]
[TD][/TD]
[/TR]
[TR="class: even"]
[TD="class: center, align: center"][/TD]
[TD="class: right, align: right"]8[/TD]
[TH="class: nowrap, align: left"]resetComplete[/TH]
[TD="class: nowrap"]varchar(3)[/TD]
[TD]latin1_swedish_ci[/TD]
[TD="class: column_attribute nowrap"][/TD]
[TD]Sì[/TD]
[TD="class: nowrap"]No[/TD]
[/TR]
[/TABLE]
Buonasera, avrei bisogno di quattro modifiche che purtroppo non riesco ad attuare...
Grazie a tutti
***registrazione.php ***
registrazione.php
[PHP]<?php
$avviso = "";
if(isset($_POST['submit'])){
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$username = $_POST['username'];
$password = $_POST['password'];
$mail = $_POST['email'];
if(!empty($nome) && !empty($cognome) && !empty($username) && !empty($password) && !empty($mail)){
$query = "INSERT INTO utenti (nome, cognome, username, password, email, ruolo) VALUES ('{$nome}' , '{$cognome}' , '{$username}' , '{$password}' , '{$mail}' , '{$ruolo}')";
$creaUtenti = mysqli_query($connessione , $query);
if(!$creaUtenti){
die('Query fallita' . mysqli_error($connessione));
}
$avviso = "Dati registrati con successo";
//echo $avviso;
}else{
$avviso = "I campi non devono essere vuoti";
//echo $avviso;
}
}
?>[/PHP]
LOGIN.PHP
[PHP]<?php
if(isset($_POST['login'])){
$username = $_POST['username'];
$password = $_POST['password'];
$username = mysqli_real_escape_string($connessione , $username);
$password = mysqli_real_escape_string($connessione , $password);
$query = "SELECT * FROM utenti WHERE username = '{$username}' ";
$trova_utente = mysqli_query($connessione , $query);
if(!$trova_utente){
die('RICHIESTA FALLITA' . mysqli_error($connessione));
}
while($row = mysqli_fetch_array($trova_utente)){
$idUtente = $row['id'];
$nomeUtente = $row['username'];
$passUtente = $row['password'];
$ruoloUtente = $row['ruolo'];
}
if($username === $nomeUtente && $password === $passUtente){
$_SESSION['utente'] = $nomeUtente;
$_SESSION['password'] = $passUtente;
$_SESSION['ruolo'] = $ruoloUtente;
header('Location: area_riservata.php');
}else{
header('Location: index.php');
}
}
?>[/PHP]
ACCEDI
[HTML]<body>
<!-- As a heading -->
<nav class="navbar navbar-dark bg-dark">
<span class="h1" class="navbar-brand mb-0">Login</span>
<span><!-- Button trigger modal -->
<button type="button" class="btn btn-success" data-toggle="modal" data-target="#loginModal">
Accedi
</button></span>
</nav>
<!-- Modal -->
<div class="modal fade" id="loginModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Entra nell'area riservata</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<!-- Form per il login -->
<form action="login.php" method="post">
<div class="form-group">
<input type="text" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Inserisci il tuo username" name="username">
</div>
<div class="form-group">
<input type="password" class="form-control" id="exampleInputPassword1" placeholder="Inserisci la tua password" name="password">
</div>
<button type="submit" class="btn btn-success" name="login">Accedi</button>
</form>
</div>
</div>
</div>
</div>
[/HTML]
La parte del PDF, se vedi nella tabella c'è una sezione con "tipo di materiale" e li viene allegata una scheda per ogni tipo (casa produttrice) di materiale in pdf
In realtà sei stato chiarissimo.. Purtroppo non riesco io a farlo, ci sto sbattendo la testa ma mi perdo in qualcosa, nonostante tu me lo abbia spiegato e scritto.. ti va di farmi un esempio con due file anche tuoi? mi basterebbe un esempio da scaricare, cosi da applicarlo sul mio successivamente.. ti ringrazio.....
Penso sia un pò complesso.. spero di riuscirmi a spiegare..
Una volta che hai analizzato il codice, praticamente vorrei suddividere ogni materiale in una cartella materiali con i relativi pdf all'interno e non come ho fatto fino adesso...
vorrei realizzare questi percorsi:
materiale/cartella materiale/nomemateriale.php
materiale/cartellamateriale/pdf/nomepdfmateriale.pdf
qui trovi l'indirizzo per drive con il pacchetto completo del progetto! *(drive.google.com/file/d/1556fbTjrbj5vigllhMylg-rkBe9VwpQ7/view?usp=sharing)
*Spero di essermi riuscito a spiegare
Se ti chiedessi di modificarmi il codice JS in modo tale da andare a pescare in base alla selezione un file .php diverso?
E' possibile? grazie...
Grazie davvero per il libro, era quello che cercavo per poter iniziare a leggere qualcosa e capire meglio!
Il mio progetto in realtà nasce da questa tabella creata che ti allego, sostanzialmente ho bisogno di raggruppare tutte le specifiche tecniche di ogni singolo materiale dentro nei campi.
Ogni materiale avrà circa 15 campi e come avrai capito, la struttura delle specifiche avevo pensato di crearla con il file che gentilmente mi hai sistemato.
Mi piacerebbe sicuramente creare un database ma risulterebbe troppo lungo penso da spiegare via chat, quindi se avevi ideea di come sintetizzare al meglio questa cosa, io sono tutto orecchie
Ti ringrazia davvero per tutte le piccole informazioni che mi hai dato.
Davide
LINK TABELLA [HTML]https://ibb.co/b2bvwwj[/HTML]
Ciao, grazie dell'aiuto.. hai trovato subito la soluzione e ti sono grato... sono diciamo poco esperto in questi dettagli, mi piacerebbe molto leggere qualche libro per aiutare le mie conoscenze sul mondo php..
In realtà io dovrei collegare una squadra a diversi campi di una tabella, inserendo dettagli della squadra tra cui anno, giocatori, nome stadio, numero giocatori ecc ecc.. mi sapresti indirizzare su qualche file in php più gestibile e più semplice da formulare?
grazie mille
Buonasera a tutti,
possiedo questo codice che funziona solo su Edge ma non funziona su Chrome e i vari browser.
Qualcuno potrebbe aiutarmi?
form.html
[HTML]<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
<title></title>
</head>
<body>
Scegli una squadra:
<select>
<option value=" ">Effettua una selezione</option>
<option value="Milan" onclick="marca(this)">Milan</option>
<option value="Juventus" onclick="marca(this)">Juventus</option>
<option value="Cagliari" onclick="marca(this)">Cagliari</option>
<option value="Roma" onclick="marca(this)">Roma</option>
</select>
<div id="tabella"></div>
<script>
function marca(pippo) {
var scelta = pippo.value;
$(document).ready(function() {
$.ajax({
type: 'post',
cache: false,
url: 'tabelle.php',
data: 'query='+scelta,
success:function(html) {
$('#tabella').html(html);
},
error: function(request, status, error) {
$('#tabella').html('<br />ERRORE : il server non risponde o lo ha
fatto in modo anomalo '+request.responseText);
}
});
});
}
</script>
</body>
</html>[/HTML]
tabelle.php
[PHP]<?php$scelta = $_POST['query'];
//echo 'La tua scelta è sulla squadra: '.$scelta;
switch ($scelta) {
case Milan:
echo '<br><br><b>Città: </b>Milano<br><b>Serie: </b>A<br><b>';
break;
case Juventus:
echo '<br><br><b>Città: </b>Torino<br><b>Serie: </b>A<br><b>';
break;
case Cagliari:
echo '<br><br><b>Città: </b>Cagliari<br><b>Serie: </b>A<br><b>';
break;
case Roma:
echo '<br><br><b>Città: </b>Roma<br><b>Serie: </b>A<br><b>';
break;
}
?>[/PHP]
Grazie Mille