hoe tekst html bestand importeren in formulier en
Ik ben al even bezig, maat ik kan niet echt vinden hie ik dit voor elkaar kan krijgen. Hopelijk dat iemand van jullie hier kennis van heeft. bij voorbaat dank.
Onderstaand het formulier dat in een bestand staat.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<form action="post-method.php" method="post">
<textarea rows = "30" cols = "150" name = "mytext">
</textarea>
<input type="submit" name="submit" /> </form>
<textarea rows = "30" cols = "150" name = "mytext">
</textarea>
<input type="submit" name="submit" /> </form>
Onderstaand het php bestand. de server gegevens heb ik even weggehaald
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$username = "dbtest";
$password = "geheim";
$dbname = "dbs00001111";
$conn = new mysqli($servername, $username, $password, $dbname); // Create connection
if ($conn->connect_error) { // Check connection
die("Connection failed: " . $conn->connect_error);
}
$myfile2= "test.html"; // or .php
$string2 = file_get_contents($myfile2);
$replace2 = $_REQUEST['mytext'];
$content2 = preg_replace('#(<p[^>]*>).*?(</p>)#', '$1'.$replace2.'$2', $string2);
file_put_contents($myfile2, $content2);
echo $content2;
echo $mytext;
?>
$username = "dbtest";
$password = "geheim";
$dbname = "dbs00001111";
$conn = new mysqli($servername, $username, $password, $dbname); // Create connection
if ($conn->connect_error) { // Check connection
die("Connection failed: " . $conn->connect_error);
}
$myfile2= "test.html"; // or .php
$string2 = file_get_contents($myfile2);
$replace2 = $_REQUEST['mytext'];
$content2 = preg_replace('#(<p[^>]*>).*?(</p>)#', '$1'.$replace2.'$2', $string2);
file_put_contents($myfile2, $content2);
echo $content2;
echo $mytext;
?>
Gewijzigd op 07/01/2022 22:46:03 door - Ariën -
Toevoeging op 05/01/2022 14:54:24:
ben er nog eens ingedoken, maar krijg het niet voor elkaar.
tekst_template.html
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<style>
h1 { font-style: italic; }
p { font-weight: bold; }
</style>
<h1>Template</h1>
<p>{TEXTAREA}</p>
h1 { font-style: italic; }
p { font-weight: bold; }
</style>
<h1>Template</h1>
<p>{TEXTAREA}</p>
Het PHP bestand
Code (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
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
<?php
$tekst_template = "tekst_template.html";
$template = file_get_contents( $tekst_template );
$_REQUEST['mytext'] = 'Komt van FORM TEXTAREA';
$replace = $_REQUEST['mytext'];
$template = preg_replace( '^\{TEXTAREA\}^', $replace, $template );
$file_out = 'tekst_uit.html';
file_put_contents( $file_out, $template );
echo '<h3>Van TEXTAREA FORM</h3>';
echo $replace;
echo '<hr />';
echo '<h3>Vervangen in template</h3>';
echo $template;
echo '<hr />';
echo '<h3>Uitvoerbestand</h3>';
include($file_out);
?>
$tekst_template = "tekst_template.html";
$template = file_get_contents( $tekst_template );
$_REQUEST['mytext'] = 'Komt van FORM TEXTAREA';
$replace = $_REQUEST['mytext'];
$template = preg_replace( '^\{TEXTAREA\}^', $replace, $template );
$file_out = 'tekst_uit.html';
file_put_contents( $file_out, $template );
echo '<h3>Van TEXTAREA FORM</h3>';
echo $replace;
echo '<hr />';
echo '<h3>Vervangen in template</h3>';
echo $template;
echo '<hr />';
echo '<h3>Uitvoerbestand</h3>';
include($file_out);
?>
Toevoeging op 05/01/2022 16:39:34:
Zag over het hoofd dat de ingevoerde tekst eer in het textarea moest verschijnen.
Dan zo maar .
Code (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
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
<?php
if( $_POST['submit'] )
{
$tekst_template = "tekst_template.html";
$template = file_get_contents( $tekst_template );
//$_REQUEST['mytext'] = 'Komt van FORM TEXTAREA';
$replace = $_REQUEST['mytext'];
$template = preg_replace( '^\{TEXTAREA\}^', $replace, $template );
$file_out = 'tekst_uit.html';
file_put_contents( $file_out, $template );
echo '<h3>Van FORM TEXTAREA</h3>';
echo $replace;
echo '<hr />';
echo '<h3>Vervangen in template</h3>';
echo $template;
echo '<hr />';
echo '<h3>Uitvoerbestand</h3>';
include($file_out);
}
?>
<form method="post">
<textarea rows = "30" cols = "150" name = "mytext">
<?php echo $replace; ?>
</textarea>
<input type="submit" name="submit" />
</form>
if( $_POST['submit'] )
{
$tekst_template = "tekst_template.html";
$template = file_get_contents( $tekst_template );
//$_REQUEST['mytext'] = 'Komt van FORM TEXTAREA';
$replace = $_REQUEST['mytext'];
$template = preg_replace( '^\{TEXTAREA\}^', $replace, $template );
$file_out = 'tekst_uit.html';
file_put_contents( $file_out, $template );
echo '<h3>Van FORM TEXTAREA</h3>';
echo $replace;
echo '<hr />';
echo '<h3>Vervangen in template</h3>';
echo $template;
echo '<hr />';
echo '<h3>Uitvoerbestand</h3>';
include($file_out);
}
?>
<form method="post">
<textarea rows = "30" cols = "150" name = "mytext">
<?php echo $replace; ?>
</textarea>
<input type="submit" name="submit" />
</form>
Toevoeging op 05/01/2022 17:00:43:
oh sorry. laatste bericht gemist van je.
Toevoeging op 05/01/2022 17:10:10:
Super bedankt werkt zo ja. Ik zoek alleen nog een manier dat wanneer ik alles heb afgesloten en het php bestand weer open de textare in het formulier al met de content wordt gevuld.
Even een vraag tussendoor ... waarom wil je dingen in een bestand schrijven en niet in de database? (Ik stel deze vraag voor de zekerheid om wellicht te voorkomen dat je helemaal in de verkeerde richting bezig bent.)
Ja een database kan ook natuurlijk. maakt dat alles eenvoudiger?
Zeker, vooral omdat je alles netjes kan ordenen, sorteren en filteren.
Toevoeging op 05/01/2022 18:21:40:
ben trouwens bezig met een cms systeem op te zetten waarin de bezoeker html elementen kan kiezen per rij.
Vervolgens moet het ook mogelijk zijn om de tekst daarin weer aan te passen etc etc..
is veel werk, maar wel leuk om te doen.
Oké. Dat is dus niet iets om via het wegschrijven en lezen van een bestand te doen, maar via een database.
Klopt. Maar sommige aanpasssingen zijn op die manier handiger. Andere weer via een database. Maar het is wel en helse klus om voor elkaar te krijgen.
vervang_template.html
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<style>
h1 { font-style: italic; }
p { font-weight: bold; }
</style>
<h1>Template</h1>
<p><vervang></vervang></p>
h1 { font-style: italic; }
p { font-weight: bold; }
</style>
<h1>Template</h1>
<p><vervang></vervang></p>
vervang_template.php
Code (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
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
<?php
$template = "vervang_template.html";
$file_out = 'vervang.html';
if ( file_exists( $file_out ) )
{
$template = $file_out;
}
$inhoud = file_get_contents( $template );
if ( isset($_REQUEST['mytext'] ) )
{
$pattern = '^(<vervang>)(.*)(<\/vervang>)^';
$replacement = trim( $_REQUEST['mytext'] );
$resultaat = preg_replace( $pattern, '<vervang>' . $replacement . '</vervang>', $inhoud );
file_put_contents( $file_out, $resultaat );
echo '<h3>Van FORM TEXTAREA</h3>';
echo $replacement;
echo '<hr />';
echo '<h3>Vervangen in template</h3>';
echo $resultaat;
} else {
$pattern = '#<vervang>(.*)<\/vervang>#';
preg_match( $pattern, $inhoud, $matches );
$replacement = trim( $matches[1] );
}
if ( file_exists( $file_out ) )
{
echo '<hr />';
echo '<h3>Included Uitvoerbestand</h3>';
include($file_out);
}
?>
<form method="post">
<textarea rows = "20" cols = "80" name = "mytext">
<?php echo $replacement; ?>
</textarea>
<br />
<input type="submit" name="submit" />
</form>
$template = "vervang_template.html";
$file_out = 'vervang.html';
if ( file_exists( $file_out ) )
{
$template = $file_out;
}
$inhoud = file_get_contents( $template );
if ( isset($_REQUEST['mytext'] ) )
{
$pattern = '^(<vervang>)(.*)(<\/vervang>)^';
$replacement = trim( $_REQUEST['mytext'] );
$resultaat = preg_replace( $pattern, '<vervang>' . $replacement . '</vervang>', $inhoud );
file_put_contents( $file_out, $resultaat );
echo '<h3>Van FORM TEXTAREA</h3>';
echo $replacement;
echo '<hr />';
echo '<h3>Vervangen in template</h3>';
echo $resultaat;
} else {
$pattern = '#<vervang>(.*)<\/vervang>#';
preg_match( $pattern, $inhoud, $matches );
$replacement = trim( $matches[1] );
}
if ( file_exists( $file_out ) )
{
echo '<hr />';
echo '<h3>Included Uitvoerbestand</h3>';
include($file_out);
}
?>
<form method="post">
<textarea rows = "20" cols = "80" name = "mytext">
<?php echo $replacement; ?>
</textarea>
<br />
<input type="submit" name="submit" />
</form>
stel ik voor
Dat voorkomt dat een </textarea> tag in $replacement je form sloopt.
(of erger:
als iemand </textarea><script>eviljavascrip()</script><textarea>
op weet te slaan en jij dat later met adminrechten een keer opent.
Toevoeging op 06/01/2022 11:00:34:
Reden dat ik voorlopig niet voor een database ga is dat ik geen database wil installeren op de server van degene waar ik een website voor maak. maar ik wil degene wel de kans geven om tekst in html bestanden aan te passen, zoals titel van een pagina, tekst, tekst button etc.. etc..
Zelf maak ik wel een cms met database waarmee ik in overleg met de klant een website 1 op 1 kan bouwen. klant kan dan ook aan de andere kant van de telefoon live meekijken wat er gebeurd.
Maar met welke reden wil je geen database installeren? Draait de site al via een hostingsysteem of is het zelf gebouwd?
Toevoeging op 06/01/2022 12:10:56:
Ik heb de afgelopen tijd al heel wat html units gebouwd met bijpassende css en soms javascript. Nu is het tijd om alles zodanig inzichtelijk te maken voor de klant. En het hele systeem moet ook heel eenvoudig te gebruiken zijn. Hierbij kan de klant een pagins per rij opbouwen. en uiteindelijk is het ook de bedoeling dat bij elke rij de tekst etc.. afzonderlijk aangepast kan worden. Maar is nog heel veel werk voor de boeg.
Heb je al eens naar systemen als WordPress gekeken?
Daar zit ook wel een leercurve in, maar dan hoef je niet al deze wielen opnieuw uit te vinden
Toevoeging op 06/01/2022 12:28:46:
en bovendien weet ik 100% wat er op de achtergrond gebeurd. en dat is wel een lekker gevoel. Met wordpress zit je toch vast aan thema's etc. ik kan bijv. nu een unit bouwen en die simpelweg toevoegen.
Toevoeging op 06/01/2022 12:31:28:
In 2005 hadden ze echter helemaal geen cms. het verschil wat ik nu bied. ze krijgen uiteindelijk een statische website (met beetje cms ingebouwd). Bovendien kunnen ze live 1 op 1 meekijken wanneer de site wordt opgebouwd. Deed men dat ook in 2005? er zijn trouwens nog genoeg bouwers die puur statische websites maken. Een statische website heeft ook voordelen. Is namelijk ook sneller met minimale code en er hoeft geen grote database geladen te worden
Toevoeging op 06/01/2022 12:34:20:
Ik hoor vaak van mensen dat ze een site willen hebben en vragen wat kan ik verwachten? kan ik al wat zien?. Wat men dan doet is voorbeeld sites tonen. Maar met de werkwijze van mij kunnen ze gelijk al kiesen en direct de site dus live opbouwen.
Toevoeging op 07/01/2022 09:33:29:
Ik ben er even mee bezig geweest. ik vraag mij alleen af of het noodzakelijk is om <p><vervang></vervang></p>
te gebruiken. Kan dit ook niet zonder de <vervang></vervang>. dus alles ook na evt classes etc vervangen doormiddel van deze preg_replace
preg_replace('#(<p[^>]*>).*?(</p>)#', '$1'.$replace2.'$2', $string2);
Wat is het voordeel van <vervang></vervang> ? In het uitvoerbestand komen deze immmers ook te staan. Wat is beter en functioneler?
Voordeel van <vervang> is om dit probleem te voorkomen :
https://www.phphulp.nl/php/forum/topic/synthax-voor-specifieke-pregreplace/104218/
preg_replace('#(<p[^>]*>).*?(</p>)#', '$1'.$replacement.'$2', $inhoud);
Op welk probleem doel je precies? Er was toch een goed alternatief geboden of zie ik iets over het hoofd?
aan de andere kant aangezien ik altijd precies weet wat ik wil vervangen is het dan wellicht beter om bij ales wat ik wil vervangen <replace></replace> neer te zetten of bij meerdere tags een andere unieke naam zoals replace2 etc. etc..
Stel dat je bijvoorbeeld de inhoud tussen <p> en </p> vervangt, wat gebeurt er dan als de klant in het te vervangen stuk vrolijk wat <p></p> en misschien wel <h1></h1> tussen plaatst. Wat zou er gebeuren bij een volgende vervang actie?
Ik zou er nog eens goed over nadenken, maar de keuze is uiteraard aan jou.