Beste,
Ik ben voor school voor eerst een php project begonnen ben zelf een leek in php en het nu aan het leren.
Ik kom gelijk al een probleem tegen misschien dat jullie mij hiermee kunnen helpen.
als ik het php bestand open krijg ik gelijk al te zien toevoegen is gelukt en komt er in de database een leeg veld te staan heb op internet gezocht maar kan nou niet vinden wat ik verkeerd doe.<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$cat=$_POST['cat'];
$leven=$_POST['leven'];
$aant=$_POST['aant'];
if (empty($naam)){
echo '<span class="article_separator"> </span> Het veld categorie is niet ingevuld.';
}
if (empty($leven)){
echo '<span class="article_separator"> </span> Het veld leventijdgroep is niet ingevuld.';
}
if (empty($aant)){
echo '<span class="article_separator"> </span> Het veld aantalplaatsen is niet ingevuld.';
}
} else {
$sqlcode="INSERT INTO cat (categorie, leventijd, aantalleerlingen)VALUES('$cat', '$leven', '$aant')";
$resultaat=mysql_query($sqlcode)or die(mysql_error());
echo '<span class="article_separator"> </span> Toevoegen is gelukt.';
}
?>
kunnen jullie mij hier mee helpen.
mvg,
Wesley
- Invoer script
-
17-03-2010, 10:07 #1
- Berichten
- 170
- Lid sinds
- 16 Jaar
Invoer script
-
In de schijnwerper
Professionele tekstschrijver (actie: 2,5 cent per woord)Freelance / WerkWebdevelopment en -design (e-commerce, saas, corporate websites)Freelance / WerkHuis-Huren.nl 1000p.m. huizensite met 1300 zoekwoordposities, DR45Website te koopBezwaarVoorbeeld.nl - Handig - Informatief - BezwaarschriftenWebsite te koop -
17-03-2010, 10:18 #2
- Berichten
- 62
- Lid sinds
- 15 Jaar
dit komt omdat er niet op submit is gedrukt...
je zegt dit:
if($_SERVER['REQUEST_METHOD'] == 'POST'){
(checks voor empty fields)
}
else{(als er niet op submit is gedrukt)
}
en doe wat tegen sql injectie...
bij query's moet je altijd bij invoer . mysql_real_escape_string($_POST['veld']) . gebruiken
je script is nu zo lek als een vergiet
-
17-03-2010, 10:20 #3
- Berichten
- 59
- Lid sinds
- 17 Jaar
Verstuur je het formulier op de juiste wijze (post)? Je checkt een variable $naam, maar die lijkt niet te bestaan (moet zijn $cat, denk ik).
De else hoort verder nog binnen je if-statement, anders gebeurt er weinig...
-
17-03-2010, 10:23 #4
- Berichten
- 293
- Lid sinds
- 16 Jaar
PHP Code:<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$cat=$_POST['cat'];
$leven=$_POST['leven'];
$aant=$_POST['aant'];
if (empty($naam)){
echo '<span class="article_separator"> </span> Het veld categorie is niet ingevuld.';
}
if (empty($leven)){
echo '<span class="article_separator"> </span> Het veld leventijdgroep is niet ingevuld.';
}
if (empty($aant)){
echo '<span class="article_separator"> </span> Het veld aantalplaatsen is niet ingevuld.';
}
} else {
$sqlcode="INSERT INTO cat (categorie, leventijd, aantalleerlingen)VALUES('$cat', '$leven', '$aant')";
$resultaat=mysql_query($sqlcode)or die(mysql_error());
echo '<span class="article_separator"> </span> Toevoegen is gelukt.';
}
?>
Als het veld catogorie en het veld levertijd niet ingevuld zijn, en het veld aantalplaatsen wel, dan word er nog steeds informatie in de database geplaatst. Dit kun je oplossen door de laatste twee ifs te veranderen in elseif.
Groet,
Jasper
Edit:
--Verwijderd--
-
17-03-2010, 10:42 #5
- Berichten
- 170
- Lid sinds
- 16 Jaar
Beste,
bedankt jullie helpen me hier goed mee opweg.
heb een aantal aanpassingen gedaan waardoor het niet meer zomaar toevoegt aan de database alleen nu krijg probleem dat die het script goed uitvoert totdat
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$cat=$_POST['cat'];
$leven=$_POST['leven'];
$aant=$_POST['aant'];
if (empty($cat)){
echo '<span class="article_separator"> </span> Het veld categorie is niet ingevuld.';
}
elseif (empty($leven) || !is_numeric($leven)){
echo '<span class="article_separator"> </span> Het veld leventijdgroep is niet ingevuld.';
}
elseif (empty($aant) || !is_numeric($aant)){
echo '<span class="article_separator"> </span> Het veld aantalplaatsen is niet ingevuld.';
}
} else {
$sqlcode="INSERT INTO cat (categorie, leventijd, aantalleerlingen)VALUES('$cat', '$leven', '$aant')";
$resultaat=mysql_query($sqlcode)or die(mysql_error());
echo '<span class="article_separator"> </span> Toevoegen is gelukt.';
}
?>
Aanvullend bericht:
Ik had ook nog het volgende stukje in het script geplaats.
if (isset($_POST['submit'])) {Laatst aangepast door Wesley S. : 17-03-2010 om 10:44 Reden: Automatisch samengevoegd.
-
17-03-2010, 10:53 #6
Elephant Media GbR
- Berichten
- 1.253
- Lid sinds
- 18 Jaar
Probeer dit eens:
PHP Code:$sqlcode="INSERT INTO cat (categorie, leventijd, aantalleerlingen)VALUES('". $cat ."', '". $leven ."', '". $aant."')";
Maak je trouwens wel verbinding met de database ?
-
17-03-2010, 10:56 #7
- Berichten
- 170
- Lid sinds
- 16 Jaar
doet die niet
Ja hij maakt verbinding met de database.
Het script ziet er nu zo uit,
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$cat=$_POST['cat'];
$leven=$_POST['leven'];
$aant=$_POST['aant'];
if (isset($_POST['submit'])) {
if (empty($cat)){
echo '<span class="article_separator"> </span> Het veld categorie is niet ingevuld.';
}
elseif (empty($leven) || !is_numeric($leven)){
echo '<span class="article_separator"> </span> Het veld leventijdgroep is niet ingevuld, dit moeten alleen getallen wezen.';
}
elseif (empty($aant) || !is_numeric($aant)){
echo '<span class="article_separator"> </span> Het veld aantalplaatsen is niet ingevuld, dit moeten alleen getallen wezen.';
}
} else {
$sqlcode="INSERT INTO cat (categorie, leventijd, aantalleerlingen)VALUES('". $cat ."', '". $leven ."', '". $aant."')";
$resultaat=mysql_query($sqlcode)or die(mysql_error());
echo '<span class="article_separator"> </span> Toevoegen is gelukt.';
}
}
?>
-
17-03-2010, 10:57 #8
Elephant Media GbR
- Berichten
- 1.253
- Lid sinds
- 18 Jaar
Maar je maakt nergens in het script verbinding met de database ?
-
17-03-2010, 11:00 #9
- Berichten
- 170
- Lid sinds
- 16 Jaar
helemaal boven aan maak ik verbinden met de database door middel van de code
include ('config/config.php'); en heb getest met iets anders en dat werkt gewoon.
-
17-03-2010, 11:01 #10
Elephant Media GbR
- Berichten
- 1.253
- Lid sinds
- 18 Jaar
PHP Code:<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$cat=$_POST['cat'];
$leven=$_POST['leven'];
$aant=$_POST['aant'];
if (empty($naam)){
echo '<span class="article_separator"> </span> Het veld categorie is niet ingevuld.';
}
if (empty($leven)){
echo '<span class="article_separator"> </span> Het veld leventijdgroep is niet ingevuld.';
}
if (empty($aant)){
echo '<span class="article_separator"> </span> Het veld aantalplaatsen is niet ingevuld.';
}
} else { // <-- Deze is een else op " if($_SERVER['REQUEST_METHOD'] == 'POST'). "
$sqlcode="INSERT INTO cat (categorie, leventijd, aantalleerlingen)VALUES('$cat', '$leven', '$aant')";
$resultaat=mysql_query($sqlcode)or die(mysql_error());
echo '<span class="article_separator"> </span> Toevoegen is gelukt.';
}
?>
-
17-03-2010, 11:04 #11
- Berichten
- 170
- Lid sinds
- 16 Jaar
Ja dat hoort toch zo of niet?
ik ben echt leek in php dus sorry dat er niet teveel van begrijp nog ik probeer het te leren
-
17-03-2010, 11:13 #12
- Berichten
- 1.346
- Lid sinds
- 18 Jaar
Zo zou het moeten zijn.
PHP Code:<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$cat = $_POST['cat'];
$leven = $_POST['leven'];
$aant = $_POST['aant'];
if(isset($_POST['submit']))
{
if (empty($cat))
{
echo '<span class="article_separator"> </span> Het veld categorie is niet ingevuld.';
}
elseif (empty($leven) || !is_numeric($leven))
{
echo '<span class="article_separator"> </span> Het veld leventijdgroep is niet ingevuld, dit moeten alleen getallen wezen.';
}
elseif (empty($aant) || !is_numeric($aant))
{
echo '<span class="article_separator"> </span> Het veld aantalplaatsen is niet ingevuld, dit moeten alleen getallen wezen.';
}
else
{
$sqlcode="INSERT INTO cat (categorie, leventijd, aantalleerlingen)VALUES('". $cat ."', '". $leven ."', '". $aant."')";
$resultaat=mysql_query($sqlcode)or die(mysql_error());
echo '<span class="article_separator"> </span> Toevoegen is gelukt.';
}
}
else
{
echo 'Er is iets fout gegaan met het posten.';
}
}
?>
-
17-03-2010, 11:13 #13
Elephant Media GbR
- Berichten
- 1.253
- Lid sinds
- 18 Jaar
je zegt nu:
Als er gepost word doe dit ( die checks ).
indien er niet word gepost ( doe die mysql )
-
17-03-2010, 11:54 #14
- Berichten
- 62
- Lid sinds
- 15 Jaar
doe wat aan sql injectie man!
-
17-03-2010, 12:54 #15
Elephant Media GbR
- Berichten
- 1.253
- Lid sinds
- 18 Jaar
Sql injecties kun je ook op andere manieren tegenhouden Nathan. Het begint al met een goede php.ini instellen op je server, waar je aan kan zetten dat alle inputs met magic quotes worden gedaan.
Maar als je nog extra veiligheid wil kun je bijvoorbeeld een DatabaseClass schrijven die gelijk controleert / filtert op pogingen.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic