PHP script werkt niet goed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jos de Vries

Jos de Vries

28/02/2011 15:26:27
Quote Anchor link
Dag allemaal,

Weet iemand wat er niet goed is aan de onderstaande code?

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
<?php
      
  $server
= "localhost";
  $user = "user";
  $database = "database";
  $w8woord = "password";
  
  mysql_connect ("$server", "$user","$w8woord");  
  mysql_select_db("$database");
  
  $query= "SELECT * FROM foto WHERE ID=$_GET[nummer]";
    
   $result = mysql_query($query);  
  
    while ($record = mysql_fetch_object($result)) {
            
       $foto = $record->soort;
       $datum  = $record->datum;
       $plaats = $record->plaats;
       $tekst  = $record->tekst;
      
       echo "<p align=\"center\"><img src=\"../../images/1/" . $foto . ".jpg\" /></p>";
      
           if ($datum == "0000-00-00"){
               echo"<h2 align=\"center\"><font color=\"#008000\">". $foto ."</font></h2>";
      
           }
else {
                       echo"<h2 align=\"center\"><font color=\"#008000\">". $foto ."</font></h2>";
                       echo"<b align=\"center\"><font color=\"#CCCCCC\">". $datum ." :</font></b>";
                       echo "<a>                </a>";
                     echo"<b align=\"center\"><font color=\"#CCCCCC\">". $plaats ."</font></b>";
                     echo"<p align=\"left\"><font color=\"#CCCCCC\">  ". $tekst ." </font></p>";
               }
//end if
    }
?>


Ik krijg deze foutmelding:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in bestand.php on line ..

Ik hoop dat iemand mij kan helpen. Mocht er nog meer info nodig zijn, dan hoor ik het graag.

Met vriendelijke groet,

Jos de Vries
 
PHP hulp

PHP hulp

24/12/2024 17:06:52
 
Wesley PHP

Wesley PHP

28/02/2011 15:33:20
Quote Anchor link
Misschien een domme vraag, maar bestaat de tabel foto ?
 
Kris Peeters

Kris Peeters

28/02/2011 15:34:51
Quote Anchor link
Het ziet er naar uit dat de sql string niet goed is.

bv. je gebruikt een tabel of veld dat niet bestaat.

Wat het ook kan zijn: $_GET[nummer] is leeg, of toch geen geheel getal.
Dan wordt je sql string bv.

"SELECT * FROM foto WHERE ID=" // wat uiteraard niet mag
of
"SELECT * FROM foto WHERE ID=een string" // wat al helemaal niet mag

Controleer je daar ergens op, dat $_GET[nummer] ingevuld is, dat het numeriek is?
Gewijzigd op 28/02/2011 15:35:51 door Kris Peeters
 
- Ariën  -
Beheerder

- Ariën -

28/02/2011 15:35:43
Quote Anchor link
- Foutafhandeling, lees ook dit:
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/

- SQL Injection is mogelijk. Je controleert je input niet in $_GET, en elke gek kan met weinig moeite je database induiken.

- variabelen stana buiten quotes, dat mag niet.

- Wat is het nu van een blanco <a> </a>

- Waarom ga je variabelen kopieeren in lijn 17 t/m 20?

Terug naar de tekentafel dus.
 
Jos de Vries

Jos de Vries

01/03/2011 09:48:14
Quote Anchor link
Bedankt voor de reacties.

@Wesley PHP: ER bestaat inderdaad een tabel foto.

Het script is hier werkend te zien:

http://www.noordlaarderbos.nl/NL/soorten/index.php

Wat ik wil, is het overzetten naar Wordpress op deze website:

www.vleugelsensnaren.nl

@Chris Peters: Quote: "Wat het ook kan zijn: $_GET[nummer] is leeg, of toch geen geheel getal. Dan wordt je sql string bv."

Hoe kun je controleren of $_GET(nummer) leeg is?

Het script is overigens niet van mijzelf. Zelf ben ik nog een beginner op het gebied van PHP. Het probleem zit inderdaad in "$_GET[nummer]", want ik een nummer hier in vul, dan gaat het wel goed. Maar dat is niet de bedoeling.

Ik heb de database overigens overgezet naar een lokale db op mijn PC.

@Aar: Quote: "- SQL Injection is mogelijk. Je controleert je input niet in $_GET, en elke gek kan met weinig moeite je database induiken."

Hoe kun je voorkomen dat elke gek in je db kan duiken?

Met vriendelijke groet,

Jos de Vries
 
Dindong Veter

Dindong Veter

01/03/2011 09:52:47
Quote Anchor link
Jos de Vries op 01/03/2011 09:48:14:

Hoe kun je voorkomen dat elke gek in je db kan duiken?

Met vriendelijke groet,

Jos de Vries


$query= "SELECT * FROM foto WHERE ID= '".mysql_real_escape_string($_GET[nummer])."' ";
 
- Ariën  -
Beheerder

- Ariën -

01/03/2011 09:58:31
Quote Anchor link
Bijna..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$query= "SELECT soort, plaats, datum, tekst FROM foto WHERE ID= '".mysql_real_escape_string($_GET['nummer'])."' ";
Gewijzigd op 01/03/2011 09:59:06 door - Ariën -
 
Jos de Vries

Jos de Vries

01/03/2011 12:28:39
Quote Anchor link
Bedankt "Aar", ik heb het in het script verwerkt.

Het probleem is dat je eerste een foutmelding krijgt omdat
"nummer" in het begin nog geen waarde heeft. Bij het origineel
wordt eerst een ander script opgestart. Zodra je op een soort
klik dan krijgt 'nummer' een waarde.

Hoe kan ik 'nummer' gelijk een waarde toekennen, zonder dat je hoeft
te klikken op een vogelnaam?

Deze foutmelding krijg ik als 'nummer' geen waarde heeft.

"Undefined index: nummer in ....

Met vriendelijke groet,

Jos de Vries
 
Kris Peeters

Kris Peeters

01/03/2011 12:37:38
Quote Anchor link
Jos de Vries op 01/03/2011 09:48:14:

Hoe kun je controleren of $_GET(nummer) leeg is?


if (empty($_GET['nummer']))
 



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.