hoe tekst html bestand importeren in formulier en

Overzicht

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 4 volgende »

Paul Weiss

Paul Weiss

05/01/2022 13:06:37
Anchor link
Hallo. Ben lekker bezig met php. Ik heb een html formulier waarbij de ingevoerde waarde wordt doorgestuurd naar en php-bestand die deze weer schrijft in een extern html bestand (test.html). het werkt allemaal prima, dankzij ook hulp van dit forum. Echter ik zoek een manier hoe ik de content van test.html weer opnieuw kan inlezen en in een formulier kan importeren en deze dan kan aanpassen en dan tegelijk ook weer opnieuw kan opslaan in test.html.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


Onderstaand het php bestand. de server gegevens heb ik even weggehaald
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
<?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;

?>
Gewijzigd op 07/01/2022 22:46:03 door - Ariën -
 
PHP hulp

PHP hulp

19/08/2022 15:19:24
 
- Ariën  -
Beheerder

- Ariën -

05/01/2022 13:08:57
Anchor link
Je hebt vast wel wat aan file_put_contents.
 
Paul Weiss

Paul Weiss

05/01/2022 13:12:31
Anchor link
is toch om volgens mij om data erin te schrijven? Wat ik wil bereiken is dat ik een form open en dat de content van het bestand test.html weer opnieuw verschijnt. Ik weet wel hoe ik de content in een variable kan opslaan, maar geen idee hoe ik dit dan in een html form kan importeren. Heb wel gelezen van method "get" maar daar kom ik niet aan uit.

Toevoeging op 05/01/2022 14:54:24:

ben er nog eens ingedoken, maar krijg het niet voor elkaar.
 
Adoptive Solution

Adoptive Solution

05/01/2022 16:05:55
Anchor link
Heb dit ervan gemaakt.

tekst_template.html

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<style>
h1 { font-style: italic; }
p  { font-weight: bold; }
</style>

<h1>Template</h1>

<p>{TEXTAREA}</p>


Het PHP bestand

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
<?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);

?>


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)
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
<?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>
 
Paul Weiss

Paul Weiss

05/01/2022 16:58:56
Anchor link
Bedankt voor de input. Echter ik wil de content kunnen aanpassen. Dus Nadat de content is weggeschreven naar het bestand, wil ik de content weer terug inlezen zodat deze in een formulier kan worden aangepast en weer opnieuw kan worden weggeschreven.

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.
 
Ozzie PHP

Ozzie PHP

05/01/2022 17:39:42
Anchor link
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.)
 
Paul Weiss

Paul Weiss

05/01/2022 17:45:05
Anchor link
Ja een database kan ook natuurlijk. maakt dat alles eenvoudiger?
 
- Ariën  -
Beheerder

- Ariën -

05/01/2022 18:10:07
Anchor link
Zeker, vooral omdat je alles netjes kan ordenen, sorteren en filteren.
 
Paul Weiss

Paul Weiss

05/01/2022 18:19:57
Anchor link
super bedankt het is trouwens overigens ook gelukt om de data weer in te lezen vanaf het bestand zodat deze bij openen van de php weer gelijk wordt getoond.

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.
 
Ozzie PHP

Ozzie PHP

05/01/2022 20:35:30
Anchor link
Oké. Dat is dus niet iets om via het wegschrijven en lezen van een bestand te doen, maar via een database.
 
Paul Weiss

Paul Weiss

05/01/2022 22:28:42
Anchor link
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.
 
Adoptive Solution

Adoptive Solution

06/01/2022 10:13:16
Anchor link
Wellicht helpt deze oplossing.

vervang_template.html

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<style>
h1 { font-style: italic; }
p  { font-weight: bold; }
</style>

<h1>Template</h1>

<p><vervang></vervang></p>


vervang_template.php

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
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>
 
Ivo P

Ivo P

06/01/2022 10:36:20
Anchor link
ipv
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $replacement; ?>


stel ik voor
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo htmlspecialchars($replacement); ?>


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.
 
Paul Weiss

Paul Weiss

06/01/2022 10:49:40
Anchor link
Bedankt voor jullie de reacties. Wordt zeer gewaardeerd.

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.
 
- Ariën  -
Beheerder

- Ariën -

06/01/2022 11:49:25
Anchor link
Maar met welke reden wil je geen database installeren? Draait de site al via een hostingsysteem of is het zelf gebouwd?
 
Paul Weiss

Paul Weiss

06/01/2022 12:07:40
Anchor link
Wordt zelf gebouwd. en wil het de klant zo makkelijk mogen maken. Uiteindeijk krijgt de klant gewoon een statische website die op enkele punten slechts aangepast kan worden, maar dan zonder database.

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.
 
Ivo P

Ivo P

06/01/2022 12:19:22
Anchor link
Zoals dat veel in 2005 gedaan werd....

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
 
Paul Weiss

Paul Weiss

06/01/2022 12:27:08
Anchor link
nee ik wil geen wordpress. ik wil juist voor klant iets maken waar ik geen omkijken naar heb. Met wordpress moet je uiteindelijk toch updates in de gaten houden etc.. anders kan je website vastlopen of dingen niet meer doen. dat wil ik voorkomen. Bovendien wil ik veel de vrije hand hebben, wat met een statische website wel is. Bovendien is wordpress voor veel leken te moeilijk om evt. te beheren. Ik wil de klant juist iets hebben wat 100% draait zonder omkijken. vandaar mijn keuze een compleet eigen systeem en werkwijze.

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?
 
Adoptive Solution

Adoptive Solution

07/01/2022 11:20:17
Anchor link
Vervang <vervang> en </vervang> door <p> en </p> en je krijgt hetzelfde resultaat.

Voordeel van <vervang> is om dit probleem te voorkomen :

https://www.phphulp.nl/php/forum/topic/synthax-voor-specifieke-pregreplace/104218/
 
Paul Weiss

Paul Weiss

07/01/2022 11:49:19
Anchor link
Als ik de <vervang> weghaal wat zou dan dan de preg_match moeten worden dus in het geval ik onderstaande preg_replace gebruik?:

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..
 
Ozzie PHP

Ozzie PHP

07/01/2022 12:32:48
Anchor link
Ik ben niet uit op een lange discussie omdat ik het gevoel heb dat jij daar niet voor openstaat, maar de gekozen aanpak met het vervangen van stukken tekst in een file is wat mij betreft echt niet de juiste aanpak. Vrijwel niemand doet dat op die manier, tenzij er een specifieke reden is (bijvoorbeeld omdat de content ergens anders vandaan wordt binnengehaald). Je haalt je nu een hoop onnodige ellende op de hals. Dit zijn typisch dingen die je via een database behoort te regelen. Je gebruikt dan een vaste template en de variabele data haal je op uit de database. Het geheel zou je eventueel daarna nog kunnen cachen.

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.
 

Pagina: 1 2 3 4 volgende »

 

Dit topic is gesloten.



Overzicht

 
 

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.