Un lien vers le serveur n'a pas pu être établie

Très simple d'insérer une fonction, et encore. Il donne quelques vilaines fautes...

Comme:

Warning: mysql_query(): Access denied for user '***.'@'***.one.com' (using password: NO) in /customers/***.be/***.be/httpd.www/belastingen/classes/btw.php on line 24 Warning: mysql_query(): A link to the server could not be established in /customers/***.be/***.be/httpd.www/belastingen/classes/btw.php on line 24

Et c'est le code:

<?php

    if(isset($_POST['submit'])){

    $naam = $_POST['name'];
    $email = $_POST['email'];
    $kind1 = $_POST['kind1'];
    $kind2 = $_POST['kind2'];
    $kind3 = $_POST['kind3'];
    $kind4 = $_POST['kind4'];
    $kind5 = $_POST['kind5'];
    $captcha = $_POST['captcha'];

        if ($captcha == 2){
            if (!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['kind1'])) {
                    $insert = "INSERT INTO belastingen (ouder, email, kind1, kind2, kind3, kind4, kind5) VALUES (
                            '".$naam."',
                            '".$email."',
                            '".$kind1."',
                            '".$kind2."',
                            '".$kind3."',
                            '".$kind4."',
                            '".$kind5."')";
                if (!mysql_query($insert)) {
                    echo "<div class=\"feedback\">query invoeren faalt</div>";
                } else { 
                    echo "<div class=\"feedback\">Uw registratie werd goed geregistreerd</div>";
                }


                }    else {
                echo "<div class=\"feedback\">falen, niveau 2</div>";
            }
        } else {
            echo "<div class=\"feedback\">captcha probleem</div>";
        }
    }   
?>

Et ne vous inquiétez pas à propos de la base de données MySQL-injection. L'ajout que nous parlons.
Toute pensée sur l'erreur?
Et oui, je suis sûr que les données pour la connexion à la base de données sont correctes.

Mise à JOUR de 1
C'est mon inc.php-fichier inclus sur le dessus de la index.php fichier.

<?php
  define('MYSQL_HOST',  '***.be.mysql');
  define('MYSQL_DB',    '***');
  define('MYSQL_USER',  '***');
  define('MYSQL_PASSW', '***');

  require_once 'classes/dbconnections.php';
  require_once 'classes/btw.php';
  $_DB = new DBConnection(MYSQL_HOST, MYSQL_DB, MYSQL_USER, MYSQL_PASSW);
?>

Mise à JOUR 2
C'est mon dbconnections.php-fichier

<?php
class DBConnection {
public  $host;
public  $db;
public  $user;
public  $password;
private $_connection;
public function __construct($host = null, $db = null, $user = null, $password = null) {
$this->host     = $host;
$this->db       = $db;
$this->user     = $user;
$this->password = $password;
$this->connect();
}
private function connect(){
$this->_connection = mysql_connect($this->host, $this->user, $this->password);
if(!$this->_connection) {
die("An error occured---- while connecting to the database: ".mysql_errno()." - ".mysql_error());
} else{
$selected = mysql_select_db($this->db, $this->_connection);
if(!$selected) {
die("An error occured while connecting to the database: ".mysql_errno()." - ".mysql_error());
}
} 
}
public function listing($sql) {
$result = mysql_query($sql, $this->_connection);
while($row=mysql_fetch_array($result)) {
$return[] = $row;
}
return $return;
}
public function select($sql) {
$result = mysql_query($sql, $this->_connection);
return mysql_fetch_array($result);
}
public function insert($sql) {
mysql_query($sql, $this->_connection);
return mysql_affected_rows($this->_connection);
}
public function delete($sql) {
mysql_query($sql, $this->_connection);
return mysql_affected_rows($this->_connection);
}
public function escape($value) {
return mysql_real_escape_string($value);
}
}
?>

Mise à JOUR 3

L'erreur que j'obtiens lorsque le remplacement de la amincit proposé ci-dessous

Notice: Undefined variable: _DB in /customers/***/***/httpd.www/belastingen/classes/btw.php on line 13 Fatal error: Call to a member function insert() on a non-object in /customers/***/***/httpd.www/belastingen/classes/btw.php on line 13
  • Avez-vous correctement initialiser une connexion mysql à l'aide de mysql_connect (php.net/manual/en/function.mysql-connect.php) le passage d'un mot de passe? L'erreur semble indiquer aucun mot de passe n'a été adoptée ou une connexion n'a pas été trouvé à utiliser pour la requête. Si vous avez une connexion identifiant de lien, les faire passer comme deuxième paramètre de mysql_query
  • - Je inclure un inc.phpfichier où la connexion est faite, si c'est ce que tu veux dire?
  • Avez-vous un include 'inc.php' dans le fichier de l'extrait ci-dessus est à partir de? Toute chance vous pouvez coller le inc.php code tout en veillant à dissimuler tous les mots de passe ou d'autres informations de chemin d'accès?
  • L'erreur vient inc.php si c'est là que la connexion est établie. pas dans ce bout de code. Et c'est soit vous r'db connexion est incorrecte, ou de l'insuffisance des privilèges de connexion à la db.
  • J'ai pensé au premier abord, mais l'erreur extrait dit un serveur n'a pas pu être établi pour la mysql_query appel dans son code.
  • Ok, merci pour l'aide! J'ai inclus mon inc.php fichier dans le code d'origine... C'est étrange, la cause presque le même code a très bien fonctionné sur un autre site. C'est peut-être mon hébergeur?
  • Votre DBConnection ne fournit pas de mot de passe pour le serveur MySQL, il répond avec Access denied for user bla bla (using password: **NO**)
  • Mais il ne define('MYSQL_PASSW', '***'); pas?
  • Il pourrait être quelque chose à voir avec le " dbconnections la classe que vous utilisez, et je ne suis pas sûr de savoir comment cette classe fonctionne (peut-être n'importe quoi, vraiment, je suis en supposant que vous avez défini vous-même?).
  • Oui, je le fais. Si vous le souhaitez, je peux le poster aussi...
  • Oui, ça aiderait. Je ne suis pas sûr de savoir comment la classe définit la connexion, puis vous peut-être référence comme $_DB->connection ou quelque chose comme mysql_query($insert, $DB->connection).
  • et votre classe DBConnection fait quoi? la racine est l'endroit où vous faites mysql_connect(host,user,pass)
  • J'ai ajouté le dbconnection.php fichier. A-t-elle être à la racine (c'est pas...)
  • Donc, il semble que plutôt que de mysql_query($insert), vous devez utiliser $_DB->insert($insert). Donner un coup de feu et voir si cela fonctionne. (EDIT: je faisait référence à la " index.php code, btw. réalisé qu'il peut porter à confusion)
  • Ok, fait sens. Mais pour quelque raison il y a un nouveau message d'erreur Fatal error: Call to a member function insert() on a non-object in étrange. Il ressemble à la inc.phpfichier n'est pas inclus, après tout. Ou je me suis trompé? (EDIT: sur la index.php absence d'une telle requête... Tu veux les remplacer if (!mysql_query($insert)) avec if (!$_DB->insert($insert)) droit?
  • Pouvez-vous vérifier le inc.php fichier est inclus dans le index.php fichier (vous dites que vous n'êtes pas sûr si elle est?). Et c'est le remplacement que je voulais dire.
  • Ok, juste testé. Le inc.php fichier est inclus dans le index.php fichier. Pas de doute à ce sujet. Mais il semble que la connexion à la dbconnections.php est un échec... (bien que, il est inclus dans de index.php-fichier ainsi, pour sûr.)
  • viens de remarquer quelque chose...et tu vas me haïr :)...mais pouvez-vous poster le 'btw.php" classe ainsi? L'erreur d'origine des références de fichiers trop. Êtes-vous toujours obtenir l ' "erreur Fatale: Appel à un membre de la fonction insert() sur un non-objet dans l'erreur" (et, si oui, pouvez-vous s'il vous plaît poster le message d'erreur aussi)?
  • Ok, je n'ai pas l'esprit de la publication, tant que vous n'avez pas l'esprit à la lecture de mon code de merde 🙂 Mais le btw.php fichier que vous visez, est déjà posté. C'est la première.
  • aha! Ok, donc ne nécessitent pas de 'db.inc' dans 'btw.php'. Et, en db.inc, essayez de mettre require_once 'classes/btw.php'; après le $_DB=.... dans db.inc au lieu d'avant.
  • Eum, pas sûr de ce que vous voulez dire avec votre premier sentense... Et dans inc.php est btw indiqué dernier et dans dbconnections.php il n'y a rien compris... (EDIT: nevermind, vous avez votre idée. Permettez-moi de voir)
  • Encore la Undefined variale.... trucs
  • Je pense que le problème est que dans la db.inc, les btw.php le fichier est inclus avant le $_DB variable est même créé, donc les références btw.php pour $_DB retour de l'erreur que vous avez posté en réponse à @steve (ce commentaire est juste une sorte de résumé de ce que les étapes que j'ai écrit essayaient de résoudre)
  • désolé de continuer à tirer sur vous dans des directions différentes, mais je suis de vous aider en passant par les choses de la façon dont je le ferais si c'était mon code. Cela dit, essayez de changer les choses afin que db.inc est nécessaire dans btw.php; btw.php est nécessaire dans index.php plutôt que db.inc; et "btw.php" n'est pas nécessaire dans db.inc. À la lecture de php.net/manual/en/function.include.php, je pense que cela pourrait avoir à faire avec la portée
  • Je pense que vous avez raison, $_DB = new DBConnection ... doit être déplacé au-dessus de la tva.inc à la ligne.
  • D'accord. Si votre btw fichier est le tout premier jeu de code sur ce post, alors vous devriez créer votre connexion db avant, y compris btw depuis btw veut utiliser la requête.
  • votre dernier commentaire a été ma réponse! Hoera 🙂 le problème a été en effet avec la db.inc! Merci!! (Si vous répondez à la question, je ne peux accepter l'est)
  • bon à entendre! Est-il sensé pourquoi la solution a fonctionné?

InformationsquelleAutor Michiel | 2011-05-11