de data komt niet in de database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Raymen

Raymen

10/10/2006 07:23:00
Quote Anchor link
hey, ik probeer een soort van project page te maken, ik ben nog niet zo heel goed in php. maar als ik dan de form invul dan zet hij de data niet in de mysql database, wat doe ik fout?

insert.php
-----------------------------------
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include ("dbconnect.php");
/*
$name = $_POST['name'];
$description = $_POST['description'];

$SQL_statement = "INSERT INTO projects (name,description)
  VALUES ("$name", "$description")";
  $re = mysql_query($SQL_statement);
  if(!$re) die(mysql_error());
*/


$sql = "INSERT INTO projects (id, naam, description) VALUES ";
$sql .= "('', '" . $_POST['name'] . "', '" . $_POST['description'] . "')";
$res = mysql_query($sql);
echo $res;

?>

------------------------------------
form.php
------------------------------------
<form method="post" action="insert.php" enctype="text/plain">
<p>Project Name:<input type="text" size="20" maxlength="20" name="name">
<p>Project Description:<br><textarea name="description" rows="5" cols="30"> </textarea>
<p><input type="Submit" name="Submit" value="Submit">
<input type="Reset" name="Reset" value="Reset">
</form>
------------------------------------
read.php
------------------------------------
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

include("dbconnect.php");

  $s = "SELECT * FROM projects"; //maak de var $s aan.
  $r = mysql_query($s); //maak de var $r aan.
  while($d = mysql_fetch_array($r)) { //met de functie mysql_fetch_array() worden de geselecteerde records weergegeven.
  echo $d['id'] . " " . $d['name'] . " " . $d['description'] . "<BR>"; /**echo met behulp van de array $d de
  records uit de db, waarbij hetgeen tussen [' '] overeenkomt met een veld uit
  de tabel.**/

  }
  mysql_close(); //verbinding verbreken
?>
 
PHP hulp

PHP hulp

25/04/2024 03:15:07
 
Niels Beckers

Niels Beckers

10/10/2006 07:43:00
Quote Anchor link
je zou beter aan fouthandeling doen.

mysql_query($sql) or die(mysql_error());

hieruit kan je je fout afleiden.
Ook kun je er beter beveiligen tegen msqlinjecten door overal
mysql_real_escape_string( ) te plaatsen.
 
Raymen

Raymen

10/10/2006 07:44:00
Quote Anchor link
kan je een voorbeeld geven met dat mysql_real_escape_string( )?
 
Niels Beckers

Niels Beckers

10/10/2006 07:45:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$sql
= "INSERT INTO projects (id, naam, description)
                       VALUES('', '"
. mysql_real_escape_string($_POST['name']) . "', '" . mysql_real_escape_string($_POST['description']) . "')";
$res = mysql_query($sql) or die(mysql_error());

?>


Welke error krijg je nu?
 
Raymen

Raymen

10/10/2006 07:49:00
Quote Anchor link
als ik wat ingevuld heb en dan op submit klikt kom er een 1 op me scherm, en ook bij read.php
 
Niels Beckers

Niels Beckers

10/10/2006 07:51:00
Quote Anchor link
dat komt omdat jij $res echo'd en omdat $res gelukt is geeft deze de waarde weer.
nu waneer je de pagina wil ophalen moet het zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
include("dbconnect.php");

  $s = "SELECT * FROM projects"; //maak de var $s aan.
  $r = mysql_query($s) or die(mysql_error()); //maak de var $r aan.
  while($d = mysql_fetch_assoc($r))
  {

  echo $d['id'] . " " . $d['name'] . " " . $d['description'] . "<BR>";
  }

?>


wat krijg je dan te zien?
 
Raymen

Raymen

10/10/2006 07:53:00
Quote Anchor link
nog steeds een 1 van id denk ik, en in phpmyadmin zie ik ook dat alleen id is ingevuld en dat is 1, en name en description zijn leeg
 
Niels Beckers

Niels Beckers

10/10/2006 15:57:00
Quote Anchor link
dat je wil zeggen dat je $_POST leeg is dus je zal even moeten kijkenhoe deze noemen in je form
 
Raymen

Raymen

10/10/2006 16:43:00
Quote Anchor link
maar die zijn toch goed als je in form.php kijkt?
 
Raymen

Raymen

10/10/2006 18:28:00
Quote Anchor link
iemand?

(edit) ok sorry
Gewijzigd op 01/01/1970 01:00:00 door Raymen
 
Jan Koehoorn

Jan Koehoorn

10/10/2006 18:58:00
Quote Anchor link
Niet bumpen, please.
Edit:

Doe op de pagina waar je de data verwerkt eens dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        print_r ($_POST);
    }

?>

Wat zie je dan?
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Raymen

Raymen

10/10/2006 19:13:00
Quote Anchor link
ik heb het gedaan en dit kwam tevoorschijn: Array ( ) 1
(die 1 is nog van een mislukte toevoeging van id)

dit is me insert.php nu:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include ("dbconnect.php");


    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        print_r ($_POST);
    }



$sql = "INSERT INTO projects (id, name, description)
                       VALUES('', '"
. mysql_real_escape_string($_POST['name']) . "', '" . mysql_real_escape_string($_POST['description']) . "')";
$res = mysql_query($sql) or die(mysql_error());
echo $res;

?>
 
Raymen

Raymen

11/10/2006 07:24:00
Quote Anchor link
ik denk dat ik iets fout heb gedaan in mijn form.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
<form method="post" action="insert.php" enctype="text/plain">
<
p>Project Name:<input type="text" size="20" maxlength="20" name="name">
<
p>Project Description:<br><textarea name="description" rows="5" cols="30"> </textarea>
<
p><input type="Submit" name="Submit" value="Submit">
<
input type="Reset" name="Reset" value="Reset">
<
/form>
?>
 
Jan Koehoorn

Jan Koehoorn

11/10/2006 07:30:00
Quote Anchor link
Haal dat enctype uit je form tag, dan lukt het wel.
 
Raymen

Raymen

11/10/2006 08:03:00
Quote Anchor link
bedankt,
het werkt nu :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.