login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Connectie testen

Offline Ultimatum - 22/12/2006 11:51
Avatar van UltimatumPHP expert Ey, ik ben met een CMS bezig en nu met de install.. Als je daar je gegevens tot de database invult en je doet volgende stap dan moet er ook nog een check komen of er wel een connectie naar de database gemaakt kan worden.

Ik heb nu dit (class):

  1. <?php
  2. function Connect( $host, $user, $pass, $data )
  3. {
  4. $this->connection = mysql_connect($host, $user, $pass ) or die ( $this->__Error ( mysql_error () ) );
  5. mysql_select_db($data, $this->connection) or die ( $this->__Error ( mysql_error () ) );
  6. }
  7. ?>


Ik had het zo gedaan:

  1. <?php
  2. if(!$db->Connect($_POST['DatabaseHost'], $_POST['DatabaseUser'], $_POST['DatabasePassword'], $_POST['DatabaseName']))
  3. {
  4. $errors[] = 'Could not establish a connection to the host';
  5. }
  6. ?>


Nu krijg ik deze error:

Citaat:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:programsxampphtdocsUltimate-Content-Managerincludesmysql.class.php on line 13
Access denied for user 'ODBC'@'localhost' (using password: NO)


(regel 13 is hier in de code van het eerste block regel 2)

ps. alle velden in het formulier zijn WEL leeg om even te testen, maar hij moet dus de fouten opvangen en terug gooien dat het dus niet bereikbaar is ipv de welbekende vergeten velden of verkeerde velden ingevuld fout

bvd 

16 antwoorden

Gesponsorde links
Offline SvenP - 22/12/2006 11:53
Avatar van SvenP PHP interesse dit is een standaart mysql fout, je connectie gegevens kloppen niet..
geen idee hoe je dit kan onderscheppen..
Offline Wave6 - 22/12/2006 11:54
Avatar van Wave6 PHP beginner Je hebt geen passwoord ingesteld wat gebruik je? een localhost of een internet host
Offline Ultimatum - 22/12/2006 11:55 (laatste wijziging 22/12/2006 11:56)
Avatar van Ultimatum PHP expert D_O, lees beginpost nog eens 2x aandachtig door (en edit dan je post hierboven )
@svenP, dat klopt, dat weet ik namelijk ook. Maar hoe ga ik dit oplossen, aan zo'n antwoord heb ik dus niets 
Offline compudoc - 22/12/2006 12:07 (laatste wijziging 22/12/2006 12:13)
Avatar van compudoc PHP beginner ik gebruik normaal geen fucties maar waarom zet je eerst:
  1. <?php
  2. function Connect( $host, $user, $pass, $data ) {
  3. ?>

en dan dit:
  1. <?php
  2. $this->connection = mysql_connect($host, $user, $pass ) or die ( $this->__Error ( mysql_error () ) );
  3. mysql_select_db($data, $this->connection) or die ( $this->__Error ( mysql_error () ) );
  4. ?>


dat is toch dubbel of zie ik dit nu fout? want je probeert eigenlijk 2x te verbinden.
Offline Kr4nKz1n - 22/12/2006 12:21
Avatar van Kr4nKz1n Onbekend Nee compudoc.
Want de waarden die je Connect mee geeft, gebruik je met $host, $user, $pass en $data.
Offline SvenP - 22/12/2006 12:22
Avatar van SvenP PHP interesse nee, de functie roep je aan..
en de mysql_connect haalt de gegevens wat je bij de functie invoert ;)
Offline Ultimatum - 22/12/2006 18:12
Avatar van Ultimatum PHP expert Iemand die mij wel verder kan helpen?
Offline marten - 22/12/2006 19:11
Avatar van marten Beheerder zou je misschien je hele class eens willen posten?
Offline ikkedikke - 22/12/2006 19:12
Avatar van ikkedikke PHP expert Waarschijnlijk zijn je variabelen leeg. test dat eens
Offline Ultimatum - 22/12/2006 19:41
Avatar van Ultimatum PHP expert http://www.plaatscode.be/3534/

ikkedikke, de variabelen zijn ook leeg omdat ik dan de fout wil opvangen als een veld leeg is..
Offline marten - 22/12/2006 19:52 (laatste wijziging 22/12/2006 19:53)
Avatar van marten Beheerder Nou dan krijg je toch een mooie foutmelding 

Nu hoef je alleen nog een eigen foutafhandeling te maken en klaar 

Zorg wel dat je voor mysql_connect(); een apestaart zet dus @mysql_connect(); zodat deze geen eigen foutmelding geeft
Offline Ultimatum - 22/12/2006 20:04
Avatar van Ultimatum PHP expert Ja een foutmelding die ik niet wil ja..

ik krijg nu dus:
Citaat:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:programsxampphtdocsUltimate-Content-Managerincludesmysql.class.php on line 13
Access denied for user 'ODBC'@'localhost' (using password: NO)


Maar als de gegevens verkeerd zijn, moet dit er dus bijstaan:
- Could not establish a connection

Dat is het probleem
Offline marten - 22/12/2006 20:07
Avatar van marten Beheerder Je moet je eigen error handling instellen met de functie set_error_handler();

http://www.tony...ndler.html

Hier kan je een voorbeeld vinden.
Offline Ibrahim - 22/12/2006 20:15
Avatar van Ibrahim PHP expert
Citaat:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in DprogramsxampphtdocsUltimate-Content-Managerinclu
desmysql.class.php on line 13
Access denied for user 'ODBC'@'localhost' (using password: NO)


zoals iemand hierboven al zei; wil je deze error niet maar je eigen, zet dan een @ voor de mysql functie
Offline rambo - 22/12/2006 20:25
Avatar van rambo HTML beginner Op de manier waarop je nu op fouten controleert verwacht je dat je eigen functie false retourneerd. Dit is natuurlijk niet zo, mysql_connect() retourneerd false als er geen verbinding gelegd kan worden. Je error-handling zou dus zoiets moeten worden:
  1. <?php
  2. function Connect( $host, $user, $pass, $data )
  3. {
  4. if($this->connection = mysql_connect($host, $user, $pass ))
  5. {
  6. mysql_select_db($data, $this->connection);
  7. return true;
  8. }
  9. else
  10. {
  11. return false;
  12. }
  13. }
  14. ?>

Nu retourneerd jouw functie true als er een connectie gemaakt is en false als dat niet gelukt is. Op deze manier gaat dit stukje code wel werken:
  1. if(!$db->Connect($_POST['DatabaseHost'], $_POST['DatabaseUser'], $_POST['DatabasePassword'], $_POST['DatabaseName']))
  2. {
  3. $errors[] = 'Could not establish a connection to the host';
  4. }
Offline Ultimatum - 22/12/2006 20:41
Avatar van Ultimatum PHP expert Bedankt, ik was nu ook op die toer bezig maar het lukte nog niet helemaal. Verder moest ik nog ff @ voor mysql_connect en voor mysql_select_db zetten..

Verder bedankt voor alle reacties 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.22s