[PHP5 oop è corretto cosi?

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

[PHP5 oop è corretto cosi?

Messaggio da treled »

Salve, come da titolo è corretto questo codice che vi allego ..

Ora è brutto perché non so i nomi a modo ad dare le classi ma volevo sapere se va bene come sto facendo .. perché sono riuscito fare il sistema utenti.

ma vi posto un piccolo codice:

Codice: Seleziona tutto

<?php
class Core
{
	var $dbh;
	 
	
	function __construct()
	{
		try {
			$host = "localhost";
			$db_name = "xxx";
			$username = "root";
			$password = "";	
			$this->dbh = new PDO("mysql:host={$host};dbname={$db_name}", $username, $password);
		
		} catch (PDOException $e) {
			echo 'Connection failed: ' . $e->getMessage();
			}
		
	}

	function __destruct() {	
		
		$this->dbh=null;
	}
} // core
 
class DataBase extends Core {
	
	var $dbh;

	//Si puo' cmq accedere,se si vuole, alle comuni strutture di PDO mediante questi membri 
	var $sql;  //stringa sql
	var $stmt; //lo statement 
	var $row;  // la riga pdo in output 
	var $nrows; //numero di righe interessate dall'ultima select;
	var $error; // una stringa per gli errori (non usata per adesso)

 
	 
	function execute($sql)
	{
		//riempo la varibile sql
		$this->sql=$sql;
	 
		//Preparo le strutture per contenere la query
		$this->stmt = $this->dbh->prepare($this->sql);
	 
		//Eseguo la query
		$state = $this->stmt->execute();
	}
	 
	 
	function nrows()
	{
		return $this->nrows;
	}
	 
	
	 
	function lastInsertId()
	{
		//Da verificare di volta in volta.
		return $this->dbh->lastInsertId();
	}
	
	function disconnect()
	{
		$this->dbh=null;
		$this->nrows=0;
		$this->row=null;
		$this->stmt=null;
		$this->error="";
	}
	
	function __destruct() {	
		
		return $this->disconnect();
	}
} // database

class SendMail extends Core
{
	function stampaEmail($a)
	{
		echo '<p>La tua email e : '.$a.'</p>';
		
	}
}
?>
poi un'altra cosa si deve scrivere sempre in inglese se dopo una cosa va al pubblico??

giusto?


grazie mille e vi ringrazio molto..
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP5 oop è corretto cosi?

Messaggio da Zoff »

Mh... a me sembra brutto indipendentemente dai nomi.

Perché intercetti l'eccezione nel costruttore di Core? Se non riesci a connetterti al DB a cosa ti serve quella classe? Tanto vale lasciar andare...
A cosa ti serve la classe Database se la usi esattamente come useresti PDO?
Perchè mai SendMail estende Core che crea una connessione al DB?

In sostanza di OOP c'è solo la sintassi.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP5 oop è corretto cosi?

Messaggio da treled »

ok , mi protesti fare un esempio prima che vado a fare il codice inutilmente..?

hai un'esempio andando quasi vicino al mio.?

per ora ho fatto login e logout e la pagina setup.

ciao e buona serata.
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP5 oop è corretto cosi?

Messaggio da treled »

cosi.?

[code2=php]<?php
class Core
{

var $dbh;

//Si puo' cmq accedere,se si vuole, alle comuni strutture di PDO mediante questi membri
var $sql; //stringa sql
var $stmt; //lo statement
var $row; // la riga pdo in output
var $nrows; //numero di righe interessate dall'ultima select;
var $error; // una stringa per gli errori (non usata per adesso)


function __construct()
{
try {
$host = "localhost";
$db_name = "xxxx";
$username = "root";
$password = "";
$this->dbh = new PDO("mysql:host={$host};dbname={$db_name}", $username, $password);

} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}

}


function execute($sql)
{
//riempo la varibile sql
$this->sql=$sql;

//Preparo le strutture per contenere la query
$this->stmt = $this->dbh->prepare($this->sql);

//Eseguo la query
$state = $this->stmt->execute();
}



function disconnect()
{
$this->dbh=null;
$this->nrows=0;
$this->row=null;
$this->stmt=null;
$this->error="";

}

function __destruct() {

return $this->disconnect();
}
} // core


class UtilMail
{
function echoMail($a)
{
echo '<p>La tua email e : '.$a.'</p>';

}
}
?>[/code2]
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP5 oop è corretto cosi?

Messaggio da treled »

login:
[code2=php]<?php
include('core.php');

if(isset($_POST["login"]))
{
$db = new Core();




$sql = "SELECT * FROM users WHERE username=:username and password=:password";

$username = $_POST["username"];
$p = md5($_POST["password"]);


$db->stmt = $db->dbh->prepare($sql);

$db->stmt->bindParam(":username", $username);
$db->stmt->bindParam(":password", $p);


$db->stmt->execute();


if($row = $db->stmt->fetch()){

session_start();

$_SESSION["login"]=true;
$_SESSION["username"]=$row["username"];
$_SESSION["name"]= $row["name"];
header('location: index.php');
}
else{

echo 'Username and Password are not found';

}
$db->disconnect();
}
?>
<form method="post" action="login.php">
<table>
<tr><td>Username:</td><td><input type="text" name="username"></td></tr>
<tr><td>Password:</td><td><input type="password" name="password"></td></tr>
<tr><td><input type="submit" name="login" value="Login"></td>
<td></td></tr>
</table>
</form>[/code2]

funzionante.. cosi..

idee?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP5 oop è corretto cosi?

Messaggio da Zoff »

Ribadisco quanto detto in precedenza.

Quella classe è inutile.
Hai risolto solo la questione della connessione al db nella classe per le mail.

Resta il catch nel costruttore e che la classe fa esattamente quello che fa PDO, l'unica cosa utile è che ti genera automaticamente la stringa DSN ma il costruttore non è neanche parametrizzato...
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP5 oop è corretto cosi?

Messaggio da treled »

ok, cancellato tutto e basta..!!! devo aspettare altri 10 anni per usare php e quando ci sara tutto con pdo..

per adesso uso php senza database..

ciao poi chiudere la discussione..

libri di merda di php5 fatti con il cu**.. e senza spiegare come si usa il db.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP5 oop è corretto cosi?

Messaggio da Zoff »

Non sono i libri a essere fatti male (almeno non tutti), il fatto è che non ti sei fatto le basi, né di PHP in generale né della OOP e pretendi di iniziare a scrivere il codice.

Aggiungo che PHP ad oggetti se l'obbiettivo non è l'ambito professionale ma lo si usa solo per hobby, specie senza basi di programmazione, è una perdita di tempo.
Per mettere su "due paginette" o un CMS non serve.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP5 oop è corretto cosi?

Messaggio da treled »

Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4587531#p4587531][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Non sono i libri a essere fatti male (almeno non tutti), il fatto è che non ti sei fatto le basi, né di PHP in generale né della OOP e pretendi di iniziare a scrivere il codice.

Aggiungo che PHP ad oggetti se l'obbiettivo non è l'ambito professionale ma lo si usa solo per hobby, specie senza basi di programmazione, è una perdita di tempo.
Per mettere su "due paginette" o un CMS non serve.
Per mettere su "due paginette" o un CMS non serve.
con questo mi hai salvato .. tanto era solamente per imparare qualcosa di nuovo..

poi se voi ti mando i link del mio sito personale che lo fatto con gli include.
tanto modifico io a mano etc..

ti ringrazio molto..

solo che certi libri che sono lungi e poi non ti insegnano nulla di concreto e maggior parte delle volte vai a cercare su internet.

grazie molto e buona serata.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: [PHP5 oop è corretto cosi?

Messaggio da UbuNuovo »

Il sito personale fatto con gli include non ha niente di sbagliato!
Non ti abbattere!
Io sono dell'idea che non si può cominciare con l'oop senza avere già le basi del php procedurale, ma potrei sbagliarmi!
Te fai la tua strada e vedrai che avrai le tue soddisfazioni, nessuno "nasce imparato".
Io credo che senza PHP con i suoi pregi e i suoi difetti ,il web non sarebbe stato quello che è, la maggior parte dei siti dinamici sono in PHP.
Tanti di quelli che lo criticano stanno scrivendo su siti PHP... poi, sono venuti fuori altri linguaggi ma lo sviluppo di internet, secondo me , è merito di PHP.
La mia è una considerazione di parte, sono innamorato di PHP, e si sa l'amore è irrazionale e vince tutto. :D
Salva l'Ucraina! 🇺🇦
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti