(parse?) Fout in PHP script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michel Rakhorst

Michel Rakhorst

23/01/2012 20:37:16
Quote Anchor link
Hallo iedereen !

Ik heb een fout in een van mijn PHP pagina's maar ik kom er niet uit.
Willen jullie misschien even een handje helpen.
Bij voorbaat dank!

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
<?
//ingelogt ? chek start
if (isset($_COOKIE['username'])){
//ingelogt ? chek stop
?>

<?
// artikel toevoegen php script start
if(mysql_connect('localhost','xxx','xxx'))
  {

    mysql_select_db('michelrakh_gfex') or die(mysql_error());
  }

else
  {
    echo 'Kan geen verbinding maken';
    exit;
  }

  
 $soort = $_POST['soort'];
 $merk = $_POST['merk'];
 
 if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
 {

 
 $aFouten = array();
 if($_POST['soort'] == '')
   {

       $aFouten[] = 'Je Hebt geen soort ingeveuld';
   }

  
  if($_POST['merk'] == '')
  {

      $aFouten[] = 'Je hebt geen merk ingevuld';
  }

  if($_POST['type'] == '')
  {

      $aFouten[] = 'Je hebt geen merk ingeveuld';
  }

  if($_POST['artikelnummer'] == '')
  {

      $aFouten[] ='Je hebt geen artikelnummer ingeveuld';
  }

  
  
  
  if(count($aFouten) != 0)
  {

      echo 'De volgende fouten zijn opgetreden: <br/><br/>';
      for($Fi = 0; $Fi <count($aDouten); $Fi++)
      {

          echo $aFouten[$fi].'<br/>';
      }

      echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
  }

  else
  {
      mysql_query("INSERT INTO Voorraad (Soort,Merk,Type,Artikelnummer) VALUES ('".addslashes($_POST['soort'])."','".addslashes($_POST['merk'])."','".$_POST['Type']."','".addslashes($_POST['Artikelnummer'])."')") or die (mysql_error());
      echo 'De gegevens zijn succesvol opgeslagen in de database<br/><a href="artikeltoevoegen.php">klik hier om terug te gaan';
      }
        }

else
  {

// artikel toevoegen php script stop
?>

<H1>Artikel toevoegen</H1>
<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
<table><tr><td>
<select name="soort"><option value="">Soort</option>
<?PHP
      $sql
= "SELECT Soort FROM Soort ORDER BY Soort ASC";
      $query = mysql_query($sql);
      while($rij = mysql_fetch_object($query)) {
      
       $soort = htmlspecialchars($rij->Soort);
       echo "<option value=\"".$soort."\">".$soort."</option>\n";
      }

?>

</select>
</td></tr><tr><td>
<select name="merk"><option value="">Merk</option>
<?PHP
      $sql
= "SELECT Merk FROM merken ORDER BY Merk ASC";
      $query = mysql_query($sql);
      while($rij = mysql_fetch_object($query)) {
      
       $merk = htmlspecialchars($rij->Merk);
       echo "<option value=\"".$merk."\">".$merk."</option>\n";
      }

?>


</select>
</td></tr><tr><td>
Type:<br /> <input type="text" name="Type"><br />
Artikelnummer:<br /> <input type="text" name="Artikelnummer"><br />
</td></tr>
<tr><td><input type="submit" name="verzenden" value="verzenden"></td></tr>
</table>
</form>
<?
//ingelogt ? error start
} else {
echo "Je bent niet ingelogd.";
}

//ingelogt ? error stop
?>


Ik heb even de topic titel aangepast en het wachtwoord in je script weggehaald, wees er bewust van dat dit soort informatie ook geïndexeerd wordt in Google e.d. en het gevolg kan zijn dat je site gehackt wordt e.d. Graag in het vervolg een passende topic titel gebruiken (waar het probleem/vraagstuk ook echt over gaat) en ik zou ook even kijken naar de security tips van de antwoorden in dit topic.[/modedit]
Gewijzigd op 23/01/2012 21:21:47 door Kees Schepers
 
PHP hulp

PHP hulp

22/12/2024 18:56:09
 
- Ariën  -
Beheerder

- Ariën -

23/01/2012 20:39:28
Quote Anchor link
We kunnen veel, maar we kunnen met onze menselijk vermogen geen PHP-code parsen.
Dus is het niet handiger dat je vertelt wat er gebeurt?
Gewijzigd op 23/01/2012 20:40:01 door - Ariën -
 
Bas IJzelendoorn

Bas IJzelendoorn

23/01/2012 20:39:50
Quote Anchor link
Welke fout wordt er dan weergeven?

Aar was me net voor.
Gewijzigd op 23/01/2012 20:41:46 door Bas IJzelendoorn
 
Michel Rakhorst

Michel Rakhorst

23/01/2012 20:46:53
Quote Anchor link
Browser IE: kan pagina niet weergeven

Dreamweaver CS5: There is a syntax error on line 102. Code Hinting may not work until you fix this error.
 
Jens erd

Jens erd

23/01/2012 20:50:19
Quote Anchor link
Gevonden! op regel 27, 36 en 40 spel je 'Gevuld' verkeerd.

Nee even serieus, behalve dat het een eitje is om een cookie aan te passen en dus in te loggen op dit systeem, is het script vatbaar voor Sql injectie, je bij een echo beter een enkelvoudige apostrof kunt gebruiken, de foutenafhandeling mist bij query's,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$_SERVER['PHP_SELF']?>
toch niet de beste manier is om een formulier te versturen, tabellen niet gemaakt zijn voor formulieren, variabelen meervoudig kopiëren overbodig is, en ik zojuist vast nog wel e.e.a over het hoofd gezien heb, snijd je jezelf in de hand door op regel 48 hoofdletters te gebruiken en 2 regels verderop kleine letters toe te passen. Ik heb het vermoeden dat het daar fout gaat.

Succes!
 
Jyy An

Jyy An

23/01/2012 21:02:33
Quote Anchor link
Je script zit vol met lekken, je post je wachtwoord inclusief gebruikersnaam en db, en de fout die je zoekt zit hem in een } ;) Je vergeet namelijk de else af te sluiten bij if request_method=post ;) Dus op regel 100 nog een } erbij.
 



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.