Textarea naar DB heen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dan Groot

Dan Groot

27/03/2012 09:43:46
Quote Anchor link
Beste mensen,

Ik ben tot het volgende probleem gelopen met een "opmerking systeem".
De bedoeling van dit systeem is dat er een opmerking word opgehaald en geplaatst word in een textarea. Vervolgens kunnen er wijzigingen worden aangebracht en kan de textarea weer naar de database worden gestuurd om te slaan.

Ik zal het probleem waar ik tegenaan gelopen ben zo goed mogelijk uit te leggen.
En ben al enige tijd aan het zoeken, hoe ik dit kan oplossen maar kom er eigenlijk zo niet uit, dus als iemand mij in de juiste richting kan helpen waar ik naar moet kijken dan hoor ik het graag.

De pagina waar de opmerking systeem in staat is als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
index.php?iso=[isonummer]
Aan de hand van deze ingevulde isonummer word de pagina geladen met gegevens uit de database.
Hier volgt het stukje van de opmerkingsysteem.
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
<?php
include 'opmerkingophaal.php'; // hier een stukje sql waar de opmerking word opgehaald
include 'verbinding.php'; //hier word de verbinding met de MS SQL database gemaakt.

if ($_POST['submit']) {
$text = $_POST['opmerking'];  
$sql = "UPDATE dbo.[PSI - Lassen opmerkingen] SET Opmerking='$text' WHERE Isonummer='$iso'";
$stmt = sqlsrv_query($conn, $sql);}
?>


<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<textarea cols=40 rows=10 name="opmerking"><?php echo $opmerking->Opmerking; ?></textarea>
<input type="submit" name="submit" value="submit" />
 </form>

Het stukje werkt prima als deze, stand-alone staat en niet te maken heeft met de index.php?iso=[isonummer].
Maar zodra deze erbij komt, werkt het systeem niet meer.
De code word verstuurd, en vervolgens blijft de pagina wit en staat het volgende in de url:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
index.php?opmerking=test&submit=submit


En het gene word niet verstuurd naar de database.

Heeft iemand enig idee wat ik fout doe, ik neem aan dat het in de
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$iso = $_GET['iso'];
zit die ik bovenaan mijn hoofd pagina gebruik, maar hoe kan ik dit verhelpen?

Hartelijk dank alvast.
Gewijzigd op 27/03/2012 14:21:01 door Dan Groot
 
PHP hulp

PHP hulp

25/12/2024 17:15:20
 

27/03/2012 09:46:01
Quote Anchor link
Kan je even om al je code de code tags zetten? Leest makkelijker.
Gewijzigd op 27/03/2012 09:48:29 door
 
Dan Groot

Dan Groot

27/03/2012 09:49:05
Quote Anchor link
Aangepast, excuses.
 
Obelix Idefix

Obelix Idefix

27/03/2012 11:37:15
Quote Anchor link
Als je normaal gesproken een formulier met POST verstuurd, zou je niet zo'n url moeten krijgen. Lijkt meer op GET.
 
- SanThe -

- SanThe -

27/03/2012 13:33:54
Quote Anchor link
Maak van <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Dit <form method="post" action="index.php?iso=boven">

Dit dbo.[PSI - Lassen opmerkingen] is geen fatsoenlijke databasekolomnaam.
Script is lek =>SQL-Injection.
Gewijzigd op 27/03/2012 13:34:31 door - SanThe -
 
Dan Groot

Dan Groot

27/03/2012 14:33:39
Quote Anchor link
- SanThe -,

Ik heb bovenstaande wat je hebt onbevolen geprobeerd.
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 'backend\los opmerking\verbinding.php'; //hier word de verbinding met de MS SQL database gemaakt.
include 'backend\los opmerking\opmerkingophaal.php'; // hier een stukje sql waar de opmerking word opgehaald


if ($_POST['submit']) {
$text = $_POST['opmerking'];  
$sql2 = "UPDATE dbo.[PSI - Lassen opmerkingen] SET Opmerking='$text' WHERE Isonummer='1030650'";
$stmt = sqlsrv_query($conn, $sql2);
}
?>


<form method="post" action="index.php?iso=1030650">
<textarea cols=40 rows=10 name="opmerking"><?php echo $opmerking->Opmerking; ?></textarea>
<input type="submit" name="submit" value="submit" />
 </form>

echter is het resultaat nog hetzelfe.
Qua beveiliging maakt het niet heel erg uit, omdat alles op een kleine gesloten Intranet draait.

Hier nog wat extra informatie wat er misschien wel mee te maken heeft na mijn gevoel

De index.php ziet er als volgt uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
//#########Initialisatie
    $iso = $_GET['iso']; //echo "het iso nummer is: $isoget"; // voorbeeld: index.php?iso=1020300
    include 'backend/verbinding.php'; //maakt verbinding
    include 'backend/check.php'; //check de product en laad vervolgens de pagina
//#########Initialisatie

?>

vervolgens ziet check er zo uit(verbinding is puur verbinding met db)
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
 $sql
= "SELECT ISONUMMER from dbo.LassenDBtabstrap WHERE ISONUMMER = $iso";
 $stmt = sqlsrv_query( $conn, $sql);
 if ($stmt) {
    $rows = sqlsrv_has_rows( $stmt );
    if ($rows === true)
        echo 'dit is een ingewikkeld product...' ;
    else
        include 'producten/omschrijving.php';
        include 'producten/programma.php';
        include 'producten/normaalproduct.php';
        include 'producten/tabstrap.php';
        include 'main.html';
 }

?>


vervolgens bevat main.html
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

include 'opmerking.php';

?>
Gewijzigd op 27/03/2012 15:03:08 door Dan Groot
 
- SanThe -

- SanThe -

27/03/2012 14:59:11
Quote Anchor link
Zet de errors eens aan.
Helemaal bovenin je script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest
?>
 
Dan Groot

Dan Groot

27/03/2012 15:08:23
Quote Anchor link
De display error levert het volgende op:
Notice: Undefined index: submit in \opmerking.php on line 20

lijn 20:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if ($_POST['submit']) {
 



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.