hjælp til classes programmering
Hej eksperterJeg sidder og roder med at skrive et php system i class. Det er et lille og ganske simpelt et. Men det med at skrive alting i classes og structurere det på den måde er ganske nyt for mig.
jeg har lavet en bootstrap.php fil som ser sådan her ud.
<?php
class Bootstrap {
public function __construct() {
$url = 'page';
if(!isset($_GET[$url])) {
$this->view('home/index');
} else {
switch($_GET[$url]) {
case "search":
$this->view('home/search');
break;
}
}
}
public function view($name) {
$file = 'views/'.$name.'.php';
if(file_exists($file)) {
require 'views/header.php';
require $file;
require 'views/footer.php';
} else {
$this->error();
}
}
public function error() {
require 'views/header.php';
require 'views/error/404.php';
require 'views/footer.php';
return false;
}
}
den virker faktisk fint nok. så det er ikke den som er problemet.
jeg har i min header fil et søge felt hvor man skal kunne skrive et navn. trykke på søg og den søger efter personen i databasen.
min header.php ser således ud.
<link rel="stylesheet" type="text/css" href="<?php echo ROOT . DS . CSS;?>default.css">
<header>
<div class="header">
<h1>Hansen's Kontakter</h1>
</div>
</header>
<nav>
<div class="nav">
<ul>
<li><a href="index.php">Forside</a></li>
<li><a href="#">Kategorier</a></li>
<li><a href="#">Alle Kontakter</a></li>
<li><a href="#">Admin</a></li>
</ul>
<form action="index.php?page=search" method="post">
<input type="text" name="seek" placeholder="Søgeord">
<input type="submit" name="search" value="Søg" id="btn">
</form>
</div>
</nav>
<section>
<div class="section">
Når jeg nu trykker på søg. skal den åbne index.php?page=search. hvor den så behandler forspørgelsen sender den videre for så at skulle komme tilbage med resultatet.
Det er i denne process jeg tror jeg har kikset big time men ved bare ikke hvor og hvordan.
her kommer min search.php
<?php
if(isset($_POST['search'])) {
$seek = $_POST['seek'];
require ROOT . DS .'controllers/contacts.php';
find_contact($seek);
}
den sender min forspørgelse videre til min contact classe hvor den skal udføre denne del at showet.
contacts.php kommer her
<?php
class Contacts extends DB {
public function find_contact($seek) {
$q = $seek;
echo 'Du har søgt på: <i><b>'.$q.'</b></i>';
$this->search($q);
}
}
det er så her hvor jeg skulle køre den igennem mysqli. i min db classe fil.
db.class.php kommer så her.
<?php
class DB {
protected $dbhost = 'localhost';
protected $dbuser = 'test';
protected $dbpass = '1234';
protected $dbname = 'test';
protected $conn = '';
public function __construct() {
$conn = mysqli_connect($this->dbhost, $this->dbuser, $this->dbpass, $this->dbname);
if(mysqli_connect_errno()) {
die('Connection failed : <i>' . mysqli_connect_error($this->conn) . '</i>');
exit;
}
$this->conn = $conn;
}
public function search($q) {
$search = '%'.$q.'%';
$stmt = $this->conn->prepare("select firstname, middlename, lastname, phone, email from contacts where firstname = ?");
if($stmt) {
mysqli_stmt_bind_param($stmt, 's', $search);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $firstname, $middlename, $lastname, $phone, $email);
while(mysqli_stmt_fetch($stmt)) {
$fullname = $fisrtname.' '.$middlename.' '.$lastname;
echo '
<span class="info">'.$fullname.'</span>
<span class="info">'.$phone.'</span>
<span class="info">'.$email.'</span>
';
}
}
}
}
igen jeg får nogle fejl som jeg ikke fatter en meter af. mine fejl beskeder er følgende
Warning: require(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in C:\wamp64\www\contacts\views\home\search.php on line 4
Warning: require(http://contacts\controllers/contacts.php): failed to open stream: no suitable wrapper could be found in C:\wamp64\www\contacts\views\home\search.php on line 4
Fatal error: require(): Failed opening required 'http://contacts\controllers/contacts.php' (include_path='.;C:\php\pear') in C:\wamp64\www\contacts\views\home\search.php on line 4
igen jeg er ny i denne måde at skrive php på og har ikke styr på det med classes men man lære kun ved at prøve sig frem og det har jeg gjort og nu har jeg brug for hjælp til at komme videre med mit lille projekt.
på forhånd tak for hjælpen...