Startersboek PHP & MYSQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bertus Wikkerink

Bertus Wikkerink

14/11/2010 21:12:16
Quote Anchor link
Mooi boek.
Ik probeer via dit boek(en andere boeken) mijzelf php en mysql aan te leren.

Ik ben aangekomen bij 'Een eigen logboek'(pagina 132)
Volgens mij zitten er onduidelijkheden in de scripts:
Ik heb het text bestand 'log.txt' in de map log geplaatst.
Ik heb het script 'logfile_func.inc.php' foutloos overgenomen van pagina 135.
Ik heb de code van pagina 136 foutloos in 'header.inc.php'opgenomen.
Ook heb ik in 'index.php' in de map opmaak $logpath='log/';
opgenomen.
Toch werkt het niet.
Ik vraag mij af of in de regel(op pagina 136):
include($rootdir . 'log/logpath . 'logfile_func.inc.php');');
niet twee fouten zitten.
nl De variabele $rootdir wordt, in geen enkel script, ervoor, van een waarde voorzien.(wel in het oudere boek)
Ook klopt het aantal '(aanhaligstekens) niet.
Volgens mij moeten de regels zo:

Code (php)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php>
$rootdir='../';
if(!isset($logpath)) $logpath='../log/';
include($rootdir . 'log/logpath' . 'logfile_inc.php');
?>


Helaas werkt het dan ook niet.

Wat doe ik hier fout.
Immers als de scripts niet goed in het boek staan kan ik er ook niet uitkomen.
Staan ze er wel goed in dan hoor ik dit graag; want dan kan ik mijn twee weekse zoektocht voortzetten.

Vriendelijke groeten,

Bertus wikkerink
 
PHP hulp

PHP hulp

22/12/2024 10:15:56
 
Vincent Huisman

Vincent Huisman

14/11/2010 21:14:02
Quote Anchor link
krijg je ook foutmelddingen? laat ook eens wat code zien want ik ken dat boek niet.
 
Bas IJzelendoorn

Bas IJzelendoorn

14/11/2010 21:18:06
Quote Anchor link
het voorbeeld wat je gaf klopt in ieder geval niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
include($rootdir . 'log/logpath . 'logfile_func.inc.php');');


Dat zou allicht dit zijn (wat je al in je voorbeeld aangaf):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
include($rootdir . 'log/logpath' . 'logfile_func.inc.php');


En mogelijk dat er ook nog een / tussen moet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
include($rootdir . 'log/logpath' . '/logfile_func.inc.php');


maar dan is ' . ' overbodig en zou dit de uitkomst moeten bieden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
include($rootdir . 'log/logpath/logfile_func.inc.php');
Gewijzigd op 14/11/2010 21:19:16 door Bas IJzelendoorn
 
Bertus Wikkerink

Bertus Wikkerink

15/11/2010 09:14:00
Quote Anchor link
Ik heb het veranderd maar het helpt niet.
Ik heb vandaag weinig tijd maar zal de code zo snel mogelijk plaatsen.

Alvast bedankt voor jullie moeite.

Groetjes,

Bertus Wikkerink

Toevoeging op 15/11/2010 09:16:08:

PS Het book heet "PHP en MYSQL" isbn: 978-90-456-4220-8.
Van: Jochen Franke & Axel Bornträger
 
Ozzie PHP

Ozzie PHP

15/11/2010 14:07:58
Quote Anchor link
Bertus Wikkerink op 14/11/2010 21:12:16:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php>
$rootdir='../';
if(!isset($logpath)) $logpath='../log/';
include($rootdir . 'log/logpath' . 'logfile_inc.php');
?>

In ieder geval moet in de 1e regel het ">" teken worden weggehaald.

Ik kan de volledige code niet zien, dus daarom is het lastig om antwoord te geven. Maar wat ik wel zie is dat je een variabele $logpath instelt (regel 3) die je bij het includen (regel 4) niet gebruikt. Wellicht zit daar (een deel van) het probleem.
Gewijzigd op 15/11/2010 14:12:04 door Ozzie PHP
 
- SanThe -

- SanThe -

15/11/2010 15:25:19
Quote Anchor link
Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

//rest

?>
 
Bertus Wikkerink

Bertus Wikkerink

15/11/2010 21:11:23
Quote Anchor link
Jullie vroegen naar code.
Ik weet niet of dit mag maar ik zal proberen hier het hoofdstuk uit het boek te plaatsen. Misschien dat jullie er wijzer uit worden dan ik. Succes:
Een eigen logboek
-------------------------------------------------------------------------------------------------------------------------
Helaas mag ik dit hier niet laten staan. Dit is schending van de auteurswet. Probeer uw vraag anders te formuleren of maak een samenvatting van het stuk uit het boek.[/modedit]

Toevoeging op 16/11/2010 20:26:52:

Mijn excuses.

In het boek wordt duidelijk verteld dat de codes open source zijn. Dus die kan ik dan wel mededelen:
Er wordt uitgelegd hoe je een logboek kan maken.
Serverinformatie kan worden ingelezen met een superglobale array: $_SERVER.
Zo kun je met $_SERVER['auth_type'] de waarde AUTH_TYPE (type authenticatie voor beveiligde pagina's) ophalen enz...

Mijn site heb ik volgens het boek opgemaakt door in WAMP in WWW een map "www.mijnsite.nl" te maken en in deze map de mappen: admin, catalogus, counter, enquête, gastenboek, klanten, links, log, nieuws, opmaak(hoofdmap), systeem, en contact aan te maken.
Als je het boek volgt dan heb je zelf een opmaak gemaakt en deze gedeeld in een header gedeelte dat je met php met include weer ophaalt. En een gedeelte footer dat je ook met include weer ophaalt. Hierdoor heb je de opmaak mooi gescheiden van de code voor de site.
Je leert de code voor een teller op elke pagina te maken en zo ook een eigen logboek.
De code voor het logboek schrijft gegevens in een text bestand: log.txt dat je in de map log plaatst.
Het bestand dat de ingangen in het logboek maakt heet logfile_func.inc.php.
Die code ziet er zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if(!isset($SERVER['REMOTE_ADD'])) $_SERVER['REMOTE_ADD']="n.v.";
if(!isset($SERVER['REQUEST_METHOD'])) $_SERVER['REQUEST_METHOD']="n.v.";
if(!isset($SERVER['SCRIPT_NAME'])) $_SERVER['SCRIPT_NAME']="n.v.";
if(!isset($SERVER['HTTP_USER_AGENT'])) $_SERVER['HTTP_USER_AGENT']="n.v.";
if(!isset($SERVER['HTTP_REFERER'])) $_SERVER['HTTP_REFERER']="n.v.";
if(!isset($logpath)) $logpath="../log/;"$lofile=fopen($logpath."log.txt","a");
fputs($logfile, date("d.m.Y, H:i:s",time()) . "," . $_
SERVER['REMOTE_ADDR'] . "," . $_SERVER['REQUEST_METHOD'] . ",".
$_SERVER['SCRIPT_NAME'] .", ". $_SERVER['HTTP_USER_AGENT'] . ", "
. $_SERVER['HTTP_REFERER'] ."\n";
fclose($logfile);
?>


Om dit logbestand nu op elke pagina te kunnen oproepen, moet je dit:
logfile_func.inc.php
in de map opmaak in het bestand header.inc.php plaatsen.
EN plaats aan het begin van header.inc.php het bestandje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if(!isset($logpath)) $logpath="../log/";
include($rootdir . "log/logpath . "logfile_func.inc.php");");
?>

(Volgens mij zit hier al een fout in en moet het volgens mij zijn:
include($rootdir . "log/logpath" . "logfile_func.inc.php");

En om nu te zorgen dat er aan het begin van elke pagina een nieuwe regel in log.txt wordt opgenomen, voeg je in index.php(die je als startpagina gebruikt) de regel toe:
$logpath="log/";

Welnu, ik heb dit letterlijk opgevolgd maar het werkt niet: het log.txt bestand blijft leeg.
Wie weet er raad.

Groeten Bertus Wikkerink
Gewijzigd op 15/11/2010 22:42:16 door Bas IJzelendoorn
 
Bertus Wikkerink

Bertus Wikkerink

17/11/2010 13:05:18
Quote Anchor link
Eureka!!!
Mijn eigen logboek werkt.

in de code van logfile_func.inc.php
if(!isset($logpath)) $logpath="../log/"; vervangen door $rootdir="../";
Daarna: $logfile=fopen($logpath,"log.txt","a"); vervangen door:
$logfile=fopen($rootdir,"log/log.txt","a");

en de code in de header verandert in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$rootdir
="../";
include($rootdir . "log/logfile_func.inc.php");");
?>


et voila: EUREKA.

Een ieder die moeite heeft genomen om ook maar even met mij bezig te zijn geweest, HEEL, HEEL HARTELIJK DANK.
Maar de beste hulp is toch als je het zelf vindt.

Eindelijk kan ik weer verder om net als jullie meer van php te leren.

Hiermede is dit topic gesloten. Nogmaals dank!!!

Bertus Wikkerink
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.