[Risolto] aiuto con php mai usato fin ora

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

[Risolto] aiuto con php mai usato fin ora

Messaggio da Chry1991 »

Salve amici del foro

siccome so che voi siete molto affidabili, e avete sempre aiutato me a risolvere i miei dubbi
ho una nuova domanda da porre.
Sto guardando alcune guide php, siccome non l'ho mai usato e non capisco alcune cose

Ad esempio io ho sempre lavorato app-web o siti web con pagine asp o html.

io devo fare il sito di un videogioco che stiamo sviluppando, e avrei bisogno di far collegare gli utenti al mio sito(sono gli stessi user che giocano, stessa tabella db).

allora oggi ho creato una form di login:

Codice: Seleziona tutto

<form action="formlog.php" method="POST">
									 <label for="username">Username or Email:</label><br><br>
									 <input type="text" name="username" style="width:250px;"><br><br>
									 <label for="password">Password:</label><br><br>
							         <input type="password" name="password"  style="width:250px;"><br><br>
									 <label for="remember">Remember me!</label>
									 <input type="checkbox" name="ricorda" value="ricordapass" checked><br>
									 <input type="submit" value="Login" style="width:150px;">

									 
									 </form>


                                <br>
quello che non capisco è : la mia pagina va salvata in formato php o posso tenere html?

poi x lanciare lo script formlog.php che io ho creato nella stessa directory del sito e che contiene queste righe di codice cosa devo fare?

Codice: Seleziona tutto

<?php
/**
 * Created by PhpStorm.
 * User: Christian
 * Date: 09/05/2017
 * Time: 09:32
 */

// Recupero i valori inseriti nel form
$nome = $_POST['username'];
$msg = $_POST['password'];

// compilo un messaggio combinando i dati recuperati dal form
$testo = "Nome: " . $nome . "\n"

    . "Messaggio:\n" . $msg;

if( isset($_POST['Login']) ) {

    if (!isset($_POST['username']) || !isset($_POST['password'])) {
        echo "Please fill all the fields!";
    }
}

// Mostro un messaggio di conferma all'utente
echo 'Grazie per averci contattato!';
?>

perche lanciandolo da phpstorm mi da errore, come se non trovasse le due variabili da me dichiarate...

Spero possiate darmi delucidazioni.

Premetto che ho installato xampp e il server apache è attivo sul mio pc sulla porta 80
Ultima modifica di Chry1991 il martedì 16 maggio 2017, 9:30, modificato 1 volta in totale.
Avatar utente
Danny90
Prode Principiante
Messaggi: 147
Iscrizione: sabato 9 maggio 2015, 20:05
Sesso: Maschile
Località: Dresden (Germany)
Contatti:

Re: aiuto con php mai usato fin ora

Messaggio da Danny90 »

Ciao :ciao:
io salverei tutto in php.

Se lo lanci direttamente dal browser funziona?
Metti entrambi i file nella cartella htdocs e lanci dal browser il file con il form inserendo come indirizzo http://localhost o 127.0.0.1 .

Attenzione con la cartella htdocs su ubuntu perché io ho avuto problemi con i permessi, non mi faceva aggiungere/eliminare o modificare file all'interno della cartella e ho dovuto modificare i permessi da nautilus.
Im schlechten Kleide wohnt oft auch Weisheit.
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggio da Chry1991 »

Danny90 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4980657#p4980657][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Ciao :ciao:
io salverei tutto in php.

Se lo lanci direttamente dal browser funziona?
Metti entrambi i file nella cartella htdocs e lanci dal browser il file con il form inserendo come indirizzo http://localhost o 127.0.0.1 .

Attenzione con la cartella htdocs su ubuntu perché io ho avuto problemi con i permessi, non mi faceva aggiungere/eliminare o modificare file all'interno della cartella e ho dovuto modificare i permessi da nautilus.

allora grazie mille per la risposta.
Da quello che ho capito quindi la pagina va salvata in formato php.
Poi la mia funzione php va inserita nella stessa pagina.

e se volessi creare una cartella script contenente delle funzioni php? come faccio a rilanciarle??
Avatar utente
Danny90
Prode Principiante
Messaggi: 147
Iscrizione: sabato 9 maggio 2015, 20:05
Sesso: Maschile
Località: Dresden (Germany)
Contatti:

Re: aiuto con php mai usato fin ora

Messaggio da Danny90 »

Devi salvare i tuoi script nella cartella che vuoi e nei file dove hai l'html puoi inserirli utilizzando i comandi

Codice: Seleziona tutto

include "cartella/miofile.php";
oppure

Codice: Seleziona tutto

require "cartella/miofile.php";
Per la differenza tra include e require ti rimando qui
Im schlechten Kleide wohnt oft auch Weisheit.
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggio da Chry1991 »

Danny90 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4980874#p4980874][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Devi salvare i tuoi script nella cartella che vuoi e nei file dove hai l'html puoi inserirli utilizzando i comandi

Codice: Seleziona tutto

include "cartella/miofile.php";
oppure

Codice: Seleziona tutto

require "cartella/miofile.php";
Per la differenza tra include e require ti rimando qui

ok perchè sicuro dovrò fare una connessione al db e farla nella pagina non mi sembra una cosa ottimale...

ultima domandina e poi sulla form come faccio a richiamare il file php presente nella mia cartella?

cioè dichiaro l'include sopra
e poi nella form faccio

Codice: Seleziona tutto

form action="scripts/php.php" method="POST"
??
spero di aver capito un pò
Avatar utente
OMBRA_Linux
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2696
Iscrizione: mercoledì 18 febbraio 2015, 14:24
Desktop: HP / Lenovo / Samsung
Distribuzione: Android / Linux / Windows10-11
Sesso: Maschile
Località: Napoli

Re: aiuto con php mai usato fin ora

Messaggio da OMBRA_Linux »

Il file PHP puoi scriverlo a parte ma devi sempre includerlo nella pagina HTML sennò non funziona.
Oppure lo scrivi direttamente nella pagina HTML.
Personalmente penso che per avere un Sito pulito e per tenerlo sempre aggiornato senza fare grossi sforzi sia meglio separare i file ma comunque devono essere sempre riportati nella pagina HTML.
Se per vivere devi strisciare, alzati e muori.
Avatar utente
Danny90
Prode Principiante
Messaggi: 147
Iscrizione: sabato 9 maggio 2015, 20:05
Sesso: Maschile
Località: Dresden (Germany)
Contatti:

Re: aiuto con php mai usato fin ora

Messaggio da Danny90 »

Chry1991 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4980877#p4980877][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: ultima domandina e poi sulla form come faccio a richiamare il file php presente nella mia cartella?
Mmm non ho capito cosa intendi.
Im schlechten Kleide wohnt oft auch Weisheit.
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggio da Chry1991 »

mettiamo caso che sotto il mio sito web io crei una cartella chiamata scripts

e qui dentro metto un file chiamato scriptregform.php

che contiene queste 2 righe

Codice: Seleziona tutto

 <?php
                                // Recupero i valori inseriti nel form
                                $nome = isset ($_POST['username']) ? $_POST['username'] : null;
                                $msg = isset ($_POST['password']) ? $_POST['password'] : null;

                                // Mostro un messaggio di conferma all'utente
                                //echo 'Grazie per averci contattato!';
                                ?>

come faccio a richiamarlo nella mia form??

Codice: Seleziona tutto

<form action="scripts/scriptregform" method="POST">
									 <label for="username" style="font-family: foo; font-size: 12px;">Username or Email:</label><br><br>
									 <input type="text" name="username" style="width:250px;"><br><br>
									 <label for="password" style="font-family: foo; font-size: 12px;">Password:</label><br><br>
							         <input type="password" name="password"  style="width:250px;"><br><br>
									 <label for="remember" style="font-family: foo; font-size: 12px;">Remember me!</label>
									 <input type="checkbox" name="ricorda" value="ricordapass" checked><br>
									 <input type="submit" value="Login" style="width:150px; font-family: foo;">

									 
									 </form>

ora ti ho messo del codice d'esempio ma credo che cosi sia sbagliato
Avatar utente
Danny90
Prode Principiante
Messaggi: 147
Iscrizione: sabato 9 maggio 2015, 20:05
Sesso: Maschile
Località: Dresden (Germany)
Contatti:

Re: aiuto con php mai usato fin ora

Messaggio da Danny90 »

Non devi richiamarlo nel form.

<form action="scripts/scriptregform.php" method="POST">

La parte in rosso dice di inviare i dati che l'utente inserisce al file scriptregform.php, che poi utilizzerà.

Nel momento in cui l'utente inserisce i dati e clicca su "submit" il browser apre la pagina scriptregform.php, non ti serve includere del codice nel file dove hai il form.

Se poi vuoi che la pagina visualizzata sia un'altra dopo la pressione di "submit" da parte dell'utente, io scriverei una cosa del genere in scriptregform.php:

Codice: Seleziona tutto

$username = $_POST['username'];

if($username) //così verifichi che il campo non sia vuoto
 // reindirizzi sulla pagina che vuoi
}
(ovviamente è solo un esempio, puoi costruirla come vuoi e come ti serve)
Im schlechten Kleide wohnt oft auch Weisheit.
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggio da Chry1991 »

Danny90 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4980942#p4980942][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Non devi richiamarlo nel form.

<form action="scripts/scriptregform.php" method="POST">

La parte in rosso dice di inviare i dati che l'utente inserisce al file scriptregform.php, che poi utilizzerà.

Nel momento in cui l'utente inserisce i dati e clicca su "submit" il browser apre la pagina scriptregform.php, non ti serve includere del codice nel file dove hai il form.

Se poi vuoi che la pagina visualizzata sia un'altra dopo la pressione di "submit" da parte dell'utente, io scriverei una cosa del genere in scriptregform.php:

Codice: Seleziona tutto

$username = $_POST['username'];

if($username) //così verifichi che il campo non sia vuoto
 // reindirizzi sulla pagina che vuoi
}
(ovviamente è solo un esempio, puoi costruirla come vuoi e come ti serve)

ok grazie mille per i chiarimenti, in caso di dubbi scrivo ancora :)
Avatar utente
Danny90
Prode Principiante
Messaggi: 147
Iscrizione: sabato 9 maggio 2015, 20:05
Sesso: Maschile
Località: Dresden (Germany)
Contatti:

Re: aiuto con php mai usato fin ora

Messaggio da Danny90 »

No problem :birra:
Im schlechten Kleide wohnt oft auch Weisheit.
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggio da Chry1991 »


ciao sto andando avanti a capire come funziona php

ho creato questa classe:

Codice: Seleziona tutto

<?php
class DB
{
    private $_pdo;

    private 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) {
            die($e->getMessage());
        }
    }
 public function connectDB(){
        define("HOST", "localhost"); // E' il server a cui ti vuoi connettere.
        define("USER", "root"); // E' l'utente con cui ti collegherai al DB.
        define("PASSWORD", "123root"); // Password di accesso al DB.
        define("DATABASE", "miodb"); // Nome del database.
        $mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
    }


}

poi ho creato una cartella main che contiene questo

Codice: Seleziona tutto

<?php
/**
 * Created by PhpStorm.
 * User: Christian
 * Date: 11/05/2017
 * Time: 12:13
 */

//session_start();

spl_autoload_register(function ($class){
    require_once 'scripts/php_scripts/' . $class . '.php';
});


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.
}


ora nella mia index.php vorrei richiamare la connessione al db se funziona bene altrimenti stampo la pagina 404:

ho fatto cosi ma credo io abbia sbagliato qualcosa

Codice: Seleziona tutto

<!DOCTYPE HTML>



<?php
require_once 'main/main.php';

//sec_session_start();



if (!empty($_POST)) {
    //Richiami la funzione login e fai il login
DB:: connectDB();
} else {
    //Redirect
    header("location: error.php");
}
?>


<html>
<head>


non riesco a ben capire essendo un novizio cosa sbaglio
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggio da Chry1991 »

Ragazzi sto ancora sperimentando

allora diciamo sono riuscito a dare una struttura al mio codice:

ora però sto facendo delle prove:

ad esempio ho questa classe chiamata dbmanager che contiene questa funzione, sperando sia corretta la sintassi

Codice: Seleziona tutto

public function login(){
        // do some stuff
        echo '<script>alert("mi sono loggato ora!")</script>';
    }
poi ho la mia classe main che contiene questo

Codice: Seleziona tutto

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;

        }
    }


}

ora nella mia index.php

che è la pagina con la form ho provato questo:

Codice: Seleziona tutto

require_once 'main/main.php';

$db = new dbconnect;
//var_dump($db->query());
$dbwork = "";
if (!empty($db->query()) || !$db->query() == false) {

    //$loginerror = var_dump($db->query());
    $dbwork = $db->query();
}
else{
    header("location: error.php");
}



if (!empty($_POST)) {
    //echo $_POST['username'];
    echo main::sanitize($_POST['username'], 'string');
    $db->login();

}



/*if (!empty($_POST)) {
    //Richiami la funzione login e fai il login



} else {
    //Redirect
    //header("location: error.php");
}*/
?>

su login premendo submit(ovviamente non lasciando campi vuoti) dovrebbe stamparmi l'alert perchè non lo fa?

ho sbagliato qualcosa?
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggio da Chry1991 »

nessuno in grado di darmi una mano???
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: Bing [Bot] e 8 ospiti