Ik heb een pagina gemaakt waarmee ik iemand de mogelijkheid wil geven om een artikel op zijn site uitgesteld te plaatsen. Timer werkt. Maar Submit werkt niet. Het is geen Wordpressite en ook geen cronjob op server.

De code:

<!DOCTYPE html>
<HEAD>
<TITLE>Count Down Timer</TITLE>
<style>
input[type=submit]  {
    padding:5px 15px; 
    background:red; 
    color:#ffffff;
    border:0 none;
    cursor:pointer;
    -webkit-border-radius: 5px;
    border-radius: 5px; 
}

input[type=text] {
     background:aliceblue;
     color:green;
     font-weight: bold;
}

textarea {
     background:aliceblue;
     color:green;
     font-weight: bold;
}

h1 {
     color:red;
}
</style>
<SCRIPT>
var running = false
var endTime = null
var timerID = null
function startTimer(duration) {
    running = true
    now = new Date()
    now = now.getTime()
    // change last multiple for the number of minutes
    endTime = now + (1000 * 60 * duration)
    showCountDown()
    document.getElementById("submit").disabled = true
}

function showCountDown() {
    var now = new Date()
    now = now.getTime()
    if (endTime - now <= 0) {
        stopTimer('Einde')
        formSubmit()
        //  of alert("Time is up.  Put down your pencils.")
    } else {
        var delta = new Date(endTime - now)
        var theMin = delta.getMinutes()
        var theSec = delta.getSeconds()
        var theHour = delta.getHours() -1
        var theTime = ((theMin < 10) ? "0" : "") + theMin
        theTime +=  ((theSec < 10) ? ":0" : ":") + theSec
        document.forms[0].timerDisplay.value = "resttijd: "+ ((theHour<1) ? "0":theHour) + ":" +theTime
        if (running) {
            timerID = setTimeout("showCountDown()",1000)
        }
    }
}

function stopTimer(status) {
    clearTimeout(timerID)
    running = false
    document.forms[0].timerDisplay.value = status
    document.getElementById("submit").disabled = false
}

function formSubmit() {
    //activate submit button
    document.getElementById("submit").disabled = false;
    //and submit form
    document.getElementById("MyForm").submit();
} 
</SCRIPT>
</HEAD>
<BODY>
<center>
<h2>Artikel plaatsen</h2>
</center>
<FORM name="MyForm" id=MyForm" action="PlaatsArtikel.php" onkeypress="return event.keyCode != 13;">
      <center>
      Kopzin<br>
      <INPUT TYPE="text" NAME="KopArtikel" PLACEHOLDER="Kopzin" SIZE="100" required ><br><br>
      Tekst<br>
      <TEXTAREA ROWS="8" COLS="100" NAME="BodyArtikel" PLACEHOLDER="Tekst" required></TEXTAREA>
     <br><hr width="65%">
     Klik "verstuur nu" of klik op een van onderstaande knoppen voor uitgesteld verzenden.<br>
     <INPUT TYPE="button" NAME="startTime" VALUE="1 minuut" onClick="startTimer(1)">
     <INPUT TYPE="button" NAME="startTime" VALUE="1 uur" onClick="startTimer(60)">
     <INPUT TYPE="button" NAME="startTime" VALUE="3 uur" onClick="startTimer(180)">
     <INPUT TYPE="button" NAME="startTime" VALUE="6 uur" onClick="startTimer(360)">
     <INPUT TYPE="button" NAME="startTime" VALUE="9 uur" onClick="startTimer(540)">     
     <INPUT TYPE="button" NAME="startTime" VALUE="12 uur" onClick="startTimer(720)">     
     <br><br>
     <INPUT TYPE="button" NAME="clearTime" VALUE="Stop Timer" onClick="stopTimer('Gestopt!')" style="color:red;">
     <INPUT TYPE="text" NAME="timerDisplay" VALUE="00:00" Size="17">
     <br><br><hr width="65%"><center>
     <INPUT TYPE="submit" id="submit" NAME="submit" Value="Verstuur Nu" >
     </form>
</FORM>
</BODY>
</HTML>


Graag jullie hulp.
Een artikel staat op de server, neem ik aan, en dan neem ik meteen aan dat dit in een database staat?
Dan is het juist de bedoeling dat je dit server-side moet regelen.

De timer die dan bepaalt of de review mag worden bekeken staat dan in de query:
SELECT id,title,content,date_posted FROM reviews WHERE id = '42' AND date_posted <= NOW()


Hoi Ariën, hij heeft helemaal niets. De artikelen worden live geplaatst. Dus ik dacht dan aan de browserkant eea uit te stellen. Uiteraard moet hij de computer aan laten staan, om te plaatsen. Plaatsing op server is direct vanaf zijn huidige formulier. Daarom had ik dit bedacht.
JavaScript is client-side en wordt de computer van de bezoeker uitgevoerd. Google en andere bots kunnen je review dan voortijdig indexeren, bezoekers kunnen je review voortijdig lezen. met andere woorden: met jouw optie bereik je weinig.

De vraag is nog steeds: Hoe plaatst hij zijn artikelen dan online, en waar slaat hij die dan op?
Het zijn allemaal tekstbestanden. Het laatste bestand heet “nws-artikel.txt” en dat wordt door php op de pagina getoond. En wat er niet is, wordt dus niet geïndexeerd. Een nieuw artikel wordt gewoon over de oude geschreven. Erg simpel. Maar voor hem werkt het.
Dan kan je beter op de php-pagina de beveiliging inbouwen. Ik neem aan dat er ergens een datum wordt opgeslagen, anders bereik je nog niks.

Met een database werkt het wel stukken makkelijker. Vooral al je extra data wilt opslaan, of dingen wilt koppelen. Als je het simpel wilt doen zou WordPress ook prima voldoen.
Ik bedacht dit formulier waar hij dus de inhoud kan invoeren. De timer aanklikken en vervolgens wordt door de browser het artikel, formulier geplaatst. Zo simpel mogelijk. Het zou dus lukken als het formulier na de countdown wordt gesumbitted. Een php-pagina wordt, uiteraard beveiligd, aangeroepen en die plaatst dan het artikel. Maar wellicht te simpel bedacht door mij.
Dus je moet constant je PC aan hebben staan voor jouw situatie, begrijp ik.
Niet echt handig. Stel je voor dat deze uitvalt, er een stroomstoring is of heel simpel je browser opeens wordt afgesloten. Dan kan je lang wachten totdat die online komt te staan.

De beste oplossing is om het artikel gewoon online te zetten, maar met een publicatiedatum. De server bepaald dan of iemand hem wel of niet mag bekijken.

Je kan dan zelfs tijdens vakanties of tijdens je afwezigheid een artikel inplannen.

Waarom gebruik je geen Wordpress? Is in een handomdraai geinstalleerd, en je kan ook gepland berichten uitvoeren.
Dat moet zijn hele site overgezet gaan worden. Dus had ik deze tussenoplossing bedacht. Wellicht te simpel. Nu kan ik niets verder doen voor hem.
Ik had voorgesteld om over te stappen op Wordpress. Maar wil hij nog niet. Dank voor jouw advies in deze.

Reageren