Toon posts:

[PHP] Data updaten werkt niet icm. iexplore

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008

Verwijderd

Topicstarter
Mijn probleem: Zodra ik met een form data in een mysql database probeer up-te-daten weigert iexplore dit te doen, terwijl firef0x dit wel gewoon zonder problemen doet.

Mijn code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?

include ("../modules/connector.php");

if ($submit) {

  $sql = "UPDATE producten SET naam='$naam',prijs='$prijs',omschrijving='$omschrijving',image='$image', categorie='$categorie' WHERE NAAM=\"$NAAM\"";
  $result = mysql_query($sql);
  echo "Product aagepast <br><br>";
  echo "<a href=\"mannen.php\">Ga terug naar de vorige pagina</a>";

else if ($NAAM) {

   

    $sql = "SELECT * FROM PRODUCTEN WHERE NAAM=\"$NAAM\"";

    $result = mysql_query($sql);

    $myrow = mysql_fetch_array($result);

    $NAAM = $myrow["NAAM"];

    $PRIJS = $myrow["PRIJS"];

    $OMSCHRIJVING = $myrow["OMSCHRIJVING"];
    
    $IMAGE = $myrow["IMAGE"];
    
    $CATEGORIE = $myrow["CATEGORIE"];
    

echo "<table align=\"left\"><tr><td align=\"right\">";
echo "NAAM:<input type=\"Text\" name=\"naam\" value=\"$NAAM\"><br>";
echo "PRIJS:<input type=\"Text\" name=\"prijs\" value=\"$PRIJS\"><br>";
echo "OMSCHRIJVING:<input type=\"Text\" name=\"omschrijving\" value=\"$OMSCHRIJVING\"><br>";
echo "IMAGE:<input type=\"Text\" name=\"image\" value=\"$IMAGE\"><br>";
echo "CATEGORIE:<input type=\"Text\" name=\"categorie\" value=\"$CATEGORIE\"><br>";
echo "<input type=\"Submit\" name=\"submit\" value=\"Update product\"></form>";
echo "</td></tr></table>";
}

if (!$NAAM) {

    // Select en weergeef de mensen.

    $result = mysql_query("SELECT * FROM PRODUCTEN WHERE CATEGORIE =\"MANNEN\" ORDER BY NAAM");
    $tellen = mysql_num_rows($result);
    if (!$tellen) {
      echo "Geen producten gevonden"; }
    else {
      echo "Klik op de naam van het product om de gegevens aan te passen. Met verwijderen wordt het product definitief uit de database gehaald.<br><br>"; 
      while ($myrow = mysql_fetch_array($result)) {
      echo "Productnaam: $NAAM";
      printf("<a href=\"%s?NAAM=%s\">%s <br> </a> ", $PHP_SELF, $myrow["NAAM"],$myrow["NAAM"]);
      printf("<a href=\"%s?NAAM=%s&delete=yes\">VERWIJDER</a><br><br>", $PHP_SELF, $myrow["NAAM"]);
}

[ Voor 86% gewijzigd door Verwijderd op 20-10-2005 15:41 ]


  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
Welke foutmelding krijg je?

  • Tuxie
  • Registratie: Augustus 2003
  • Laatst online: 21:43

Tuxie

En WeL nU!

welke blokken worden doorlopen en welke niet. Heb je PHP errors aan staan?

Verwijderd

Topicstarter
PHP errors staan aan.

Het script gaat als volgt:

In het begin is variabele "naam" leeg, dus worden er een aantal records geecho'd met een hyperlink met daarin de naam van het record. Vervolgens krijg je dus een formulier te zien met de waarden uit de database. Deze kan je vervolgens updaten met een ram op submit. Vervolgens wordt het zaakje geupdate (tenminste, in firefox)

  • Tuxie
  • Registratie: Augustus 2003
  • Laatst online: 21:43

Tuxie

En WeL nU!

Volgens mij gaat IE over de zeik omdat je geen starttag voor <form> hebt :)

Verwijderd

Topicstarter
Ik zal voor de duidelijkheid maar het gehele script voor deze pagina laten zien, ik heb er een aantal dingen uitgelaten omdat ik dacht dat het niet relevant was.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?

include ("../modules/connector.php");

if ($submit) {

  $sql = "UPDATE producten SET naam='$naam',prijs='$prijs',omschrijving='$omschrijving',image='$image', categorie='$categorie' WHERE NAAM=\"$NAAM\"";
  $result = mysql_query($sql);
  echo "Product aagepast <br><br>";
  echo "<a href=\"mannen.php\">Ga terug naar de vorige pagina</a>";

} else if ($delete) {

    // record verwijderen

    $sql = "DELETE FROM producten WHERE NAAM=\"$NAAM\"";    

    $result = mysql_query($sql);

    echo "Product verwijderd <br><br>";
    echo "<a href=\"mannen.php\">Ga terug naar de vorige pagina</a>";

} 

else {

  if (!$NAAM) {

    // Select en weergeef de mensen.

    $result = mysql_query("SELECT * FROM PRODUCTEN WHERE CATEGORIE =\"MANNEN\" ORDER BY NAAM");
    $tellen = mysql_num_rows($result);
    if (!$tellen) {
      echo "Geen producten gevonden"; }
    else {
      echo "Klik op de naam van het product om de gegevens aan te passen. Met verwijderen wordt het product definitief uit de database gehaald.<br><br>"; 
      while ($myrow = mysql_fetch_array($result)) {
      echo "Productnaam: $NAAM";
      printf("<a href=\"%s?NAAM=%s\">%s <br> </a> ", $PHP_SELF, $myrow["NAAM"],$myrow["NAAM"]);
      printf("<a href=\"%s?NAAM=%s&delete=yes\">VERWIJDER</a><br><br>", $PHP_SELF, $myrow["NAAM"]);

  }
 }
}


?>
<form method="post" action="<? echo $PHP_SELF; ?>">

<input type=hidden name="NAAM" value="
<? echo $NAAM; ?>">

<?

if ($NAAM) {


    $sql = "SELECT * FROM PRODUCTEN WHERE NAAM=\"$NAAM\"";

    $result = mysql_query($sql);

    $myrow = mysql_fetch_array($result);

    $NAAM = $myrow["NAAM"];

    $PRIJS = $myrow["PRIJS"];

    $OMSCHRIJVING = $myrow["OMSCHRIJVING"];
    
    $IMAGE = $myrow["IMAGE"];
    
    $CATEGORIE = $myrow["CATEGORIE"];
    

echo "<table align=\"left\"><tr><td align=\"right\">";
echo "NAAM:<input type=\"Text\" name=\"naam\" value=\"$NAAM\"><br>";
echo "PRIJS:<input type=\"Text\" name=\"prijs\" value=\"$PRIJS\"><br>";
echo "OMSCHRIJVING:<input type=\"Text\" name=\"omschrijving\" value=\"$OMSCHRIJVING\"><br>";
echo "IMAGE:<input type=\"Text\" name=\"image\" value=\"$IMAGE\"><br>";
echo "CATEGORIE:<input type=\"Text\" name=\"categorie\" value=\"$CATEGORIE\"><br>";
echo "<input type=\"Submit\" name=\"submit\" value=\"Update product\"></form>";
echo "</td></tr></table>";
}
}

?>

[ Voor 23% gewijzigd door Verwijderd op 20-10-2005 15:51 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:17

gorgi_19

Kruimeltjes zijn weer op :9

Kijk trouwens ook eens naar Register Globals en "SQL Injection Attacks" of wees niet verbaasd dat iemand je database sloopt.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 02:19
Je hebt nu <form><table></form></table>, grote kans dat dit niet goed gaat natuurlijk.

Roomba E5 te koop


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

PHP:
51
52
<input type=hidden name="NAAM" value="
<? echo $NAAM; ?>"> 


Waarom staat dat op twee regels?

Kijk eens goed wat je binnen krijgt na de submit.

plaats eens boven aan je script
PHP:
1
print_r($_POST)


Lees deze link eens door: Debuggen - Welkom in P&W (FAQ-19/02/2003)

[ Voor 82% gewijzigd door LuCarD op 20-10-2005 15:58 ]

Programmer - an organism that turns coffee into software.


  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 02-01 15:55
PHP:
1
if ($submit) {


Daar gaat het waarschijnlijk al fout, conrtoleer liever op $_POST bijvoorbeeld. En:
gorgi_19 schreef op donderdag 20 oktober 2005 @ 15:52:
Kijk trouwens ook eens naar Register Globals en "SQL Injection Attacks" of wees niet verbaasd dat iemand je database sloopt.

If I can't fix it, it ain't broken.


  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
sig69 schreef op donderdag 20 oktober 2005 @ 15:53:
Je hebt nu <form><table></form></table>, grote kans dat dit niet goed gaat natuurlijk.
Inderdaad, die zou ik ook allereerst eens verplaatsen.

Verwijderd

Topicstarter
Probleem opgelost, blijkbaar vind iexplorer <form> niet leuk met <table> ertussen.

Wat betreft SQL injection attacks, wat zou ik kunnen veranderen om het tegen te gaan?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Leuk dat het opgelost is, maar dit is hier dus niet de bedoeling. Wij zijn er niet jouw persoonlijk debugservice, debuggen moet je zelf kunnen doen. Om te beginnen had je hier al eens je HTML kunnen valideren en bovendien onze FAQ kunnen lezen waar een hoop in staat over debuggen. Dingen die je gewoon simpelweg niet gedaan hebt, anders had je dit topic niet hoeven openen.

Lees voordat je een nieuw topic opent ook eens P&W FAQ - De "quickstart" door.

Wat betreft SQL injectie: daar is meer dan genoeg over te vinden op Google, en dat moet je prima zelf kunnen vinden.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.