[Risolto] aiuto con php mai usato fin ora

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

[Risolto] aiuto con php mai usato fin ora

Messaggioda Chry1991 » martedì 9 maggio 2017, 14:10

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.
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 420
Iscrizione: maggio 2013
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Danny90 » martedì 9 maggio 2017, 15:21

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.
Avatar utente
Danny90
Prode Principiante
 
Messaggi: 125
Iscrizione: maggio 2015
Località: Dresden (Germany)
Desktop: GNOME Shell
Distribuzione: Ubuntu 16.10
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Chry1991 » mercoledì 10 maggio 2017, 10:21

Danny90 Immagine 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??
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 420
Iscrizione: maggio 2013
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Danny90 » mercoledì 10 maggio 2017, 10:27

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
Avatar utente
Danny90
Prode Principiante
 
Messaggi: 125
Iscrizione: maggio 2015
Località: Dresden (Germany)
Desktop: GNOME Shell
Distribuzione: Ubuntu 16.10
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Chry1991 » mercoledì 10 maggio 2017, 10:34

Danny90 Immagine 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ò
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 420
Iscrizione: maggio 2013
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda OMBRA_Linux » mercoledì 10 maggio 2017, 10:36

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
OMBRA_Linux
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 669
Iscrizione: febbraio 2015
Località: Napoli
Desktop: LTS Ubuntu, LXDE, KDE
Distribuzione: Ubuntu, Lubuntu, Kubuntu, Windows
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Danny90 » mercoledì 10 maggio 2017, 11:52

Chry1991 Immagine 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.
Avatar utente
Danny90
Prode Principiante
 
Messaggi: 125
Iscrizione: maggio 2015
Località: Dresden (Germany)
Desktop: GNOME Shell
Distribuzione: Ubuntu 16.10
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Chry1991 » mercoledì 10 maggio 2017, 13:40

Danny90 Immagine ha scritto:
Chry1991 Immagine 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.


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
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 420
Iscrizione: maggio 2013
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Danny90 » mercoledì 10 maggio 2017, 13:59

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)
Avatar utente
Danny90
Prode Principiante
 
Messaggi: 125
Iscrizione: maggio 2015
Località: Dresden (Germany)
Desktop: GNOME Shell
Distribuzione: Ubuntu 16.10
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Chry1991 » mercoledì 10 maggio 2017, 15:25

Danny90 Immagine 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 :)
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 420
Iscrizione: maggio 2013
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Danny90 » mercoledì 10 maggio 2017, 16:35

No problem :birra:
Avatar utente
Danny90
Prode Principiante
 
Messaggi: 125
Iscrizione: maggio 2015
Località: Dresden (Germany)
Desktop: GNOME Shell
Distribuzione: Ubuntu 16.10
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Chry1991 » giovedì 11 maggio 2017, 14:23

Danny90 Immagine ha scritto:No problem :birra:



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: 420
Iscrizione: maggio 2013
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Chry1991 » lunedì 15 maggio 2017, 9:45

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: 420
Iscrizione: maggio 2013
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: aiuto con php mai usato fin ora

Messaggioda Chry1991 » lunedì 15 maggio 2017, 14:03

nessuno in grado di darmi una mano???
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 420
Iscrizione: maggio 2013
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 4 ospiti