Update fout mysql php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter

peter

27/03/2007 09:22:00
Quote Anchor link
Ik mag een script aanpassen voor een bedrijf. Alleen de code is zo vaag dat ik er weinig van snap.


Ik krijg deze fout melding:

Lengte en Titel zijn verplicht.<br>
- Lengte en Vraagprijs moeten nummeriek zijn

heeft iemand tips?

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
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<?php
  $menu
= '0';
  $title = 'Beheer';
  include("stt.php");
  include 'connect.php';
  if (mysql_escape_string(strip_tags($_GET["user"])))
  {

    $txtUsername = mysql_escape_string(strip_tags($_GET["user"]));
  }

  else
  {
    if (mysql_escape_string(strip_tags($_POST["txtUsername"])))
    {

      $txtUsername = mysql_escape_string(strip_tags($_POST["txtUsername"]));
    }
  }

  if (mysql_escape_string(strip_tags($_GET["pass"])))
  {

    $txtPassword = mysql_escape_string(strip_tags($_GET["pass"]));
  }

  else
  {
    if (mysql_escape_string(strip_tags($_POST["txtPassword"])))
    {

      $txtPassword = mysql_escape_string(strip_tags($_POST["txtPassword"]));
    }
  }

  $presult = mysql_query("SELECT * FROM passwords") or die(mysql_error());
  $paantal_rijen = mysql_num_rows($presult);
  if ($paantal_rijen > 0)
  {

    for ($pi = 0; $pi < $paantal_rijen; $pi++)
    {

      $username = mysql_result($presult, $pi, 'username');
      $password = mysql_result($presult, $pi, 'password');
      $authority = mysql_result($presult, $pi, 'authority');
      if ($txtUsername == $username &&  $txtPassword == $password)
      {


  $info = mysql_query("SELECT CURRENT_DATE");
  $datum = mysql_result($info, 0, 'CURRENT_DATE');
  $naamboot = $_POST["naamboot"];
  $vraagprijs = $_POST["vraagprijs"];
  $soort = $_POST["soort"];
  $lengte = $_POST["lengte"];
  $breedte = $_POST["breedte"];
  $bouwjaar = $_POST["bouwjaar"];
  $materiaal = $_POST["materiaal"];
  $diepgang = $_POST["diepgang"];
  $aantalmotoren = $_POST["aantalmotoren"];
  $motormerk = $_POST["motormerk"];
  $brandstof = $_POST["brandstof"];
  $ligplaats = $_POST["ligplaats"];
  $omschrijving = $_POST["omschrijving"];
  $provincie = $_POST["provincie"];
  
  $be_adres = $_POST["be_adres"];
  $be_postbus = $_POST["be_postbus"];
  $be_contactpersoon = $_POST["be_contactpersoon"];
$be_telefoonnummer = $_POST["be_telefoonnummer"];
  $be_faxnummer = $_POST["be_faxnummer"];
 $be_email = $_POST["be_email"];
  
  $be_telefoonnummer = NULL;
  $be_faxnummer = NULL;
  $be_email = NULL;
  /*
       be_adres
     be_postbus
     be_contactpersoon
     be_telefoonnummer
     be_faxnummer
     be_email
  */

  

  
  if ($lengte && is_numeric($lengte) && $naamboot)
  {

    if ($vraagprijs)
    {

      if (is_numeric($vraagprijs))
      {

        $ok = "1";
      }  
    }

    else
    {
      $vraagprijs = "0";
      $ok = "1";
    }

    $lengte = (round($lengte, 0));
    $vraagprijs = (round($vraagprijs, 0));
  }

  if ($ok == "1")
  {

    $actie = mysql_query(
      "update INTO boot
        (id, datum, naamboot, vraagprijs, soort, lengte, breedte, bouwjaar, materiaal, diepgang, aantalmotoren, motormerk, brandstof, ligplaats, provincie, omschrijving, be_adres, be_postbus, be_contactpersoon, be_telefoonnummer, be_faxnummer, be_email)
        VALUES
        (NULL,'$datum','$naamboot','$vraagprijs','$soort','$lengte','$breedte','$bouwjaar','$materiaal','$diepgang','$aantalmotoren','$motormerk','$brandstof','$ligplaats','$provincie','$omschrijving', '$be_adres', '$be_postbus', '$be_contactpersoon', '$be_telefoonnummer', '$be_faxnummer', '$be_email')
      "
)
    or die( mysql_error());
    $id = mysql_insert_id();
    $result = mysql_query("SELECT * FROM boot ORDER BY datum ASC") or die(mysql_error());
    $aantal_rijen = mysql_num_rows($result);
    //for ($i = 0; $i < $aantal_rijen; $i++)
    //{
    //  $id = mysql_result($result, $i, 'id');
    //}

    
    $foto_ok = FALSE;
    for ($i = 1; $i < 4; $i++) {
        $photoFileName = $_FILES['photo'.$i]['name']; // get client side file name
        if ($photoFileName) // file uploaded
        {
              $fileNameParts = explode(".", $photoFileName);
              $fileExtension = end($fileNameParts); // part behind last dot
              if ($fileExtension != "jpg" && $fileExtension != "JPEG" && $fileExtension != "JPG")
              {
    
                die ("Kies een JPG voor de foto");
             }

              $photoSize = $_FILES['photo'.$i]['size']; // size of uploaded file
              if ($photoSize == 0)
              {

                die ("Helaas. De upload van $photoFileName is niet gelukt. Zoek een foto kleiner dan 200K, met behulp van de button.");
              }

              if ($photoSize > 204800)
              {

                die ("Helaas. Het bestand $photoFileName is groter dan 200Kb. Advies: verklein de foto met behulp van een tekenprogramma.");
              }

              
              $tempFileName = $_FILES['photo'.$i]['tmp_name']; // temporary file at server side
              $tempFile = fopen($tempFileName, "r");
              if (move_uploaded_file($_FILES['photo'.$i]['tmp_name'], 'fotoos/'.$id.'-'.$i.'.jpg'))
                  $foto_ok = TRUE;
        }
    }

    
    
    if ($foto_ok == FALSE)
        echo "<p>Geen foto geupload</p>";
    
    echo "<h3>De boot is toegevoegd...</h3><br>";
    echo "<a href=\"beheer.php?&user=$txtUsername&pass=$txtPassword\">Ga naar de account</a>";
  }
  
  else
  {
    echo "<h2>Er is een fout opgetreden bij het toevoegen van de advertentie...</h2>
      <p>1 of meerdere gegevens waren mogelijk fout ingevult...<br>
      - Lengte en Titel zijn verplicht.<br>
      - Lengte en Vraagprijs moeten nummeriek zijn<br>
    "
;    
  }

  
  
        break;
      }

      else
      {
        if ($pi+1 == $paantal_rijen)
        {

          echo "<br><center><h2>Foute gebruikersnaam/wachtwoordcombinatie...</h2>\n";
          echo "<form name='form' method='post' action='beheer.php'>\n";
          echo "<p><label for='txtUsername'>Gebruikersnaam:</label>\n";
          echo "<br><input type='text' title='Typ je gebruikersnaam' name='txtUsername'></p>\n";
          echo "<p><label for='txtpassword'>Wachtwoord:</label>\n";
          echo "<br><input type='password' title='Typ je wachtwoord' name='txtPassword'></p>\n";
          echo "<p><input type='submit' name='Submit' value='Inloggen'></p>\n";
          echo "</form></center>\n";
        }
      }
    }
  }

  include("stb.php");
?>
 
PHP hulp

PHP hulp

24/11/2024 07:06:15
 
Frank -

Frank -

27/03/2007 11:20:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
if (mysql_escape_string(strip_tags($_GET["user"])))
  {

    $txtUsername = mysql_escape_string(strip_tags($_GET["user"]));
  }

?>

en
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$naamboot
= $_POST["naamboot"];
  $vraagprijs = $_POST["vraagprijs"];
?>

Leg eens uit waarom het slim is om alle code 2x te schrijven, functies dubbel toe te passen, etc. etc.

Verder is $info = mysql_query("SELECT CURRENT_DATE"); ook volkomen overbodig in dit geval, wat leuk geweest om de datum op het scherm te zetten, wanneer je de datum in een query nodig hebt, gebruik dan NOW(). Scheelt een query, paar regels code en kans op fouten.

Het is trouwens raar dat jouw script begint met vele malen de functie mysql_real_escape_string, maar dat je die functie niet op alle user-input toepast. Je bent daarin niet consequent. Gebruik het overal 1x (aan te raden) of helemaal nergens. Dat is een stuk eenvoudiger te debuggen.

De functie mysql_num_rows() zal niet werken, je gebruikt hem op het resulataat van een update-query. En zoals je in de handleiding kunt lezen, heb je daar de functie mysql_affected_rows() voor nodig.

Tip: Ga bovenstaande code flink opschonen, alle dubbele code en functies weggooien en vervolgens de juiste code inkloppen.

Succes!
 



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.