PHP voert script twee keer uit?

Gestart doorBugged12 reacties101 weergaven

13 berichten · pagina 1 van 1

Bugged

Lid · Topicstarter

Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik heb de volgende code:

Codeblok (voorbeeld.php):

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


// Script ervoor, niet van belang denk ik
if($file = fopen("/home/---/domains/---/private_html/pauze/log/log-".date("d-m-Y").".txt", "a+")){
$write = "/==========================================
= Datum & Tijd: "
.date("d-m-Y H:i:s")." =
= Databaseverbinding: "
.$dbstatus." =
= Twitter-verbinding: "
.($apistatus == "Verbonden") ? $apistatus : $apistatus." "." =
= friendships/create: Uitgevoerd =
= followers_ids limiet: "
.$qFetch[followers_ids]." =
= friends_ids limiet: "
.$qFetch[followers_ids]." =
= Einde logbestand =
==========================================/

"
;
if(fwrite($file, $write)){
echo "Succesfully writed logfile. New friendships are created.1";
if(fclose($file)){
echo "Logfile closed safely.2";
}
else{
echo "Failed to close file safely.3";
}
}
else{
echo "Failed to write logfile, new friendships are created.4";
if(fclose($file)){
echo "Logfile closed safely.5";
}
else{
echo "Failed to close logfile safely.6";
}
}
}
else{
echo "Failed to open logfile. New friendships are created.7";
}


En ik voer hem één keer uit.

1. Mijn browser (chrome) heeft als output: Succesfully writed logfile. New friendships are created.1Logfile closed safely.2Succesfully writed logfile. New friendships are created.1Logfile closed safely.2 Het lijkt er dus op dat hij het script twee keer uitvoert? Of zie ik dit verkeerd..

2. In de logfile is het enige wat komt: "Verbonden.Verbonden.", helemaal niets van $write..

Ik zie de fout van 1 sowieso niet, van 2 ook niet maar dat zal wel een logisch iets zijn wat ik vergeet..
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
2)
Twitter-verbinding: ".($apistatus == "Verbonden") ? $apistatus : $apistatus." "."

dus:

Codeblok (voorbeeld.php):

1
2
3
4

if apistatus == verbonden
$apistatus
else
$apistatus

??

1)
http://php.net/fwrite

fwrite() returns the number of bytes written, or FALSE on error.

dus

Codeblok (voorbeeld.php):

1

if(fwrite($file, $write) != FALSE){
0
Bugged

Lid · Topicstarter

Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
2)
Twitter-verbinding: ".($apistatus == "Verbonden") ? $apistatus : $apistatus." "."
dus:

Codeblok (voorbeeld.php):

1
2
3
4

if apistatus == verbonden
$apistatus
else
$apistatus

??

1)
http://php.net/fwrite

fwrite() returns the number of bytes written, or FALSE on error.

dus

if(fwrite($file, $write) != FALSE){

2) komt doordat Gefaald korter is dan Verbonden en er dus, zoals je ziet, bij Gefaald 2 spaties achter komen.

1) Ik zal het even proberen.

toevoeging op 29 december 2014, 131140:
Edit; script wordt nog steeds twee keer uitgevoerd (lijkt het). Output is
Quote:
Succesfully writed logfile. New friendships are created.1Logfile closed safely.2Succesfully writed logfile. New friendships are created.1Logfile closed safely.2
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Doe eens een var dump op fwrite($file, $write)
0
Bugged

Lid · Topicstarter

Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Doe eens een var dump op fwrite($file, $write)
Codeblok (voorbeeld.php):

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


// Code hiervoor, nvt denk ik.
if($file = fopen("/home/---/domains/---/private_html/pauze/log/log-".date("d-m-Y").".txt", "a+")){
$write = "/==========================================
= Datum & Tijd: "
.date("d-m-Y H:i:s")." =
= Databaseverbinding: "
.$dbstatus." =
= Twitter-verbinding: "
.($apistatus == "Verbonden") ? $apistatus : $apistatus." "." =
= friendships/create: Uitgevoerd =
= followers_ids limiet: "
.$qFetch[followers_ids]." =
= friends_ids limiet: "
.$qFetch[followers_ids]." =
= Einde logbestand =
==========================================/

"
;
if($vardump = fwrite($file, $write) !== FALSE){
var_dump($vardump);
echo "Succesfully writed logfile. New friendships are created.1";
if(fclose($file)){
echo "Logfile closed safely.2";
}
else{
echo "Failed to close file safely.3";
}
}
else{
echo "Failed to write logfile, new friendships are created.4";
if(fclose($file)){
echo "Logfile closed safely.5";
}
else{
echo "Failed to close logfile safely.6";
}
}
}
else{
echo "Failed to open logfile. New friendships are created.7";
}


var_dump geeft: "bool(true)".
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
ik bedoel op de frwite, niet de var
0
Bugged

Lid · Topicstarter

Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
ik bedoel op de frwite, niet de var
Het is toch var_dump en geen function_dump?

toevoeging op 29 december 2014, 13:50:08:
Laat maar, var_dump geeft int(9);
0
Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik denk het script ervoor wel van belang is aangezien het lijkt of het in een loop zit.
0
Bugged

Lid · Topicstarter

Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Timkb schreef:
Ik denk het script ervoor wel van belang is aangezien het lijkt of het in een loop zit.
Right, hele script thumbsupDe config.php is een simpelweg bestand met de Twitter-keys en databaseverbinding
Spoiler tonen
Codeblok (voorbeeld.php):
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


// Include het configuratiebestand
require_once("config.php");

// Verbinding maken
if($con = new TwitterOAuth(CON_KEY, CON_SCT, ACS_TKN, ACS_SCT)){
$apistatus = "Verbonden";
}
else{
$apistatus = "Gefaald";
}


// Verbinding gemaakt, lets have some fun!
// Limieten ophalen en kijken of ze niet <= 0 zijn

$execute = false;
if($qQuery = $db->query("SELECT followers_ids,friends_ids FROM `limit` ORDER BY `date` DESC LIMIT 1")){
$dbstatus = "Verbonden";
if($qFetch = $qQuery->fetch_assoc()){
if($qFetch[followers_ids] <= 0 || $qFetch[friends_ids] <= 0){
// Limiet bereikt
$execute = false;
}
else{
// Limiet nog niet bereikt, doorgaan met script en ophalen van volgers en vrienden
if($vrienden = $con->get(friends/ids, array(cursor => -1)) && $volgers = $con->get(followers/ids, array(cursor => -1))){
$execute = true;
}
else{
$execute = false;
}
}
}
}
else{
$dbstatus = "Gefaald";
}


if($execute){
// Vergelijken of er volgers zijn die het account nog niet volgt
foreach ($volgers[ids] as $i => $id) {
if (empty($vrienden[ids]) or !in_array($id, $vrienden[ids])) {
if($ret = $con->post(friendships/create, array(user_id => $id))){
if($file = fopen("/home/---/domains/---/private_html/pauze/log/log-".date("d-m-Y").".txt", "a+")){
$write = "/==========================================
= Datum & Tijd: "
.date("d-m-Y H:i:s")." =
= Databaseverbinding: "
.$dbstatus." =
= Twitter-verbinding: "
.($apistatus == "Verbonden") ? $apistatus : $apistatus." "." =
= friendships/create: Uitgevoerd =
= followers_ids limiet: "
.$qFetch[followers_ids]." =
= friends_ids limiet: "
.$qFetch[followers_ids]." =
= Einde logbestand =
==========================================/

"
;
if(fwrite($file, $write) !== FALSE){
echo "Succesfully writed logfile. New friendships are created.1";
if(fclose($file)){
echo "Logfile closed safely.2";
}
else{
echo "Failed to close file safely.3";
}
}
else{
echo "Failed to write logfile, new friendships are created.4";
if(fclose($file)){
echo "Logfile closed safely.5";
}
else{
echo "Failed to close logfile safely.6";
}
}
}
else{
echo "Failed to open logfile. New friendships are created.7";
}
}
}
}
}
else{
// Limiet bereikt of API niet bereikbaar
if($file = fopen("/home/---/domains/---/private_html/pauze/log/log-".date("d-m-Y").".txt", "a+")){
$write = "/==========================================
= Datum & Tijd: "
.date("d-m-Y H:i:s")." =
= Databaseverbinding: "
.$dbstatus." =
= Twitter-verbinding: "
.($apistatus == "Verbonden") ? $apistatus : $apistatus." "." =
= friendships/create: Gefaald =
= followers_ids limiet: "
.$qFetch[followers_ids]." =
= friends_ids limiet: "
.$qFetch[followers_ids]." =
= Einde logbestand =
==========================================/

"
;
if(fwrite($file, $write)){
echo "Succesfully writed logfile. Failed to follow new nice people, limit reached or API unreachable.8";
if(fclose($file)){
echo "File closed safely.9";
}
else{
echo "Failed to close logfile safely.10";
}
}
else{
echo "Failed to write logfile, failed to follow new nice people, limit reached or API unreachable.11";
if(fclose($file)){
echo "File closed safely.12";
}
else{
echo "Failed to close logfile safely13";
}
}
}
else{
echo "Failed to open logfile, failed to follow new nice people, limit reached or API unreachable.14";
}
}

// Einde follow.php
?>

toevoeging op 29 december 2014, 16:33:49:
Bij het bewerken van de code kwam ik achter de foreach, is dat probleem verklaard. Wat echter niet verklaard is, is dat de $write niet in het tekstbestand komt, maar alleen VerbondenVerbonden..
0
Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
foreach ($volgers[ids] as $i => $id) { op lijntje 36

Foreach herhaalt alles wat er tussen staat voor elk element in een array. Heb je 10 elementen in de array $volgers[ids] dan wordt alles wat daar tussenin staat 10 keer herhaald. In jouw geval dus 2 keer.
0
Bugged

Lid · Topicstarter

Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Timkb schreef:
foreach ($volgers[ids] as $i => $id) { op lijntje 36

Foreach herhaalt alles wat er tussen staat voor elk element in een array. Heb je 10 elementen in de array $volgers[ids] dan wordt alles wat daar tussenin staat 10 keer herhaald. In jouw geval dus 2 keer.
Ja precies, kwam ik net ook achter. Maar hoe zit het dan met die fwrite? Ik krijg in het text bestand alleen "VerbondenVerbonden" (2x door foreach omdat er 2 elementen in die array zijn).
0
Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Kan daar geen logische verklaring voor vinden maar probeer dit eens te wijzigen.

= Twitter-verbinding: ".($apistatus == "Verbonden") ? $apistatus : $apistatus." "." =

in

= Twitter-verbinding: ".($apistatus == "Verbonden") ? $apistatus : $apistatus.". =
0
Bugged

Lid · Topicstarter

Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Timkb schreef:
Kan daar geen logische verklaring voor vinden maar probeer dit eens te wijzigen.

= Twitter-verbinding: ".($apistatus == "Verbonden") ? $apistatus : $apistatus." "." =

in

= Twitter-verbinding: ".($apistatus == "Verbonden") ? $apistatus : $apistatus.". =
Thanks, daar lag het aan smile
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren