Ik heb hier een logfile: face_state.txt
Dit bestand wil ik inlezen, kijken wat erin staat, en de nodige informatie doorsturen naar onze database. En als dat allemaal gedaan is, moet de logfile leeggemaakt worden, en na 5 seconden weer opnieuw beginnen.
Kan zelf eigenlijk niet echt code schrijven, maar wel lezen (net zoals mijn duits
).. snap de code dus wel.. alleen heb 2 problemen..
De database kan helemaal niet worden bereikt (ik wil verbinden met een externe db.. dat moet toch wel kunnen?).
Het bestand word niet uitgelezen. Want als ik dit uit wil voeren, gaat hij op zijn bek bij het stuk
Hier gaat hij de html pagina al afsluiten, wat rare tekens op het scherm tovert.
Dus, hoe kan ik een verbinding maken met een externe database?
En.. waarom kan ik met fopen niet lokaal een bestand openen?
Wat ik zelf al heb gezocht:
edit: overgens werkte de code wel, op de webserver zelf. Probleem is alleen dat de logfile alleen maar lokaal kan staan. Die moet dus lokaal -> internet.
Dit bestand wil ik inlezen, kijken wat erin staat, en de nodige informatie doorsturen naar onze database. En als dat allemaal gedaan is, moet de logfile leeggemaakt worden, en na 5 seconden weer opnieuw beginnen.
Kan zelf eigenlijk niet echt code schrijven, maar wel lezen (net zoals mijn duits
De database kan helemaal niet worden bereikt (ik wil verbinden met een externe db.. dat moet toch wel kunnen?).
Het bestand word niet uitgelezen. Want als ik dit uit wil voeren, gaat hij op zijn bek bij het stuk
code:
1
2
| $fp = fopen('face.txt','r'); if (!$fp) {echo 'ERROR: Unable to open file.</table></body></html>'; exit;} |
Hier gaat hij de html pagina al afsluiten, wat rare tekens op het scherm tovert.
Dus, hoe kan ik een verbinding maken met een externe database?
En.. waarom kan ik met fopen niet lokaal een bestand openen?
Wat ik zelf al heb gezocht:
- Om het probleem te omzeilen, zat ik te denken aan een sync programma, die mijn map lokaal sync met een ftp map. Probleem is alleen, dat hiermee het bestandje niet leeggemaakt wordt.. wat wel essentieel is.
- Geprobeerd een FTP transfer in een php bestand te zetten, wat.. openende, inlas, verstuurde en leegmaakte.. alleen dit kreeg ik ook niet voor elkaar.
- Verschillende script sites bezocht om te kijken of er iets anders bij zat.. geen resultaat
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
| <html> <head> <script language="JavaScript"> // Verander hier de tijd dat er refreshed moet worden ( in seconden ) var refreshinterval=5 // Wil je de refresh in je statusbalk zichtbaar ? ( yes of no ) var displaycountdown="no" var starttime var nowtime var reloadseconds=0 var secondssinceloaded=0 function starttime() { starttime=new Date() starttime=starttime.getTime() countdown() } function countdown() { nowtime= new Date() nowtime=nowtime.getTime() secondssinceloaded=(nowtime-starttime)/1000 reloadseconds=Math.round(refreshinterval-secondssinceloaded) if (refreshinterval>=secondssinceloaded) { var timer=setTimeout("countdown()",1000) if (displaycountdown=="yes") { window.status="Page refreshing in "+reloadseconds+ " seconds" } } else { clearTimeout(timer) window.location.reload(true) } } window.onload=starttime </script> <? </head> <body> // Database connectie define("MYSQL_USER","*****[s][/s]");//usernaam define("MYSQL_PASSWORD","*******");//passwoord define("MYSQL_SERVER","www.mimizu.nl");//het server adres define("MYSQL_DATABASE","mimizu_nl_-_yourmood");//database function connecttodatabase(){ if (!$databaseLink = mysql_connect(MYSQL_SERVER, MYSQL_USER, MYSQL_PASSWORD)) {// connectie parameters uit de include file return false; } if (!mysql_select_db(MYSQL_DATABASE, $databaseLink)) { return false; } return $databaseLink; //we arrive at this point if connection is made, and database is selected! }//end databaseverbinding function if(!$link = connecttodatabase() ){ echo '&r=0&b='.urlencode('Er kon geen verbinding met de database gemaakt worden, pas de database connectie parameters aan in '.$_SERVER['PHP_SELF']).'&'; exit; } $mode = isset($_REQUEST['m']) ? $_REQUEST['m'] : NULL; //Hier begint het stuk van het bestand uitlezen function cutline($filename,$line_no=-1) { $strip_return=FALSE; $data=file($filename); $pipe=fopen($filename,'w'); $size=count($data); if($line_no==-1) $skip=$size-1; else $skip=$line_no-1; for($line=0;$line<$size;$line++) if($line!=$skip) fputs($pipe,$data[$line]); else $strip_return=TRUE; return $strip_return; } $fp = fopen('face_state.txt','r'); if (!$fp) {echo 'ERROR: Unable to open file.</table></body></html>'; exit;} while (!feof($fp)) { $line = fgets($fp, 1024); //use 2048 if very long lines list ($field1, $field2, $field3, $field4, $field5, $field6) = split (' ', $line); $afkappositie = strpos($field2," ",12); $tekst = substr($field2,13,50); //echo '_'.$tekst.'-'; $afkorting = substr($tekst,0,3); //echo $afkorting; if ($afkorting=="Hap") {mysql_query ("INSERT INTO tblEmoties (Emotie, Tijdstip) VALUES ('1', '".time()."')");} if ($afkorting=="Sad") {mysql_query ("INSERT INTO tblEmoties (Emotie, Tijdstip) VALUES ('2', '".time()."')");} if ($afkorting=="Ang") {mysql_query ("INSERT INTO tblEmoties (Emotie, Tijdstip) VALUES ('5', '".time()."')");} if ($afkorting=="Sur") {mysql_query ("INSERT INTO tblEmoties (Emotie, Tijdstip) VALUES ('6', '".time()."')");} if ($afkorting=="Sca") {mysql_query ("INSERT INTO tblEmoties (Emotie, Tijdstip) VALUES ('4', '".time()."')");} if ($afkorting=="Dis") {mysql_query ("INSERT INTO tblEmoties (Emotie, Tijdstip) VALUES ('3', '".time()."')");} cutline('face_state.txt',1); // $fp++; } fclose($fp); ?> </body> </html> |
edit: overgens werkte de code wel, op de webserver zelf. Probleem is alleen dat de logfile alleen maar lokaal kan staan. Die moet dus lokaal -> internet.
13:37