JS in crontab laden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daniel van Seggelen

Daniel van Seggelen

26/11/2017 16:56:52
Quote Anchor link
Via een crontab wil ik javascript laden, wat ik met node.js heb geprobleerd, om de js file te laden en daarna de php file, maar dat werkt niet.

Ik heb het met lynx, curl wget etc gebruikt om de url te laden, maar hij komt er niet door.
Ik werk via linux centos 7.

Als ik de link via de browser laad, werkt alles prima zoals het hoort.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<script src="https://cdn.steemjs.com/lib/latest/steem.min.js"></script>


<script>
<?php
gc_enable(); // Enable Garbage Collector
include ('/home/divers/domains/globalwebdevelopment.net/public_html/steem/config.php');
include (''.DOC_ROOT.'class/class.php');

ini_set('memory_limit', '1000M');

$DBD = new DBD();


ini_set('display_errors',0);
error_reporting(E_ALL);
$sel = mysqli_query($DBD->conn(),"select * from blogs WHERE posted = 0 limit 1");
while ($s = mysqli_fetch_array($sel))
{

    
    ?>

    
    steem.broadcast.comment(
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', // posting wif
    '', // author, leave blank for new post
    'steemit', // first tag
    'xxxxxxxx', // username
    '<?=$s['seo_title']?>', // permlink
    '<?=$s['title']?>', // Title
    '<?=$s['blog_text']?>', // Body of post
    // json metadata (additional tags, app name, etc)
    { tags: ['cryptocurrency'], app: 'cryptocurrency news' },
    function (err, result) {
      if (err)
        alert('Failure! ' + err);
      else
        alert('Success!');
    }
  );
  <?php
 $i
= mysqli_query($DBD->conn(),"update blogs set posted = 1 where id = '".$s['id']."'");
  }
?>


</script>
 
PHP hulp

PHP hulp

21/11/2024 14:29:27
 
Pipo Clown

Pipo Clown

26/11/2017 17:59:49
Quote Anchor link
Dat zal nog niet mee gaan vallen.

Javascript draait op de client PC terwijl de cronjob op de server PC draait.
 
Daniel van Seggelen

Daniel van Seggelen

26/11/2017 18:07:50
Quote Anchor link
Ik lees dat het met node.js zou moeten kunnen, maar het lijkt niet van de grond te komen
 
- Ariën  -
Beheerder

- Ariën -

26/11/2017 18:21:24
Quote Anchor link
Of kijken in de network-tab van je browser waar de request naar toe gaat, en dan deze met PHP uitvoeren.
Gewijzigd op 26/11/2017 18:23:11 door - Ariën -
 
Daniel van Seggelen

Daniel van Seggelen

26/11/2017 18:26:56
Quote Anchor link
Dat heb ik gedaan, hij gaat uiteindelijk hier naartoe:

steemd.steemit.com
101
Switching Protocols
websocket steem.min.js:5
Script

Maar ik zie niet welke var namen worden meegegeven.
 
- Ariën  -
Beheerder

- Ariën -

26/11/2017 18:33:01
Quote Anchor link
Hm... Een websocket. Je zou dus wel iets met node.js moeten doen. Geen idee hoe en wat omdat mijn ervaring hier niet toe reikt.
 
Thomas van den Heuvel

Thomas van den Heuvel

26/11/2017 19:11:57
Quote Anchor link
Sowieso, het bovenstaande script is asynchroon: alle PHP-code wordt uitgevoerd, en parallel wordt je JavaScript aangezwengeld (als dat al zou werken). Er is dus geen enkele garantie dat dingen ook daadwerkelijk worden gepost omdat de PHP- en JavaScript code apart / parallel worden verwerkt. Ook wacht de PHP-code dus niet op de respons van JavaScript. Deze wordt niet eens geinspecteerd maar er wordt blind vanuit gegaan dat de operatie is geslaagd?

Wat voor oplossing je ook gebruikt, je zult moeten "wachten op het resultaat/antwoord", en dan, als er een seintje wordt gegeven dat het remote proces klaar is, zou er een callback-functie moeten worden uitgevoerd (denk aan een success() blok in een AJAX-call) waarin er een respons-bericht geinspecteerd moet worden waarin -hopelijk- de status van de actie (geslaagd/niet geslaagd) wordt gecommuniceerd op grond waarvan je (al dan niet) een vervolgactie onderneemt.

Mogelijk bestaat er een implementatie van het "steem"-protocol in PHP? Als het even kan lijkt het mij het eenvoudigst om je technologie-stack zo simpel mogelijk te houden. Als je alles binnen PHP kunt houden zou dat de voorkeur verdienen lijkt mij.
 
Ben van Velzen

Ben van Velzen

26/11/2017 21:30:56
Quote Anchor link
Je zou natuurlijk naar PhantomJS kunnen kijken, hier even een script omheen bouwen en klaar. Netjes is dat niet, maar oké.
 



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.