Tutorials >
MySQL >
Formulier
|
Gepost op: 17 januari 2005 - 19:30 |
|
|
|
PHP ver gevorderde
|
ik vind het verkeerd te zeggen dat
<?
echo "mijn naam is $naam";
?>
<? echo "mijn naam is $naam"; ?>
fout is. Het is niet fout, maar het is aangeraden om dit niet zo te doen.
<?
echo "mijn naam is ".$naam;
?>
<? echo "mijn naam is ".$naam; ?>
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 |
|
|
|
Gepost op: 17 januari 2005 - 19:31 |
|
|
|
MySQL ver gevorderde
|
|
|
|
Gepost op: 17 januari 2005 - 20:38 |
|
|
|
PHP expert
|
Ik zou trouwens HTML codes tussen <code> tags doen hoor, ziet er wat beter uit. |
|
|
|
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?
<?if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['voornaam'] == '')
{
$aFouten[] = 'Je hebt geen naam ingevuld';
...
else
{
$aFouten[] = 'Je moet eerst het formulier invullen';
} ?>
<?if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST)) { if($_POST['voornaam'] == '') { $aFouten[] = 'Je hebt geen naam ingevuld'; ... else { $aFouten[] = 'Je moet eerst het formulier invullen'; } ?>
???? |
|
|
|
Gepost op: 22 januari 2005 - 22:51 |
|
|
|
PHP gevorderde
|
- begin een forum bericht
-
<?if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['voornaam'] == '')
{
$aFouten[] = 'Je hebt geen naam ingevuld';
}
else
{
echo $aFouten[];
} ?>
<?if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST)) { if($_POST['voornaam'] == '') { $aFouten[] = 'Je hebt geen naam ingevuld'; } else { } ?>
dit zou wel werken |
|
|
|
Gepost op: 06 februari 2005 - 17:53 |
|
|
|
PHP interesse
|
<?
echo 'mijn naam is $naam';
?>
<? echo 'mijn naam is $naam'; ?>
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- |
|
|
|
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 |
|
|
|
Gepost op: 07 oktober 2005 - 18:25 |
|
|
|
Nieuw lid
|
Hoe zou ik met dit script een weizegingsformulier moeten maken? kan iemand mij daarbij helpen? |
|
|
|
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 |
|
|
|
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: |
|
|
|
Gepost op: 11 augustus 2006 - 11:29 |
|
|
|
Moderator
|
Ik mis een "wijzigen.php" |
|
|
|
Gepost op: 22 september 2006 - 11:08 |
|
|
|
Lid
|
valt een beetje moeilijk aan te passen als mijn account zonder reden gebanned is lijkt me. |
|
|
|
Gepost op: 16 oktober 2006 - 17:38 |
|
|
|
Nieuw lid
|
Er zit een klein type foutje in paragraaf 4.1
<?php
if(mysql_connect('localhost','root',''))
{
mysql_select_db('sitemasters') or die(mysql_error());
}
else
{
echo 'Kan geen verbinding maken';
exit;
}
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['voornaam'] == '')
{
$aFouten[] = 'Je hebt geen naam ingevuld';
}
if($_POST['achternaam'] == '')
{
$aFouten[] = 'Je hebt geen achternaam ingevuld';
}
if($_POST['leeftijd'] == '' || !is_numeric($_POST['leeftijd']))
{
$aFouten[] = 'Je hebt een ongeldige leeftijd 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 formulier (voornaam,achternaam,leeftijd) VALUES ('".addslashes($_POST['voornaam'])."','".addslashes($_POST['achternaam'])."','".$_POST['leeftijd']."')") 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="voornaam"><br />
Achternaam: <input type="text" name="achternaam"><br />
Leeftijd: <input type="text" name="leeftijd"><br />
<input type="submit" name="verzenden" value="verzenden">
</form>
<?
}
?>
<?php { } else { echo 'Kan geen verbinding maken'; } if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST)) { if($_POST['voornaam'] == '') { $aFouten[] = 'Je hebt geen naam ingevuld'; } if($_POST['achternaam'] == '') { $aFouten[] = 'Je hebt geen achternaam ingevuld'; } if($_POST['leeftijd'] == '' || !is_numeric($_POST['leeftijd'])) { $aFouten[] = 'Je hebt een ongeldige leeftijd ingevuld'; } { 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 { echo 'De gegevens zijn succesvol opgeslagen in de database'; } } else { ?> <form action=" <?=$_SERVER['PHP_SELF']?> " method="POST"> Voornaam: <input type="text" name="voornaam"><br /> Achternaam: <input type="text" name="achternaam"><br /> Leeftijd: <input type="text" name="leeftijd"><br /> <input type="submit" name="verzenden" value="verzenden"> </form> <? } ?>
Check regel 48 |
|
|
|
Gepost op: 04 maart 2007 - 21:09 |
|
|
|
PHP ver gevorderde
|
Inplaats van:
Moet je:
Moet of mag, w/e zo heb ik het geleerd en volgens mij is dit ook het netste.. |
|
|
|
Gepost op: 23 oktober 2007 - 12:51 |
|
|
|
PHP interesse
|
Op regel 40 van 4.1 mis je een ?> |
|
|
|
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
if(mysql_result(mysql_query("SELECT COUNT(id) FROM `formulier`"),0) == 0)
{
echo 'Er staan nog geen berichten in de database';
}
else
{
?>
<table>
<tr>
<td>Voornaam:</td>
<td>Achternaam:</td>
<td>Leeftijd:</td>
</tr>
<?php
$qSelect_berichten = mysql_query('SELECT * FROM `formulier`') or die (mysql_error());
while($aBerichten = mysql_fetch_array($qSelect_berichten))
{
echo '<tr>
<td>'.$aBerichten['voornaam'].'</td>
<td>'.$aBerichten['achternaam'].'</td>
<td>'.$aBerichten['leeftijd'].'</td>
</tr>';
}
echo '</table>';
}
?>
if(mysql_result(mysql_query("SELECT COUNT(id) FROM `formulier`"),0) == 0) { echo 'Er staan nog geen berichten in de database'; } else { ?> <table> <tr> <td>Voornaam:</td> <td>Achternaam:</td> <td>Leeftijd:</td> </tr> <?php { <td>'.$aBerichten['voornaam'].'</td> <td>'.$aBerichten['achternaam'].'</td> <td>'.$aBerichten['leeftijd'].'</td> </tr>'; } } ?>
|
|
|
|
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 |
|
|
|
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>
<?
}
?> |
|
|
|
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) |
|
|
Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties. |
|
|
|