Meldung von function per require?

Sleeper

Mitglied
Hallo,
ich wollte mir ein bissel arbeit sparen.
Habe deshalb um eine verbindung zum Dbserver herzustellen in eine function umgewandelt.
Diese dann in db.php gespeichert
und auf einer Testseite per require eingebunden.
Wenn die funktion soll eine Meldung ausgeben, die ich in einer config.php gespeichert habe ausgeben.

TUT er aber NICHT :(

Hier mal das Script:

db.php
PHP:
<?php
## Verbindung zum Datenbankserver ##
function dbs_open()
{
$dbh_con = mysql_connect($dbhost,$dbuser,$dbpass);
if ($dbh_con) { $msg = $m11 ;}
else { $msg = $m1 ;}
}
?>
test.php
PHP:
<?php
include ("config.php");
require ("db.php");
dbs_open()
?>
<html>
<title>Hallo</title>
<body>
<font color="Black"><?=$msg ?></font>
</body>
</html>

Wie gesagt das ist ja nur zum testen.

Hoffentlich hat einer von euch ein gutes Auge, für diesen Fehler.

Gruß,
Sleeper
 
Hallo Gecko
Habe mir das auf Php.net durchgelesen, aber schlau werde ich daraus nicht.

Ich dachte ich hatte die Variabeln durch require und include schon eingefügt?


Kennst du vielleicht eine Seite wo das ind Deutsch erklärt wird.
Vielleicht kapiere ich das ja doch noch:-)

Gruß,
Sleeper
 
ok, ich versuchs mal kurz:

PHP:
function dbs_open()
{
$dbh_con = mysql_connect($dbhost,$dbuser,$dbpass);
if ($dbh_con) { $msg = $m11 ;}
else { $msg = $m1 ;}
}

diese funktion kennt die variavlen $dbhost,$dbuser,$dbpass nicht!
jede funktion hat ihren eigenen namensraum... um diese variablen bekannt zu machen musst du sie vorher aus dem globalen namensraums holen, das geht mit "global", also z.b.
PHP:
global $dbhost;

get it ?
 
Ich glaube schon.
Habe in meinem PHP-Buch und bei selfPHP nochmal angeschaut, aber nichts über global gefunden.
Aber das mit dem $dbhost und so ist ja nicht mein Problemm, glaub ich.
Wenn ich z.B.
PHP:
{ $msg = $m11; }

durch

PHP:
{ echo "Verbindung ist OK"; }

austausche,
funktioniert es ja.
Nur ich will eine bestimmte Variable an einem bestimmtem Ort ausfühen.

Vielleicht eine erklärung?


Gruß,
Sleeper
 
PHP:
function dbs_open()
{
   global $dbhost,$dbuser,$dbpass;
   $dbh_con = mysql_connect($dbhost,$dbuser,$dbpass);
   if ($dbh_con)
   {
     $msg = "everything is ok!";
   }
   else
   {
     $msg = "couldn't establish database connection!";
   }
 return $msg;
}

die funktion gibt also eine nachricht zurueck, die du dann irgendwo anzeigen lassen kannst:

PHP:
<?
//...
$status = dbs_open();
?>
<html>
<title>Hallo</title>
<body>
<font color="Black"><?=$status?></font>
</body>
</html>
 
Ahhh,
jetzt hab ich das kapiert.

Habe es noch etwas geändert

PHP:
{

   global $dbhost,$dbuser,$dbpass,$m11,$m1;

   $dbh_con = mysql_connect($dbhost,$dbuser,$dbpass);

   if ($dbh_con)

   {

     $msg = $m11;

   }

   else

   {

     $msg = $m1;

   }

 return $msg;

}

Nochmal besten dank Gecko:)
 
Zurück