FRIHOSTFORUMSFAQTOSBLOGSDIRECTORY
You are invited to Log in or Register a Frihost Account!

HTML formulier

 


BCP88
Ik maak op mijn website gebruik van mysql en php. Nu gebruik ik volgende formulier om alles in mijn mysql database te zetten:
Code:
<form action=toevoegencab.php method=POST>
<table>
<input type="hidden" name="submit" value="yes">
tekst1: <textarea rows="1" name="tekst1" cols="42"></textarea><br>
tekst2: <textarea rows="1" name="tekst2" cols="42"></textarea><br>
<input type="submit" value=" Voeg toe ">
</table>
</form>


<?php
mysql_connect("localhost","user","pass");
mysql_select_db("db");

if ($_POST['submit']) {
    $tekst1 = addslashes($_POST['tekst1']);
   $tekst2=addslashes($_POST['tekst2']);



$sql = "insert into cap(tekst1, tekst2)
values('$tekst1', '$tekst2')";

mysql_query($sql) or die("Oops...");


Ik heb m'n variabele wel vervangen door tekst1 en tekst2 en mjin wachtwoord en username natuurlijk ook.

Elke keer als ik op voeg toe klik worden mijn invoerwaarden opgeslagen in de mysql database. Tot daar gaat alles goed. Maar als ik dan geklikt heb zijn mijn tekstvakjes leeg. Nu zou ik graag hebben dat de inhoud van mijn tekstvakjes blijft staan als ik op voeg toe klik. Want ik moet dikwijls bijna dezelfde waardes toevoegen aan de database en dan is dat makkelijker.
Roald
Je moet in je formulier een php blok invoegen:
Code:
value=" <?php echo @$tekst1 ?>"

Je code wordt dus:
Code:
<form action=toevoegencab.php method=POST>
<table>
<input type="hidden" name="submit" value="yes">
tekst1: <textarea rows="1" name="tekst1" cols="42" value="<?php echo @$tekst1 ?>"></textarea><br>
tekst2: <textarea rows="1" name="tekst2" cols="42" <?php echo @$tekst2 ?>></textarea><br>
<input type="submit" value=" Voeg toe ">
</table>
</form>
Zeg het me als ik fout ben he Rolling Eyes
BCP88
Ik heb het geprobeerd, maar het werkt niet Crying or Very sad

In ieder geval bedankt voor de moeite.

Zijn er soms nog andere voorstellen?
Gieter
Wanneer ik zo'n formulier ontwerp, en ik moet bijvoorbeeld een record bewerken, dan haal ik eerst alle informatie die ik daarvoor nodig heb uit de database:

Code:
$result = mysql_query("SELECT * FROM articles WHERE Id = $_POST['Id']");
$row = mysql_fetch_assoc($result);


Nu heb ik al de informatie uit de database gehaald. Je zult waarschijnlijk wel de mysql-query moeten aanpassen aan jouw situatie.

Nu moet je gewoon nog die waarden echo'en op de juiste plaats. Stel bijvoorbeeld dat ik volgend formulier heb:

Code:
<form action="opslaan.php" method="post" name="opslaan">
Naam: <input type="text" name="naam"><br>
Inhoud: <input type="text" name="inhoud"><br>
</form>


Ik wil nu zorgen dat de waarden die ik zojuist opgehaald heb uit mijn database, hierin terechtkomen. Dit doe je door ze simpelweg te echo'en:

Code:
<form action="opslaan.php" method="post" name="opslaan">
Naam: <input type="text" name="naam" value="<?php echo $row['Naam'];?>"><br>
Inhoud: <input type="text" name="inhoud" value="<?php echo $row['Inhoud'];?>"><br>
</form>


Ik hoop dat dit het wat duidelijker maakt voor jou.

Je kan ook gewoon de $_POST-variabelen echo'en:

Code:
<form action="opslaan.php" method="post" name="opslaan">
Naam: <input type="text" name="naam" value="<?php echo $_POST['naam'];?>"><br>
Inhoud: <input type="text" name="inhoud" value="<?php echo $_POST['inhoud'];?>"><br>
</form>
Roald
Gieter wrote:
Je kan ook gewoon de $_POST-variabelen echo'en
Ja dat lijkt mij het beste.
Reyntjensw
best je titel eens aanpassen als ik jou was,
om je inputs te beveiligen tegen "hackers" (dat kan als je gegevens in je db steekt)

dit is de code :
Code:

<?php
  // bescherming tegen mysql injection
  function quote_smart($value)
  {
      if (get_magic_quotes_gpc()) {
          $value = stripslashes($value);
      }
      if (version_compare(phpversion(), "4.3.0") == "-1") {
          return mysql_escape_string($value);
      } else {
          return mysql_real_escape_string($value);
      }
  }
 
  function check_array(&$array)
  {
      foreach ($array as $key => $value) {
          $value = quote_smart($value);
          $array[$key] = $value;
      }
  }
 
  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
      check_array($_POST);
  }
  if ($_SERVER['REQUEST_METHOD'] == 'GET') {
      check_array($_GET);
  }
?>


je moet dit gewoon includen nadat je je database connection maakt, zo ben je ook wat veiliger
zo ziet het eruit een vbtje:p



Code:

<?
mysql_connect("localhost","user","pass");
mysql_select_db("db");
include("naambestandje.php");
?>


voila
Zarock
Je kan ook gewoon de $_POST-variabelen echo'en:
Ja, dat lijkt mij ook het beste Cool
Roald
Je zou ook een sectie aan je script kunnen toevoegen waarmee je de query een aantal keer herhaald.
HTML code:
Code:
<input type="text" value="" size="2" name="herhaal">
Hier geef je het aantal keer in dat je query herhaald moet worden.

PHP code:
Code:

if ($_POST['herhaal'] == ""){
  $_POST['herhaal'] = 1;
}
for ($tel = 2; $tel <= $_POST['herhaal']; $tel++){
   $sql = "insert into cap(tekst1, tekst2)
   values('$tekst1', '$tekst2')";

   mysql_query($sql) or die("Oops...");
}
Reply to topic    Frihost Forum Index -> Dutch -> Algemeen

FRIHOST HOME | FAQ | TOS | ABOUT US | CONTACT US | SITE MAP
© 2005-2007 Frihost, forums powered by phpBB.