Formulier automatisch verzenden op een bepaald tijdstip.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ronald Broos

Ronald Broos

22/11/2015 18:54:49
Quote Anchor link
Ik heb een pagina, waarin een formulier elke week iets moet posten in een database. Momenteel doe ik dat handmatig maar dat werkt niet echt lekker. De inhoud van het formulier wordt reeds automatisch opgehaald. Ik zoek alleen nog een oplossing om het elke week automatisch naar de database te schrijven. Iemand een voorzetje of uitleg hoe ik dit realiseer?
 
PHP hulp

PHP hulp

16/11/2024 17:44:29
 
Eddy E

Eddy E

22/11/2015 19:01:52
Quote Anchor link
Waarom niet het hele formulier overslaan en direct in het opsla-formulier de gegevens opnieuw opslaan...?


Of is het een extern formulier (dus niet in jouw beheer)?
Met cURL() (google maar) is dat gemakkelijk te doen.
 
- Ariën  -
Beheerder

- Ariën -

22/11/2015 19:02:32
Quote Anchor link
Formulieren zijn vooral bedoeld voor menselijke interactie.

Beter doe je er verstandig aan om een nieuw script te maken die bij elke uitvoer de data ophaalt en vervolgens opslaat. Met een cronjob of 'geplande taak' kan je dit op vaste tijden uitvoeren.
 
Ronald Broos

Ronald Broos

22/11/2015 19:10:25
Quote Anchor link
Ik snap wat je bedoelt, helaas is mijn php kennis niet zo groot, ben meer een hobbyist. Het cron gedeelte dat gaat wel lukken. Kun je me een voorbeeld geven hoe ik het script het beste kan maken?
 
- Ariën  -
Beheerder

- Ariën -

22/11/2015 19:19:24
Quote Anchor link
Het ligt er eerst aan hoe je de data ophaalt. Dus als je wat uitgebreider kan vertellen?
 
Ronald Broos

Ronald Broos

22/11/2015 19:25:26
Quote Anchor link
De data die wordt opgehaald is content uit de broncode van een pagina, welke elke week gewijzigd wordt. Deze informatie wordt nu automatisch geladen in de textarea van een formulier. Dit wordt vervolgens handmatig naar Mysql geschreven om zo een archief op te bouwen. Die laatste handmatige stap wil ik eruit halen.
 
Marthijn Buijs

Marthijn Buijs

22/11/2015 19:29:05
Quote Anchor link
Waarom niet meteen in database opslaan?
 
- Ariën  -
Beheerder

- Ariën -

22/11/2015 19:29:50
Quote Anchor link
Waardes die automatisch in het formulier staan nu direct in de query plaatsen, en de formulier-verstuur-controle eruit.
 
Ivo P

Ivo P

22/11/2015 20:21:58
Quote Anchor link
dus ipv

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<textarea><?php echo htmlspecialchars($variabele); ?></textarea>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$sql = "INSERT INTO tabel (kolom, kolom2) VALUES ('dummy', '" . escapeit($variabele) ."')";

// voer query uit
 
Ronald Broos

Ronald Broos

22/11/2015 20:56:45
Quote Anchor link
Dit is zo ongeveer het werkende script met formulier, Ik kom er niet aan uit helaas. titel en bericht moeten mee verwerkt worden....

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
<?php
$host
= 'localhost';
$user = 'user';
$pass = 'wachtwoord';
$database = 'user1';
mysql_connect($host,$user,$pass) or die("Er kan geen verbinding gemaakt worden met de database.");
mysql_select_db($database);


if ($_POST[bevestiging] == 1) {
    $sql = "INSERT INTO overzicht SET ";
    $sql .= "id = ''";
    $sql .= ", titel = '" . $_POST['titel'] . "'";
    $sql .= ", bericht = '" . $_POST['bericht'] . "'";
    $res = mysql_query($sql);
    $_POST[bevestiging] = "";
}
else {
    echo"
        <form action=\"bestand.php\" method=\"POST\">
            <input type=\"hidden\" value=\"1\" name=\"bevestiging\" /><br />
            <input type=\"text\" size=\"100\" name=\"titel\" value=\"overzicht - "
; ?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
//Week:
echo"Week ";

echo date("W",time());

echo " - ";
//jaar:
echo date("Y",time());
?>





Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php echo"
\" /><br /><br>

            <textarea rows=\"40\" cols=\"120\" name=\"bericht\">"
;?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$content
= file_get_contents('http://website.nu/folder/file.php/');
if ($content !== false) {
   // do something with the content

echo "$content" ;

}
else {
   // an error happened
   echo "FOUT!";
}

?>







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

echo"
</textarea><br />
            <input type=\"reset\" value=\"Reset\" />
            <input type=\"submit\" value=\"Submit\" />
        </form>
    "
;
}


echo"<a href=\"terug.php\">Ga terug</a>";

?>
 
- Ariën  -
Beheerder

- Ariën -

22/11/2015 21:16:08
Quote Anchor link
Je formulier en de afhandeling kan er uit. Doe dat eerst eens.
 
Marthijn Buijs

Marthijn Buijs

22/11/2015 21:38:49
Quote Anchor link
Formulier is niet nodig toch?
En volgensmij klopt je query niet echt.
 
Ivo P

Ivo P

22/11/2015 21:51:38
Quote Anchor link
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
<?php

$content
= file_get_contents('http://website.nu/folder/file.php/');
if ($content !== false) {
  
  $host = 'localhost';
  $user = 'user';
  $pass = 'wachtwoord';
  $database = 'user1';
  mysql_connect($host,$user,$pass) or die("Er kan geen verbinding gemaakt worden met de database.");
  mysql_select_db($database);
 
  $sql =  "INSERT INTO overzicht (titel, bericht) VALUES ('de titel', '" . mysql_real_escape_string($content)."')";
  $res = mysql_query($sql) or echo mysql_error();
}

?>


Toevoeging op 22/11/2015 21:52:40:

en natuurlijk nog een opmerking om eens naar mysqli en/of pdo te kijken, aangezien die mysql-verhaal verouderd is
 
Peter K

Peter K

23/11/2015 13:05:55
Quote Anchor link
Met behulp van een cronjob kun je het script één keer in de week laten draaien.
 



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.