- 35,493
- 11,529
- CPU
- Ryzen 7 5800x
- Dissipatore
- Deepcool gammax l240 v2
- Scheda Madre
- Aourus Gigabyte X-470 ultra gaming
- HDD
- Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
- RAM
- 32 gb G.Skill Tridentz 3200 mhz RGB
- GPU
- Zotac - RTX 3070 Ti Trinity OC
- Monitor
- ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
- PSU
- Seasonic Focus 650w 80 platinum
- Case
- Coolermaster h500p
- Periferiche
- Asus Tuf Wireless
- Net
- Fibra Tim 100mb
- OS
- Windows 10 Pro 64 bit
amici
ho aperto un thread qualche giorno fa su come strutturare un sito web in php.
Ora avendo eseguito i consigli datomi sono partito per sviluppare ciò che mi serve
praticamente però ho dei dubbi e dei problemi da risolvere ed essendo un novizio di questo linguaggio mi serve una mano
Vi spiego la mia struttura è questa
cartella progetto
--pagine web
--scripts
---js_scripts
---- jquery
---- mioscript.js
---php_scripts
---- dbconnect.php
--immagini
--main
---main.php
etc etc.
allora il mio main php contiene questo:
poi la mia classe dbconnect.php contiene questo
e nella index php che è la mia pagina principale ho questo:
allora ho cercato provando di impostare una simulazione di login per ora senza interfacciarlo a mysql ma stampando un banale alert.
problema è che se lascio la funzione con questo comando
if (!empty($_POST)) {
alla pressione di submit fa solo un refresh della pagina senza stampare l'alert presente nella login di dbconnect.php
mentre invece se lo sostituisco con questo comando
if($_SERVER["REQUEST_METHOD"] == "POST"){
esce l'alert in modo corretto ma poi mi fa il refresh della pagina e mi stampa 3 errori che vi riporto
Notice: Undefined index: username in C:\Users\Christian\Desktop\gamewebsitetemplate\index.php on line 28
Notice: Undefined index: username in C:\Users\Christian\Desktop\gamewebsitetemplate\index.php on line 29
Notice: Undefined index: password in C:\Users\Christian\Desktop\gamewebsitetemplate\index.php on line 30
Cosa sbaglio??
potete aiutarmi a capire i comandi?
perchè sto guardando un sacco di guide ma vedo mille cose diverse e non capisco quale sia la cosa giusta
ho aperto un thread qualche giorno fa su come strutturare un sito web in php.
Ora avendo eseguito i consigli datomi sono partito per sviluppare ciò che mi serve
praticamente però ho dei dubbi e dei problemi da risolvere ed essendo un novizio di questo linguaggio mi serve una mano
Vi spiego la mia struttura è questa
cartella progetto
--pagine web
--scripts
---js_scripts
---- jquery
---- mioscript.js
---php_scripts
---- dbconnect.php
--immagini
--main
---main.php
etc etc.
allora il mio main php contiene questo:
PHP:
<?php
/**
* Created by PhpStorm.
* User: Christian
* Date: 11/05/2017
* Time: 12:13
*/
spl_autoload_register(function ($class)
{
require_once 'scripts/php_scripts/' . $class . '.php';
});
//session_start();
class main {
function sec_session_start()
{
$session_name = 'sec_session_id'; // Imposta un nome di sessione
$secure = false; // Imposta il parametro a true se vuoi usare il protocollo 'https'.
$httponly = true; // Questo impedirà ad un javascript di essere in grado di accedere all'id di sessione.
ini_set('session.use_only_cookies', 1); // Forza la sessione ad utilizzare solo i cookie.
$cookieParams = session_get_cookie_params(); // Legge i parametri correnti relativi ai cookie.
session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);
session_name($session_name); // Imposta il nome di sessione con quello prescelto all'inizio della funzione.
session_start(); // Avvia la sessione php.
session_regenerate_id(); // Rigenera la sessione e cancella quella creata in precedenza.
}
public static function sanitize($string, $filter = null)
{
switch ($filter) {
case 'none':
return $string;
break;
case 'email':
return filter_var($string, FILTER_SANITIZE_EMAIL);
break;
case 'string':
return filter_var($string, FILTER_SANITIZE_STRING);
break;
case 'int':
return filter_var($string, FILTER_SANITIZE_NUMBER_INT);
break;
case 'url':
return filter_var($string, FILTER_SANITIZE_URL);
break;
default:
return filter_var($string, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
break;
}
}
}
poi la mia classe dbconnect.php contiene questo
PHP:
<?php
class dbconnect
{
private $_pdo;
function __construct()
{
try {
$hostname = "localhost";
$dbname = "miodb";
$user = "root";
$pass = "123root";
$this->_pdo = new PDO('mysql:host=' . $hostname . ';dbname=' . $dbname, $user, $pass);
} catch (PDOException $e) {
header("location: error.php"); //Se c'è un errore nella connessione fai il redirect
}
}
public function query()
{
$sql = $this->_pdo->prepare('SELECT * FROM users');
$sql->execute();
$res = $sql->fetchAll();
return $res;
}
public function login($email, $password)
{
echo '<script>alert("Mi sono loggato bella")</script>';
}
}
e nella index php che è la mia pagina principale ho questo:
PHP:
<?php
require_once 'main/main.php';
$db = new dbconnect;
$main = new main;
//var_dump($db->query());
$dbwork = "";
$main->sec_session_start();
if (!empty($db->query()) || !$db->query() == false) {
//$loginerror = var_dump($db->query());
$dbwork = $db->query();
}
else{
header("location: error.php");
}
if(!empty($_POST)) {
//if($_SERVER["REQUEST_METHOD"] == "POST"){
// username and password sent from form
echo main::sanitize($_POST['username'], 'string');
$username=$_POST['username'];
$password=$_POST['password'];
$db->login($username,$password);
//echo '<script> hide_login(); </script>';
}else{
header("location: error.php");
}
/*if (!empty($_POST)) {
//Richiami la funzione login e fai il login
} else {
//Redirect
//header("location: error.php");
}*/
?>
allora ho cercato provando di impostare una simulazione di login per ora senza interfacciarlo a mysql ma stampando un banale alert.
problema è che se lascio la funzione con questo comando
if (!empty($_POST)) {
alla pressione di submit fa solo un refresh della pagina senza stampare l'alert presente nella login di dbconnect.php
mentre invece se lo sostituisco con questo comando
if($_SERVER["REQUEST_METHOD"] == "POST"){
esce l'alert in modo corretto ma poi mi fa il refresh della pagina e mi stampa 3 errori che vi riporto
Notice: Undefined index: username in C:\Users\Christian\Desktop\gamewebsitetemplate\index.php on line 28
Notice: Undefined index: username in C:\Users\Christian\Desktop\gamewebsitetemplate\index.php on line 29
Notice: Undefined index: password in C:\Users\Christian\Desktop\gamewebsitetemplate\index.php on line 30
Cosa sbaglio??
potete aiutarmi a capire i comandi?
perchè sto guardando un sacco di guide ma vedo mille cose diverse e non capisco quale sia la cosa giusta