Scusami ancora, non ho capito come assegnare il valore del token e dove farlo...
arefranz
@arefranz
Post creati da arefranz
-
RE: Quale è il modo più sicuro di impostare un CMS per un sito in PHP MySQL e jQuery
-
RE: Quale è il modo più sicuro di impostare un CMS per un sito in PHP MySQL e jQuery
Scusa, ho capito come fare il check su IP e browser.. MA
stackoverflow.com/questions/15699101/get-the-client-ip-address-using-php
Quale delle soluzioni posso usare?
-
RE: Quale è il modo più sicuro di impostare un CMS per un sito in PHP MySQL e jQuery
Hei! Alla grande! Ho inserito il file .htaccess et voila! Ora fa refirect su https!
Mentre sono un po perplesso sulla check di IP e browser:
dove imposto i loro valori e come ne faccio il check? -
RE: Quale è il modo più sicuro di impostare un CMS per un sito in PHP MySQL e jQuery
Bene, grazie mille della risposta...
Nella attesa del tuo tutorial, consulterò le guide che mi hai indicato! -
RE: Quale è il modo più sicuro di impostare un CMS per un sito in PHP MySQL e jQuery
Ok il sito dispone già di un certificato SSL, quindi sono apposto no?
Mentre ok per il token anche se non mi è chiarissimo, cercherò in google...
Ma la cosa più importante è:è davvero buona pratica inserire un check tipo:
if ($_SESSION['user'] == 'nome_super_utente') { ... mostra contenuto protetto ... }
?
-
RE: Quale è il modo più sicuro di impostare un CMS per un sito in PHP MySQL e jQuery
Grazie flaviors200!
Appena riesco guardo il link...
Due domande veloci intanto:
Come uso HTTPS invece di HTTP?
Cosa è un token di sessione? -
Quale è il modo più sicuro di impostare un CMS per un sito in PHP MySQL e jQuery
Salve a tutti!
Sto creando un sito di fotografie dotato di CMS per caricare le foto e gestire gli utenti (ogni foto può essere commentata solo se sei un utente registrato) e mi trovo di fronte a un problema:quale è il modo migliore di proteggere le pagine del CMS e alcune sezioni del sito in modo da renderle visibili SOLO all'amministratore del sito e non a tutti gli utenti?
Ho cercato molto "login sicuro in php" in google ma ogni tutorial propone un metodo diverso (ed es, usare cookies o variabili di sessione, o addirittura usare un .txt per conservar username e password degli iscritti... boh).
Il punto è che il login al sito è una pagina unica con il suo jQuery e PHP script in $.post(); e non mi piace l'idea di mettere nel php script una
if ($row['user'] == 'admin') { $_SESSION['user'] = 'admin'; }
e richiamare nelle pagine una
if ($_SESSION['user'] == 'admin') { ..mostra contenuto...}
Che alternative ho?
Ringrazio in anticipo,
Francesco
-
Script PHP per caricare immagini inserisce due volte lo stesso record in database
Salve a tutti!
Sono nuovo del forum e ho un problema con uno script PHP per caricare su server delle immagini e, ad ogni immagine, associare una riga in database che ne contenga la path (per recuperarla in una altra parte del sito) e alcune informazioni su di essa.
In pratica, lo script carica e copia la immagine della giusta cartella sul server MA mi scrive due record identici nel database...
Qui c'è il HTML:
[HTML] <form enctype="multipart/form-data" class="upload-form"> <div class="left"><p>Seleziona Foto</p></div><div class="right"><label for="photo"><span><p>Seleziona...</p></span></label><input type="file" name="photo" id="photo"></div> <div class="left"><p>Titolo</p></div><div class="right"><input type="text" name="title" id="title"></div> <div class="left"><p>Fotocamera</p></div><div class="right"><div class="styled-select"> <select name="photocamera" id="photocamera"> <option value="Olympus OM-D E-M1 II">Olympus OM-D E-M1 II</option> <option value="Olympus OM-D E-M10 III">Olympus OM-D E-M10 III</option> <option value="Olympus OM-D E-M10">Olympus OM-D E-M10</option> <option value="Canon EOS 6D">Canon EOS 6D</option> <option value="Canon EOS 7D Mark II">Canon EOS 7D Mark II</option> <option value="Canon EOS 50D">Canon EOS 50D</option> </select></div></div> <div class="left"><p>Obiettivo</p></div><div class="right"><div class="styled-select"> <select name="obiettivo" id="obiettivo"> <option value="Zuiko ED 7-14mm f/2.8 Pro">Zuiko ED 7-14mm f/2.8 Pro </option> <option value="Zuiko ED 9-18mm f/4.0-5.6">Zuiko ED 9-18mm f/4.0-5.6</option> <option value="Zuiko ED 12-50mm F3.5-6.3 EZ">Zuiko ED 12-50mm F3.5-6.3 EZ</option> <option value="Zuiko ED 12-100 mm f/4.0 IS">Zuiko ED 12-100 mm f/4.0 IS</option> <option value="Zuiko ED 40‑150 mm f/2.8 PRO">Zuiko ED 40‑150 mm f/2.8 PRO</option> <option value="Zuiko 17mm f/1.8">Zuiko 17mm f/1.8</option> <option value="Zuiko 45mm f/1.8">Zuiko 45mm f/1.8</option> <option value="Zuiko ED 60mm f/2.8 Macro">Zuiko ED 60mm f/2.8 Macro</option> <option value="Panasonic Lumix G Vario 14-140mm f/3.5-5.6 ASPH OIS">Panasonic Lumix G Vario 14-140mm f/3.5-5.6 ASPH OIS</option> <option value="Panasonic Lumix G Vario 14-140mm f/3.5-5.6 ASPH OIS">Panasonic Lumix G Vario 14-140mm f/3.5-5.6 ASPH OIS</option> <option value="Panasonic Leica DG Summilux 25mm f/1.4 ASPH"> Panasonic Leica DG Summilux 25mm f/1.4 ASPH</option> <option value="Canon EF 24-105mm f/4 L IS USM"> Canon EF 24-105mm f/4 L IS USM</option> <option value="Canon EF 70-200mm f/4 L IS USM"> Canon EF 70-200mm f/4 L IS USM</option> <option value="Sigma 85mm f/1.4 EX DG HSM"> Sigma 85mm f/1.4 EX DG HSM</option> <option value="Sigma 150-600mm f/5-6.3 DG OS HSM C"> Sigma 150-600mm f/5-6.3 DG OS HSM C</option> <option value="Sigma 500mm f/4.5 EX DG HSM"> Sigma 500mm f/4.5 EX DG HSM</option> </select></div></div> <div class="left"><p>Estensione</p></div><div class="right"><div class="styled-select"> <select name="extension" id="extension"> <option value="">nessuna</option> <option value="Canon Extender 1.4x II">Canon Extender 1.4x II</option> <option value="Kenko Pro 300 DGX 1.4x">Kenko Pro 300 DGX 1.4x</option> </select></div></div> <div class="left"><p>Specifiche</p></div><div class="right"><p class="specs-p">f.</p><input type="text" name="fspec" id="fspec" class="specs"><p class="specs-p">1/</p><input type="text" name="time" id="time" class="specs"><p class="specs-p">ISO</p><input type="text" name="iso" id="iso" class="specs"></div>
<div class="left"><p>Categoria</p></div><div class="right"><div class="styled-select"> <select name="cat" id="cat"> <option value="paesaggi">Paesaggi</option> <option value="animali">Animali</option> <option value="macro">Macro</option> <option value="architettura">Architettura</option> <option value="ritratti">Ritratti</option> <option value="eventi">Eventi</option> <option value="reportage">Reportage</option> </select></div></div> <div class="left"><p>Sottocategoria</p></div><div class="right"><div class="styled-select"><select name="subcat" id="subcat"></select></div></div> <div class="left"></div><div class="right"><input type="button" name="upload" value="Carica Fotografia" id="upload"></div> <div class="data"></div> <div class="progress"></div> </form>
[/HTML]Qui c'è la parte più importante, lo jQuery script:
$("#upload").on('click', function () { if ($("#photo").val() == "") { $(".data").html("<p>Selezionare una fotografia</p>"); } else if ($("#title").val() == "") { $(".data").html("<p>Inserire un titolo</p>"); } else if ($("#photocamera").val() == "") { $(".data").html("<p>Selezionare una Fotocamera</p>"); } else if ($("#obiettivo").val() == "") { $(".data").html("<p>Selezionare un Obiettivo</p>"); } else if ($("#fspec").val() == "") { $(".data").html("<p>Inserire la apertura focale</p>"); } else if ($("#time").val() == "") { $(".data").html("<p>Inserire il tempo di aperrura</p>"); } else if ($("#iso").val() == "") { $(".data").html("<p>Inserire gli ISO</p>"); } else if ($("#cat").val() == "") { $(".data").html("<p>Inserire una categoria</p>"); } else { var form = $(".upload-form")[0]; var formData = new FormData(form); $.ajax({ url: 'php/upload.php', type: 'POST', data: formData, cache: false, contentType: false, processData: false, xhr: function () { var myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { myXhr.upload.addEventListener('progress', function(e) { if (e.lengthComputable) { $(".data").html("<p>Percentuale di upload: " + parseInt((e.loaded / e.total) * 100) + "%" + "</p>"); $(".progress").css('width', (e.loaded / e.total) * 100 + "%"); } }, false); } return myXhr; } }).done( function(data) { $(".progress").css('width', '100%'); $(".data").html("<p>" + data + "</p>"); window.location.href = "galleria.php"; }); } });
Questo mi permette di serializzare la form, inviare i dati al PHP e infine controllare una progressbar per il caricamento della immagine.
In fine il PHP:[PHP]
<?phpif (!isset($_POST['title']) || !isset($_POST['photocamera']) || !isset($_POST['obiettivo']) || !isset($_POST['fspec']) || !isset($_POST['time']) || !isset($_POST['iso']) || !isset($_POST['cat']) ) { echo 'Compilare completament la form...'; exit;}
include 'config.php';
$conn = new mysqli($servername, $username, $password, $dbname);
$title = mysqli_real_escape_string($conn, $_POST['title']);$photocamera = mysqli_real_escape_string($conn, $_POST['photocamera']);$obiettivo = mysqli_real_escape_string($conn, $_POST['obiettivo']);$fspec = mysqli_real_escape_string($conn, $_POST['fspec']);$time = mysqli_real_escape_string($conn, $_POST['time']);$iso = mysqli_real_escape_string($conn, $_POST['iso']);$cat = mysqli_real_escape_string($conn, $_POST['cat']);
if (isset($_POST['extension'])) { $extension = mysqli_real_escape_string($conn, $_POST['extension']);} else { $extension = "";}
if (isset($_POST['subcat'])) { $subcat = mysqli_real_escape_string($conn, $_POST['subcat']);} else { $subcat = "";}
if (!isset($_FILES['photo']) || !is_uploaded_file($_FILES['photo']['tmp_name'])) { echo 'Non hai inviato nessun file...'; exit; }
$uploaddir = '../foto/';
$userfile_tmp = $_FILES['photo']['tmp_name'];
$userfile_name = $_FILES['photo']['name'];
$is_img = getimagesize($_FILES['photo']['tmp_name']);
if (!$is_img) { echo 'Puoi inviare solo immagini'; exit; }
if (move_uploaded_file($userfile_tmp, $uploaddir . $userfile_name)) { if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
$path = 'foto/' . $userfile_name; $specs = "f." . $fspec . ", 1/" . $time . ", ISO " . $iso;
$sql = "INSERT INTO foto (title, photocamera, obiettivo, extension, specs, cat, subcat, path) VALUES ('$title', '$photocamera', '$obiettivo', '$extension', '$specs', '$cat', '$subcat', '$path')"; $result = $conn->query($sql);
if ($conn->query($sql) === TRUE) { echo "Fotografia inserita con successo"; } else { echo 'Errore: ' . $sql . '<br>' . $conn->error; }
} else { echo 'Impossibile inviare il file...'; }
$conn->close();
?>[/PHP]Scusate se irrompo così nel forum, ma è una cosa che proprio non capisco...
Se qualcuno ha qualche idea, ringrazio in anticipo per l'attenzione.
Buone Feste!