login  Naam:   Wachtwoord: 
Registreer je!
 Nota's op tutorial:

Tutorials > MySQL > Formulier
Pagina:

Reacties op de tutorial Formulier


Offline  twopeak
Gepost op: 17 januari 2005 - 19:30
Gouden medaille

PHP ver gevorderde


ik vind het verkeerd te zeggen dat
  1. <?
  2. echo "mijn naam is $naam";
  3. ?>
fout is. Het is niet fout, maar het is aangeraden om dit niet zo te doen.
  1. <?
  2. echo "mijn naam is ".$naam;
  3. ?>
Zal de leesbaarheid van het script verbeteren, en indien je naar een fout zoekt, zal je het sneller kunnen vinden.

Dus die tips (zoals je ze juist benoemt) zijn tips en geen regels (zoals het doorschijnt).
nah
my two euro-cents

Offline  Dennisvb
Gepost op: 17 januari 2005 - 19:31
MySQL ver gevorderde

hehe, zal het veranderen

Offline  Tuinstoel
Gepost op: 17 januari 2005 - 20:38
PHP expert

Ik zou trouwens HTML codes tussen <code> tags doen hoor, ziet er wat beter uit.

Offline  Speedy
Gepost op: 22 januari 2005 - 10:56
PHP interesse

Ik krijg iedere keer de melding:

Gelieve het formulier in te vullen, nochtans zijn alle velden correct ingevuld.

Wat is er mis?

  1. <?if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
  2. {
  3. $aFouten = array();
  4. if($_POST['voornaam'] == '')
  5. {
  6. $aFouten[] = 'Je hebt geen naam ingevuld';
  7. ...
  8. else
  9. {
  10. $aFouten[] = 'Je moet eerst het formulier invullen';
  11. } ?>


????

Offline  b4nkr0bz0r
Gepost op: 22 januari 2005 - 22:51
PHP gevorderde

- begin een forum bericht
-
  1. <?if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
  2. {
  3. $aFouten = array();
  4. if($_POST['voornaam'] == '')
  5. {
  6. $aFouten[] = 'Je hebt geen naam ingevuld';
  7. }
  8. else
  9. {
  10. echo $aFouten[];
  11. } ?>

dit zou wel werken

Offline  bosgroen
Gepost op: 06 februari 2005 - 17:53
Gouden medaille

PHP interesse


  1. <?
  2. echo 'mijn naam is $naam';
  3. ?>

Dit is sobieso fout, variablen automatisch in een string laten parsen werkt alleen met dubbele quotes. -daarom zijn het parsen van dubbele quotes ook net iets trager dan enkele-

Offline  Dennisvb
Gepost op: 06 februari 2005 - 17:55
MySQL ver gevorderde

Daarom had ik dat het fout was, maar ik zal er wel ff dubbele van maken

Offline  Gaia
Gepost op: 07 oktober 2005 - 18:25
Nieuw lid

Hoe zou ik met dit script een weizegingsformulier moeten maken? kan iemand mij daarbij helpen? 

Offline  DenMette
Gepost op: 26 oktober 2005 - 14:10
PHP gevorderde

Goed gedaan ik kan er aan uit dus is het voeldoende Voor mij.

Chic gedaan:D

Offline  prorsoft
Gepost op: 09 januari 2006 - 17:15
PHP gevorderde

wil niet zeuren maar doe het toch(:p), zie een foutje:
Citaat:
leeftijdvarchar(3)

moet met spatie ertussen:cool:

Offline  Thomas
Gepost op: 11 augustus 2006 - 11:29
Moderator

Ik mis een "wijzigen.php" 

Offline  MarcoNemo
Gepost op: 22 september 2006 - 11:08
Lid

valt een beetje moeilijk aan te passen als mijn account zonder reden gebanned is lijkt me.

Offline  Fernando
Gepost op: 16 oktober 2006 - 17:38
Nieuw lid

Er zit een klein type foutje in paragraaf 4.1

  1. <?php
  2. if(mysql_connect('localhost','root',''))
  3. {
  4. mysql_select_db('sitemasters') or die(mysql_error());
  5. }
  6. else
  7. {
  8. echo 'Kan geen verbinding maken';
  9. }
  10.  
  11.  
  12. if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
  13. {
  14. $aFouten = array();
  15. if($_POST['voornaam'] == '')
  16. {
  17. $aFouten[] = 'Je hebt geen naam ingevuld';
  18. }
  19. if($_POST['achternaam'] == '')
  20. {
  21. $aFouten[] = 'Je hebt geen achternaam ingevuld';
  22. }
  23. if($_POST['leeftijd'] == '' || !is_numeric($_POST['leeftijd']))
  24. {
  25. $aFouten[] = 'Je hebt een ongeldige leeftijd ingevuld';
  26. }
  27.  
  28. if(count($aFouten) != 0)
  29. {
  30. echo 'De volgende fouten zijn opgetreden: <br /><br />';
  31. for($Fi = 0; $Fi < count($aFouten); $Fi++)
  32. {
  33. echo $aFouten[$Fi].'<br />';
  34. }
  35. echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
  36. }
  37. else
  38. {
  39. mysql_query("INSERT INTO formulier (voornaam,achternaam,leeftijd) VALUES ('".addslashes($_POST['voornaam'])."','".addslashes($_POST['achternaam'])."','".$_POST['leeftijd']."')") or die (mysql_error());
  40.  
  41. echo 'De gegevens zijn succesvol opgeslagen in de database';
  42. }
  43.  
  44. }
  45. else
  46. {
  47. ?>
  48. <form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
  49. Voornaam: <input type="text" name="voornaam"><br />
  50. Achternaam: <input type="text" name="achternaam"><br />
  51. Leeftijd: <input type="text" name="leeftijd"><br />
  52. <input type="submit" name="verzenden" value="verzenden">
  53. </form>
  54. <?
  55. }
  56. ?>

Check regel 48

Offline  ikki007
Gepost op: 04 maart 2007 - 21:09
Gouden medailleGouden medaille

PHP ver gevorderde


Inplaats van:

  1. $getal = "5";


Moet je:

  1. $getal = 5;


Moet of mag, w/e zo heb ik het geleerd en volgens mij is dit ook het netste..

Offline  tomie94
Gepost op: 23 oktober 2007 - 12:51
PHP interesse

Op regel 40 van 4.1 mis je een ?>

Offline  zilverstar
Gepost op: 31 januari 2008 - 14:06
Nieuw lid

ik krijg deze warning

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /mnt/web4/11/99/51650199/htdocs/weergeven.php on line 24


Wat kan ik hier tegen doen ??

bij weergeven.php script

  1. if(mysql_result(mysql_query("SELECT COUNT(id) FROM `formulier`"),0) == 0)
  2. {
  3. echo 'Er staan nog geen berichten in de database';
  4. }
  5. else
  6. {
  7. ?>
  8. <table>
  9. <tr>
  10. <td>Voornaam:</td>
  11. <td>Achternaam:</td>
  12. <td>Leeftijd:</td>
  13. </tr>
  14. <?php
  15. $qSelect_berichten = mysql_query('SELECT * FROM `formulier`') or die (mysql_error());
  16. while($aBerichten = mysql_fetch_array($qSelect_berichten))
  17. {
  18. echo '<tr>
  19. <td>'.$aBerichten['voornaam'].'</td>
  20. <td>'.$aBerichten['achternaam'].'</td>
  21. <td>'.$aBerichten['leeftijd'].'</td>
  22. </tr>';
  23. }
  24. echo '</table>';
  25. }
  26. ?>

Offline  NiekVoost
Gepost op: 21 november 2008 - 11:49
Nieuw lid

De sql code is fout?

MySQL retourneerde: Documentatie
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(3) not null,
primary key(id)
)' at line 5

Offline  Bart1994
Gepost op: 22 september 2014 - 11:00
Nieuw lid

Misschien een stomme vraag maar ik krijg deze foutmelding maar kan het echt niet vinden zie geen fouten verder..

Parse error: syntax error, unexpected end of file in C:\wamp\www\Ziekenhuis\toevoegen.php on line 64

<?php
if(mysql_connect('localhost','ziekenhuis_01','test123'))
{
mysql_select_db('ziekenhuis') or die(mysql_error());
}
else
{
echo 'Kan geen verbinding maken';
exit;
}


if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['firstname'] == '')
{
$aFouten[] = 'Je hebt geen naam ingevuld';
}
if($_POST['lastname'] == '')
{
$aFouten[] = 'Je hebt geen achternaam ingevuld';
}
if($_POST['lastname'] == '')
{
$aFouten[] = 'Je hebt geen straat ingevuld';
}

if(count($aFouten) != 0)
{
echo 'De volgende fouten zijn opgetreden: <br /><br />';
for($Fi = 0; $Fi < count($aFouten); $Fi++)
{
echo $aFouten[$Fi].'<br />';
}
echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
}
else
{
mysql_query("INSERT INTO persons (Firstname,LastName,Street) VALUES ('".addslashes($_POST['Firstname'])."','".addslashes($_POST['LastName'])."','".$_POST['Street']."')") or die (mysql_error());

echo 'De gegevens zijn succesvol opgeslagen in de database';
}

}
else
{
?>
<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
Voornaam: <input type="text" name="Firstname"><br />
Achternaam: <input type="text" name="LastName"><br />
Leeftijd: <input type="text" name="Street"><br />
<input type="submit" name="verzenden" value="verzenden">
</form>
<?
}
?>

Offline  Thomas
Gepost op: 03 november 2014 - 19:22
Moderator

Deze tutorial is inmiddels enigszins gedateerd (januari 2005), maar wat hier in gebeurt is niet heel erg veilig. Addslashes biedt wel enige bescherming tegen MySQL injecties, maar dit is daarvoor de verkeerde (en onvolledige) remedie.

Daarnaast is dit script vatbaar voor CSRF (Cross Site Request Forgeries) en XSS (Cross Site Scripting).

Het illustreert wel goed hoe je in grote lijnen informatie vanuit een HTML formulier in je MySQL database krijgt, maar de weg er naartoe kan (en moet) veiliger.

Als je van een MySQL-database gebruik maakt zou je ook geen nieuwe code meer moeten schrijven die van de mysql_ functies gebruik maakt. Gebruik in plaats hiervan ofwel MySQLi ofwel PDO om te communiceren met je database.

Daarnaast is het zaak dat je je HTML en MySQL input filtert en je HTML en MySQL output escaped met de daarvoor bestemde functies en methoden. Dit alles (idealiter) met (consistente) gebruikmaking van dezelfde (specifieke) character encoding.

Tevens zou je ook rekening moeten houden met PHP instellingen als:
register_globals (UIT!)
magic_quotes_gpc (UIT!)
short_open_tag (of je moet je PHP tags uitschrijven, wat wellicht beter is voor compatibiliteit)

Pagina:

Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.142s