Formulier voor invullen HTML velden

Status
Niet open voor verdere reacties.

Smartguy

Meubilair
Lid geworden
13 jul 2001
Berichten
7.240
Wie weet of het makkelijk is een formulier in bijvoorbeeld PHP te maken waarmee men op een makkelijke manier een nieuwe html pagina kan aanmaken. En waar vind ik hier een tutorial voor?

Hieronder een voorbeeld van een html code waarbij ik zou willen dat een nieuwe htmlpagina met de velden naam, afdeling, etc. doormiddel van een formulier aangemaakt kunnen worden.

Code:
<HTML>
<HEAD>
<TITLE>Profiel</TITLE>
<LINK HREF="../opmaak.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY>
<table align="center"width="100%" height="100%" border="1">
  <tr>
    <th scope="row" align="center" colspan="2"><img src="gebruiker.jpg" /></th>
  </tr>
  <tr>
    <th scope="row" align="left">Naam</th>
    <td align="center">Henk</td>
  </tr>
  <tr>
    <th scope="row" align="left">Afdeling</th>
    <td align="center">Financieel</td>
  </tr>
    <tr>
    <th scope="row" align="left">Locatie</th>
    <td align="center">Eindhoven</td>
  </tr>
    <tr>
    <th scope="row" align="left">Functie</th>
    <td align="center">Boekhouding</td>
  </tr>
    <tr>
    <th scope="row" align="left">Voornaamste taken</th>
    <td align="center">Dit en dat</td>
  </tr>
    <tr>
    <th scope="row" align="left">Postadres</th>
    <td align="center">.....</td>
  </tr>
    <tr>
    <th scope="row" align="left">Telefoonnummer</th>
    <td align="center">012-3456789</td>
  </tr>
      <tr>
    <th scope="row" align="left">Mobiel</th>
    <td align="center">&nbsp;</td>
  </tr>
    <tr>
    <th scope="row" align="left">E-mailadres</th>
    <td align="center"><a href="mailto:adres@home.nl">adres@home.nl</a></td>
  </tr>
    <tr>
    <th scope="row" align="left">Persoonlijke noot</th>
    <td align="center">Blablabla</td>
  </tr>
</table>
</BODY>
</HTML>
 
Ik kan me zo 3 manieren bedenken.

1.Je zou gebruik kunnen maken van templates.

2.Je zou de volledige html code kunnen wegschrijven naar een .html bestand. (zelfde methode als wegschrijven naar textbestand. Alleen noem je het txt bestand .html)

3. Je zou al je tekst in een mysql tabel kunnen zetten en deze vervolgens weer kunnen laden.
 
Hey,

Ik denk dat ik mijn vraag fout heb gesteld. Daarom heb ik maar even wat voorbeeldjes gemaakt.

Ik zou willen dat als men onderstaand formulier (dit is een voorbeeld!) invult...
formulier.jpg


dit de ingevulde velden automatisch in de HTML-code verwerkt met zoiets (dit is een voorbeeld!) als resultaat:
resultaat.jpg
 
...
dit de ingevulde velden automatisch in de HTML-code verwerkt met zoiets (verwerken kan op meer wijze met php dus de vraag is nog niet echt duidelijk voor mij !)

ik heb even een php scriptje gemaakt dat html bestanden aanmaakt

formulier.php(of.html)

HTML:
<table>
<form action="stuur.php" method="post" enctype="multipart/form-data">
<tr><td>bestandsnaam: </td><td><input type="text"name="besnaam"></td></tr>
<tr><td>naam: </td><td><input type="text"name="naam"></td></tr>
<tr><td>afdeling: </td><td><input type="text"name="afdeling"></td></tr>
<tr><td>lokatie: </td><td><input type="text"name="lokatie"></td></tr>
<tr><td>functie: </td><td><input type="text"name="functie"></td></tr>
<tr><td>afbeelding: </td><td><input type="file"name="bestand"></td></tr>
<input type="hidden" name="MAX_FILE_SIZE" value="50000000" />
<tr><td></td><td><input type="submit" name="submit" value="  verstuur  "></td></tr>
</form>
</table>

stuur.php
PHP:
<?php
$staPHPtoe = false; //kunnen mensen een php extensie invullen? (true/false)

$bestandsnaam = $_POST['besnaam'];
$naam = $_POST['naam'];
$afdeling = $_POST['afdeling'];
$lokatie = $_POST['lokatie'];
$functie = $_POST['functie'];
$file = $_FILES['bestand']['name'];

if (is_uploaded_file($_FILES['bestand']['tmp_name'])) {  
	move_uploaded_file($_FILES['bestand']['tmp_name'], "files/upload/" . $file);
}else die("kon niet worden geupload contact de admin voor verder hulp");


$bericht = "<center>
<table border=\"1\">
<tr><th colspan=\"2\"><img src=\"upload/$file\" alt=\"$file\"></th></tr>
<tr><td>naam:</td><td>$naam</td></tr>
<tr><td>afdeling:</td><td>$afdeling</td></tr>
<tr><td>lokatie:</td><td>$lokatie</td></tr>
<tr><td>functie:</td><td>$functie</td></tr>
</table>
</center>";

if(preg_match("€.*?\.htm[l]?\Z€i",$bestandsnaam)){
	$fp = fopen("files/$bestandsnaam","w");
}elseif($staPHPtoe AND preg_match("€.*?\.php\Z€i",$bestandsnaam)){ 
	$fp = fopen("files/$bestandsnaam","w");
}else die("de extensie van $bestandsnaam is niet toegestaan (let op <b>niet</b> hoofdlettergevoelig!)");

fputs($fp, $bericht);
fclose($fp)


?>
gebruiksaanwijzing:
maak een map files in de map waar deze 2 bestanden staan maak in de map files een map upload(voor de plaatjes)
dus:
-formulier.php
-stuur.php
-files > -upload
anders krijg je 4 errors.


ik hoop dat je hier wat aan hebt,er moet nog wel een check functie in die controleert of je echt wat ingevult hebt en een bestandsnaamcontroleur(jaja!) en er staat nog geen title enz in

edit -bestandsnaamcontroleur klaar
-bestandsnaamcontroleur verbeterd (hoofdletters)

ps: dit script draait voor mij goed op php 5 of het op php 4 werkt weet ik niet(ik denk het wel)
 
Laatst bewerkt:
Nogwat, jij bent de man/vrouw! Ik heb ondertussen als enigzins leek er al wat mee liggen spelen en ben tot onderstaande gekomen:


stuur.php
PHP:
<?php 

$bestandsnaam = $_POST['besnaam']; 
$naam = $_POST['naam']; 
$afdeling = $_POST['afdeling']; 
$lokatie = $_POST['lokatie']; 
$functie = $_POST['functie'];
$voortaken = $_POST['voortaken'];  
$postadres = $_POST['postadres'];  
$telnr = $_POST['telnr'];  
$mobnr = $_POST['mobnr'];  
$mail = $_POST['mail'];  
$persnoot = $_POST['persnoot'];  
$vestiging = $_POST['vestiging'];


if (is_uploaded_file($_FILES['bestand']['tmp_name'])) {   
    move_uploaded_file($_FILES['bestand']['tmp_name'], "$vestiging/$bestandsnaam.jpg"); 
}else die("U heeft geen foto gespecificeerd"); 


$bericht = "<HTML>
<HEAD>
<TITLE>$vestiging</TITLE>
<LINK HREF=\"..\opmaak.css\" REL=\"stylesheet\" TYPE=\"text/css\">
</HEAD>
<BODY>

<table align=\"center\" width=\"100%\" height=\"100%\" border=\"1\">

<tr><th scope=\"row\" align=\"center\" colspan=\"2\"><img src=\"$bestandsnaam.jpg\"></th></tr> 
<tr><th scope=\"row\" align=\"left\">Naam:</th><td>$naam &nbsp;</td></tr> 
<tr><th scope=\"row\" align=\"left\">Afdeling:</th><td>$afdeling &nbsp;</td></tr> 
<tr><th scope=\"row\" align=\"left\">Lokatie:</th><td>$lokatie &nbsp;</td></tr> 
<tr><th scope=\"row\" align=\"left\">Functie:</th><td>$functie &nbsp;</td></tr> 
<tr><th scope=\"row\" align=\"left\">Voornaamste taken:</th><td>$voortaken &nbsp;</td></tr> 
<tr><th scope=\"row\" align=\"left\">Postadres:</th><td>$postadres &nbsp;</td></tr> 
<tr><th scope=\"row\" align=\"left\">Telefoonnummer:</th><td>$telnr &nbsp;</td></tr> 
<tr><th scope=\"row\" align=\"left\">Mobiel:</th><td>$mobnr &nbsp;</td></tr> 
<tr><th scope=\"row\" align=\"left\">E-mailadres:</th><td><a href=\"mailto:$mail\">$mail &nbsp;</a></td></tr> 
<tr><th scope=\"row\" align=\"left\">Persoonlijke noot:</th><td>$persnoot &nbsp;</td></tr> 

</table>

</BODY>
</HTML>"; 

$fp = fopen("$vestiging/$bestandsnaam.htm","w"); 
fputs($fp, $bericht); 
fclose($fp) 


?>

invoeren_medewerkers.htm

HTML:
<HTML>
<HEAD>
<TITLE>Invoeren medewerker</TITLE>
<LINK HREF="opmaak.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY>

<table align="center" border="1">
<form action="stuur.php" method="post" enctype="multipart/form-data">
<tr><td colspan="2"><strong>Invoeren medewerker</strong></td>
<tr><td><strong>Bestandsnaam: </strong></td>
<td><input type="text"name="besnaam"> (voornaamachternaam ... Bijv.: peterdevries)</td></tr>
<tr><td><strong>Vestiging: </strong></td>
<td>
<input type="radio" name="vestiging" value="vestiging1">ves1<br>
<input type="radio" name="vestiging" value="vestiging2">ves2<br>
<input type="radio" name="vestiging" value="vestiging3">ves3<br>
<input type="radio" name="vestiging" value="vestiging4">ves4<br>
<input type="radio" name="vestiging" value="vestiging5">ves5<br>
<input type="radio" name="vestiging" value="vestiging6">Ves6
</td></tr>
<tr><td><strong>Naam: </strong></td>
<td><input type="text"name="naam"></td></tr>
<tr><td><strong>Afdeling: </strong></td>
<td><input type="text"name="afdeling"></td></tr>
<tr><td><strong>Lokatie: </strong></td>
<td><input type="text"name="lokatie"></td></tr>
<tr><td><strong>Functie: </strong></td>
<td><input type="text"name="functie"></td></tr>
<tr><td><strong>Voornaamste taken: </strong></td>
<td><input type="text"name="voortaken"></td></tr>
<tr><td><strong>Postadres: </strong></td>
<td><input type="text"name="postadres"></td></tr>
<tr><td><strong>Telefoonnummer: </strong></td>
<td><input type="text"name="telnr"></td></tr>
<tr><td><strong>Mobiel: </strong></td>
<td><input type="text"name="mobnr"></td></tr>
<tr><td><strong>E-mailadres: </strong></td>
<td><input type="text"name="mail"></td></tr>
<tr><td><strong>Persoonlijke noot: </strong></td>
<td><input type="text"name="persnoot" size="100%" ></td></tr>
<tr><td><strong>Afbeelding: </strong></td>
<td><input type="file"name="bestand"><BR><input type="radio" name="bestand" value="geenafbeelding">Geen afbeelding</td></tr>
<input type="hidden" name="MAX_FILE_SIZE" value="50000000" />
<tr><td></td><td><input type="submit" name="submit" value="  Verstuur  "></td></tr>
</form>
</table>

</BODY>
</HTML>

Nu nog een vraag:

1. Hoe zorg ik ervoor dat als men geen afbeelding kiest via bladeren maar 'geenafbeelding' aanvinkt (zie ook een van de laatste regels van het invoeren_medewerkers.htm bestand) dat er in de uitkomst-htmlcode een afbeelding wordt weergegeven die al bestaat (geenfoto.jpg ofzo).
 
Laatst bewerkt:
Ik denk niet dat dat gaat werken. Je hebt nu 2 velden met de naam "Bestand".

Maak er dan dit van
HTML:
<td>
 <input type="file" name="bestand" />
 <br />
 <input type="checkbox" name="noimg" /> Geen afbeelding?
</td>
Dan kun je daarna de volgende controle invoeren
PHP:
if(isset($_POST['noimg'])) {
 $bestandsnaam = 'geenafbeelding.jpg';
}
else {
 $bestandsnaam = $_POST['besnaam'];
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan