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:
<?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:
<?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...
@Citroen: Men wordt doorgestuurd van een andere pagina:
<?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;
In het bovenstaande script wordt verwezen naar include "../data/db_database.php"; Hierin staan de database gegevens (zie eerste post).
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!)
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:
<?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
<?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>";
}
?>
Begin je script eens met:
<?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...
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
<?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;
Er gaat blijkbaar toch iets fout met de verwijzingen naar de andere pagina's..