Acces denied? gegevens kloppen..

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter S

Peter S

19/12/2008 17:33:00
Quote Anchor link
Ik krijg op een pagina de volgende melding:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'bert'@'localhost' (using password: NO) in /var/www/vhosts/domein.nl/httpdocs/moppen/zoeken/zoek_form.php on line 5

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /var/www/vhosts/domein.nl/httpdocs/moppen/zoeken/zoek_form.php on line 5
Access denied for user 'bert'@'localhost' (using password: NO)

Dit is de code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
// invoer formulier

$query = "SELECT * FROM moppen_cat ORDER BY cat_naam";
$result=mysql_query($query);
if (!$result) echo mysql_error();

?>


De database gegevens worden uit een andere file gehaald:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?PHP

$hostname
= "localhost";
$dbuser = "****";
$dbpass = "****";
$db = "****";

$link = mysql_connect ($hostname, $dbuser, $dbpass);
if (! $link){die ("Er kan geen verbinding worden gemaakt met de mySQL server");}
if (!mysql_select_db ($db, $link) ){die ("De database kan niet worden geopend<br> $db: ".mysql_error() );}

?>


Iemand een idee waar de fout in zit? De database gegevens kloppen...
 
PHP hulp

PHP hulp

14/05/2024 06:24:57
 
Citroen Anoniem Graag

Citroen Anoniem Graag

19/12/2008 17:46:00
Quote Anchor link
Word het bestand wel geinlcuded vóór je de query uitvoerd?

Dus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
include('connect.php');

$query = "SELECT * FROM moppen_cat ORDER BY cat_naam";
$result=mysql_query($query);
if (!$result) echo mysql_error();
?>
 
--

--

19/12/2008 17:58:00
Quote Anchor link
Overbodig advies, maar check het echt nog even 10x en misschien zie je toch een fout.
 
Peter S

Peter S

19/12/2008 18:18:00
Quote Anchor link
@Citroen: Men wordt doorgestuurd van een andere pagina:

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
<?php
setlocale (LC_ALL, 'Dutch');
include "../data/db_database.php";
include "../data/header.html";

if (!$actie) $actie="index";
if ($zoek) $zoek=strip($zoek);
if ($actie=="insert")    include "./zoek_insert.php";
if ($actie=="nieuw")    include "./zoek_form.php";
if ($actie=="list")    include "./zoek_list.php";
if ($actie=="index")    include "./zoek_index.php";

include "../data/footer.html";
exit;
[
/code]

In het bovenstaande script wordt verwezen naar include "../data/db_database.php"; Hierin staan de database gegevens (zie eerste post).

@
Evert: ik zie het niet..
Gewijzigd op 01/01/1970 01:00:00 door Peter S
 
- SanThe -

- SanThe -

19/12/2008 18:24:00
Quote Anchor link
$dbuser = "****";
$dbpass = "****";

En hierin staat inderdaad de juiste user (bert in dit geval) en een correct password ingevuld?
 
Peter S

Peter S

19/12/2008 18:34:00
Quote Anchor link
Dat is vreemd.. Beide usernames komen niet overeen, maar daarmee is het probleem niet opgelost. In het controlpanel (plesk) heb ik een database met een user aangemaakt, deze gegevens heb ik ook in het script gebruikt (geen Bert!)
 
- SanThe -

- SanThe -

19/12/2008 18:39:00
Quote Anchor link
Soldier81 schreef op 19.12.2008 17:33:
Access denied for user 'bert'@'localhost' (using password: NO)

Dan wordt blijkbaar toch niet het juiste bestand gebruikt.
 
Peter S

Peter S

20/12/2008 11:20:00
Quote Anchor link
Ik had het eerst op een andere server staan en daar werkt het wel (nogmaals gecheckt, dat werkt).

Wanneer ik het in het bestand zelf ook include, krijg ik geen melding meer over de database problemen, dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// invoer formulier
include ('../data/db_databse.php');

$query = "SELECT * FROM moppen_cat ORDER BY cat_naam";
$result = mysql_query($query);
if (!$result) echo mysql_error();

?>


Nu heb ik alleen het probleem dat de links niet aanklikbaar zijn (er gebeurt niets, ook geen foutmelding). Terwijl het op de andere server wel werkt.

Server waar het werkt:
PHP Version 4.4.2
mysql 4.1.11

Server waar het nu dus niet werkt:
PHP Version 5.2.6
mysql 4.1.22

Hierbij de index.php

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
<?php
// Invoer moppen database voor admin...
setlocale (LC_ALL, 'Dutch');
include "../data/db_database.php";
include "../data/header.html";

// variabelen..
$afzender="naam";
$afzender_email="[email protected]";
//$afzender_email="[email protected]";
$subject="Bijdrage";

if (!$actie) $actie="index";
if ($zoek) $zoek=strip($zoek);
if ($actie=="insert")    include "./zoek_insert.php";
if ($actie=="nieuw")    include "./zoek_form.php";
if ($actie=="list")        include "./zoek_list.php";
if ($actie=="index")    include "./zoek_index.php";

include "../data/footer.html";
exit;

// Functies
function strip($string){
$string=trim($string);
$string=stripslashes($string);
$string=strip_tags($string, '<br><b><i>');
return("$string");
}

function
tijd($tijd){
$tijd=strftime("%A %d %B %Y",$tijd);
return("$tijd");
}

function
zoek_box() {
global $cat, $zoek;
echo "<table width=\"95%\" border=\"0\" align=\"center\" cellpadding=\"2\" cellspacing=\"0\" class=\"index\">";
echo "<tr bgcolor=\"#FF9900\">";
echo "<form action=\"\" method=\"POST\">";
echo "<td align=\"center\" valign=\"middle\"><strong>Zoek naar <input type=\"text\" name=\"zoek\" value=\"".strip($zoek)."\"> ";
echo "in ";

$query = "SELECT * FROM moppen_cat ORDER BY cat_naam";
$result=mysql_query($query);
if (!$result) echo mysql_error();

?>

<select name="cat" id="select">

<?php
echo "<option value=\"\"";
if (!$cat) echo "selected";
echo ">Alle categorieën</option>";
while ($lijst=mysql_fetch_assoc($result)){
echo "<option value=\"$lijst[cat_id]\"";
if ($cat and $cat==$lijst[cat_id]) echo " SELECTED";
echo ">$lijst[cat_naam]</option>\n";
}


?>

</select>
  <input type="hidden" name="actie" value="list">
  <input type="hidden" name="start" value="0">
  <input type="submit" name="Submit" value="zoek">
<?php
echo "</strong></td>";
echo "</tr></form></table>";

}


?>


Enig idee waar de fout zit?
Gewijzigd op 01/01/1970 01:00:00 door Peter S
 
Joren de Wit

Joren de Wit

20/12/2008 12:41:00
Quote Anchor link
Begin je script eens met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>

Hoe kom je verder aan de variabelen $actie en $zoek? Ik gok dat het probleem is dat register_globals op de oude server wel ingeschakeld is en op de nieuwe server, zoals het hoort, niet.

Als dat het geval is zul je dus superglobals (zoals $_GET en $_POST) moeten gebruiken om die variabelen op te halen...
 
Peter S

Peter S

20/12/2008 12:47:00
Quote Anchor link
Ik heb het toegevoegd en hij geeft nu inderdaad een foutmelding:

Notice: Undefined variable: actie in /var/www/vhosts/---.nl/httpdocs/moppen/zoeken/index.php on line 18

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
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>


<?php
// Invoer moppen database voor admin...
setlocale (LC_ALL, 'Dutch');
include "../data/db_fns.php";
include "../data/header.html";

// variabelen..
$afzender="naam";
$afzender_email="[email protected]";
//$afzender_email="[email protected]";
$subject="Bijdrage";

if (!$actie) $actie="index";
if ($zoek) $zoek=strip($zoek);
if ($actie=="insert")    include ("./zoek_insert.php");
if ($actie=="nieuw")    include ("./zoek_form.php");
if ($actie=="list")    include ("./zoek_list.php");
if ($actie=="index")    include ("./zoek_index.php");

include ("../data/footer.html");
exit;
[
/code]

Er gaat blijkbaar toch iets fout met de verwijzingen naar de andere pagina's..
Gewijzigd op 01/01/1970 01:00:00 door Peter S
 
Douwe

Douwe

20/12/2008 12:51:00
Quote Anchor link
Precies wat Blanche zegt:
Je gebruikt $actie, die nergens gedefined is. Je moet deze dus eerst definen als $actie = $_GET['actie']; bijvoorbeeld.
 
Frank -

Frank -

20/12/2008 12:54:00
Quote Anchor link
Douwe M schreef op 20.12.2008 12:51:
Precies wat Blanche zegt:
Je gebruikt $actie, die nergens gedefined is. Je moet deze dus eerst definen als $actie = $_GET['actie']; bijvoorbeeld.
En wat dacht van een héél klein beetje beveiliging? Je maakt jouw "oplossing" weer presies dezelfde veiligheidslekken aan als dat er met de superglobals-shit al waren.

Ga dus eerst maar eens controleren of $_GET['actie'] een waarde bevat die jij verwacht.
 
Douwe

Douwe

20/12/2008 12:57:00
Quote Anchor link
Ik geef alleen een oplossing voor het niet gedefinieerd zijn. Ik neem aan dat meneer de TS zelf wel wat kan beveiligen...
 



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.