Goede middag,
Ik ben bezig om mijn php kennis weer te updaten, nu er zoveel veranderd is word het wel tijd om mijn scripts te herschrijven,
echter loop ik nu tegen zo iets lulligs. Namelijk mijn connectie.php include voor het verbinden van de database.
Als ik het volgende rechtstreeks in mijn script zet lukt het wel, maar doe ik die in connectie.php en ik include deze op de pagina dan werkt de connectie ineens niet.
Rechtstreeks:
PHP Code:
<?php
$db = new PDO('mysql:host=localhost;dbname=dbnaam','gebruiker','ww');$site = 'mijnsite';$sql = "SELECT * FROM timfilm WHERE cat = vps ORDER BY RAND() DESC LIMIT 100"; // Selecteren uit de database met een 100 limiet; $stmt = $db->query($sql); $result = $stmt->fetchAll(); foreach ($result as $row) // Resultaat as row opslaan{ $tekst = $row['descr']; // Beschrijving uit database $tekens = 40; // Maximale aantal tekens $toevoeging = ''; // Eventueel een toevoeging achter de tekst $id = $row['id']; // Het id selecteren $afgekort = afkorten($tekst, $tekens, $toevoeging); // De volledige string nu uitvoeren voor het afkorten echo "<a href='out.php?f=1&pct=65&url=$site/$id/$tekst.html' target='_blank'>amateur - $afgekort</a><br>"; // En dan nu de link afgekort zichtbaar maken}
?>
En via een include wat ineens niet werkt:
In connectie.php staat nu:PHP Code:
<?php
include ("connectie.php");$sql = "SELECT * FROM timfilm WHERE cat = vps ORDER BY RAND() DESC LIMIT 100"; // Selecteren uit de database met een 100 limiet; $stmt = $db->query($sql); $result = $stmt->fetchAll(); foreach ($result as $row) // Resultaat as row opslaan{ $tekst = $row['descr']; // Beschrijving uit database $tekens = 40; // Maximale aantal tekens $toevoeging = ''; // Eventueel een toevoeging achter de tekst $id = $row['id']; // Het id selecteren $afgekort = afkorten($tekst, $tekens, $toevoeging); // De volledige string nu uitvoeren voor het afkorten echo "<a href='out.php?f=1&pct=65&url=$site/$id/$tekst.html' target='_blank'>amateur - $afgekort</a><br>"; // En dan nu de link afgekort zichtbaar maken}
?>
Maar dan werkt het dus niet.PHP Code:
<?php
$db = new PDO('mysql:host=localhost;dbname=timfilm','tim','160500');$site = 'mijnsite';?>
iemand een idee hoe dit moet?
- Include werkt niet meer
-
26-11-2014, 15:02 #1Particulier
- Berichten
- 17
- Lid sinds
- 11 Jaar
Include werkt niet meer
-
26-11-2014, 16:01 #2Particulier
- Berichten
- 442
- Lid sinds
- 15 Jaar
Re: Include werkt niet meer
Erg vreemd inderdaad. Om een aantal oorzaken uit te sluiten.
-Staat connectie.php in dezelfde folder als het bestand waarin de include staat.
-Krijg je warnings, error of notice meldingen en welke zijn dit?
Als je geen volledige error reporting krijgt kan je dit aanzetten met deze code bovenaan je PHP bestand:
error_reporting(E_ALL);
ini_set('display_errors', '1');
Uit mijn ervaring werkt dit niet altijd op elke server en zal je het in je htaccess bestand moeten aan zetten met deze code:
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_value error_log /home/path/public_html/domain/PHP_errors.log
-
26-11-2014, 21:11 #3Particulier
- Berichten
- 17
- Lid sinds
- 11 Jaar
Re: Include werkt niet meer
zodra ik de connectie wil includen dan krijg ik de volgende foutmeldingen:
Notice: Undefined variable: db in C:\wamp\www\nieuwe film script\film\test.php on line 33
Fatal error: Call to a member function query() on a non-object in C:\wamp\www\nieuwe film script\film\test.php on line 33
Het bestand connectie.php staat op dit moment in de zelfde map, daar ik zelf een aantal dingen wou uitsluiten.
zoals je ziet draai ik wamp om locaal eerst te testen, dus .htaccess aanmaken is niet van toepassing om error reporting aan te zetten.
-
26-11-2014, 21:33 #4DB Service - DB-Hosting.nl
- Berichten
- 115
- Lid sinds
- 10 Jaar
Re: Include werkt niet meer
Check is met dit of je kan zien dat de file er staat
PHP Code:<?php
$filename = '/path/to/foo.txt';
if (file_exists($filename)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
}
?>
-
26-11-2014, 21:53 #5Particulier
- Berichten
- 796
- Lid sinds
- 16 Jaar
Re: Include werkt niet meer
Zou het kunnen zijn dat connectie.php niet de juiste permissies heeft? Misschien heeft deze file niet de correcte leesrechten.
-
26-11-2014, 22:12 #6Particulier
- Berichten
- 17
- Lid sinds
- 11 Jaar
Re: Include werkt niet meer
Inmiddels heb ik een pb gehad met een top oplossing:
Van de connectie is een functie gemaakt als volgt:
Header.php
PHP Code:require_once "config.php";
function getConnection(){ try { return new PDO(DB_DSN, DB_USER, DB_PASS, array( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" )); } catch (PDOException $e) { printf('MySQL fout %s, regel %d bestand %s<br>%s', $e->getCode(), $e->getLine(), $e->getFile(), $e->getMessage()); }}
PHP Code:// Database instellingendefine('DB_DSN', 'mysql:dbname=dbnaam;host=localhost;port=3306');define('DB_USER', 'gebruikersnaam');define('DB_PASS', 'wachtwoord');
// De URL van je websitedefine('URL_PUBLIC', 'http://www.site.nl');
// De tabel waarin de data staatdefine('TABLE', 'tabelnaam');
PHP Code:require_once "header.php";$conn = getConnection();
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic