Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Datenbank-Anbindung mittels PHP
lousypoetry
23-01-2006, 11:35
Hallo!
Ich verzeifel grad ein bisschen: ich versuche, eine Datenbank mittels eines PHP-Skriptes zu connecten. Die Datenbank liegt auf dem Server meines Providers für die Homepage.
Ich bin mit eigentlich recht sicher, dass in dem Skript nichts falsch ist, aber könntet ihr trotzdem mal drauf gucken?
<?php
error_reporting();
$fd = mysql_connect($HOST, $USER, "*****") OR die("Konnte keine Verbindung zum Gaestebuch aufbauen");
mysql_select_db($DATABASE, $fd) OR die("Konnte das Gaestebuch nicht oeffnen");
?>
Das Skript binde ich mittels "include" in ein anderes ein ("gbuch.php"). Wenn ich nun gbuch.php lade, erscheint nur eine weiße Seite. Es kommen weder die geforderten Anfragen, noch Fehlermeldungen. Auch Testausgaben, die ich in das oben gepostete Skript geschrieben habe, werden nicht angezeigt. :confused:
Hat jemand von euch eine Idee? Danke!
Ist das das ganze Script in der Include???
Damit Verbindest du nur und öffnest eine DB.
Mit auslesen sehe ich nix, da kann ja auch nix auf der seite stehen!
Maik
undefined
23-01-2006, 12:03
1) warum schaltest du das error_reporting ab?
2) Verwende doch mal mysql_error() damit du auch eine Richtige Fehler Meldung erhälst.
$fd = mysql_connect(**, **, **) OR die( mysql_error() );
Romanday
23-01-2006, 12:48
Wie maik15 schon bemerkte.
(Sonst wäre die Seite nicht mehr weiß!)
Der connect scheint zu klappen, jetzt mußt Du aber noch
eine SQL Abfrage stellen und deine Werte ausgeben.
lousypoetry
23-01-2006, 16:26
Ist das das ganze Script in der Include???
Damit Verbindest du nur und öffnest eine DB.
Mit auslesen sehe ich nix, da kann ja auch nix auf der seite stehen!
Maik
Nein, das oben gepostete Skript include ich in eine Datei namens gbuch.php, in der z.B. folgendes steht:
/**
* gibt Eintraege aus
*/
function printEntries() {
$start = (getActivePage() - 1) * 5;
$sql = "SELECT
name, email, homepage, icq, comment, reply, datum
FROM
gaestebuch
ORDER BY
datum DESC
LIMIT
".$start.", 5";
$result = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$d = changeDateFormat($row['datum']);
getSmilies(&$row['comment']);
echo "<table class='entry'>";
echo "<tr><td style='font-family: arial; font-size: 10pt;'>".$row['name']."</td>";
echo "<td align='right'>".$d[0]."</td></tr>";
if($row['email'] == NULL) // keine Mailadresse
echo "<tr><td> </td><td align='right'>".$d[1]."</td></tr>";
else {
echo "<tr><td><a href='mailto:".$row['email']."'>";
echo "<img src='email.gif' border='0' width='59px' height='18px' alt=''></a></td>";
echo "<td align='right'>".$d[1]."</td></tr>";
}
[...]
}
die Funktion wird weiter unten mittels
<?php
printPages();
printEntries();
?>
aufgerufen. Also müsste er doch etwas ausgeben, oder?
Romanday
23-01-2006, 17:38
aufgerufen. Also müsste er doch etwas ausgeben, oder?
Keine Fehlermeldung???
Sind denn überhaupt schon Gäste in der Db gespeichert?
lousypoetry
23-01-2006, 20:45
Keine Fehlermeldung???
Sind denn überhaupt schon Gäste in der Db gespeichert?
Nein, nur eine weiße Seite, hier mal der direkte Link dazu:
http://www.tellallyourfriends.de/index.php?links=navigation.php&rechts=gbuch/gbuch.php
In der Datenbank sind definitiv Einträge vorhanden, hab mir in phpMyAdmin die Tabellen angesehen.
undefined
23-01-2006, 23:33
Setz mal ein Paar var_dump() und vor allem! Innerhalb der Funktion muß die Connect Resource auf global gesetzt werden.
PS: Wo rufst du die Funktion auf?
Romanday
24-01-2006, 08:18
Nein, nur eine weiße Seite, hier mal der direkte Link dazu:
http://www.tellallyourfriends.de/index.php?links=navigation.php&rechts=gbuch/gbuch.php
In der Datenbank sind definitiv Einträge vorhanden, hab mir in phpMyAdmin die Tabellen angesehen.
Gästenbücher (Open Source) gibt es an jeder Ecke.
Ich würde da gar nicht so ZigZag machen, sondern ein anderes GB
instalieren.
Außerdem solltest Du dir selbst ein kleines Script programmieren,
was überprüft ob eine Abfrage in MySQL möglich ist.
Damit kannst Du mögliche Fehlerquellen eingrenzen.
... solltest die Naviagtion noch 1x überarbeiten.
Das ist so der Klassiker wie man es nicht unbedingt machen sollte.
http://www.tellallyourfriends.de/index.php?links=navigation.php&rechts=index.php
oder
http://www.tellallyourfriends.de/index.php?links=navigation.php&rechts=http://leztest.silvercoinkonzern.de/test/index.php
Du möchtest doch deinen Account alleine nutzen, oder?
(sonst bekommt tellallyourfriends eine ganz andere Bedeutung.:D)
lousypoetry
24-01-2006, 10:02
Gästenbücher (Open Source) gibt es an jeder Ecke.
Ich würde da gar nicht so ZigZag machen, sondern ein anderes GB
instalieren.
Es geht mir ja gar nicht so sehr um ein 100%iges Gästebuch, das ganze war mehr gedacht, um ein bisschen SQL zu lernen. Bei den Besucherstürmen auf meiner Seite könnt ich auf ein Gästebuch sogar verzichten :D
... solltest die Naviagtion noch 1x überarbeiten.
Das ist so der Klassiker wie man es nicht unbedingt machen sollte.
Du möchtest doch deinen Account alleine nutzen, oder?
(sonst bekommt tellallyourfriends eine ganz andere Bedeutung.:D)
Ach herrje, wie hast du das denn geschafft? :confused: kannst du mir sagen, wie man das behebt bzw. wo ich Infos darüber finden kann, wie man es besser macht?
@undefined: versuche ich nachher!
Romanday
24-01-2006, 11:08
Ach herrje, wie hast du das denn geschafft? :confused: kannst du mir sagen, wie man das behebt bzw. wo ich Infos darüber finden kann, wie man es besser macht?
Mach ich per PM.
lousypoetry
24-01-2006, 18:20
Setz mal ein Paar var_dump() und vor allem! Innerhalb der Funktion muß die Connect Resource auf global gesetzt werden.
PS: Wo rufst du die Funktion auf?
Welche Funktion meinst du denn? Kann grad nicht so ganz folgen...
var_dump() gibt doch infos zu einer Variablen aus, oder? Aber egal, mit welcher Variable ich es versuche, ich bekomm keine Ausgabe.
Romanday
24-01-2006, 22:41
Welche Funktion meinst du denn? Kann grad nicht so ganz folgen...
var_dump() gibt doch infos zu einer Variablen aus, oder? Aber egal, mit welcher Variable ich es versuche, ich bekomm keine Ausgabe.
Schmeiß mal dein error_reporting(); raus.
Die PHP Grundeinstellungen reichen aus.
Damit kannst du rumspielen, wenn das Script läuft.
lousypoetry
25-01-2006, 18:05
Hab ich gemacht, ändert aber nichts. Ich würd ja fast behaupten, dass der Fehler beim Provider liegt, nur würde ich dann ja gar nicht mehr an die Tabellen rankommen oder?
Das seltsame ist auch, dass das Skript schon mal funktioniert hat, darum dachte ich, ob es in letzter Zeit evtl. Änderungen in mysql/php gegeben hat, dass ich vielleicht "alte" Befehle verwende?
Romanday
25-01-2006, 19:10
Hab ich gemacht, ändert aber nichts. Ich würd ja fast behaupten, dass der Fehler beim Provider liegt, nur würde ich dann ja gar nicht mehr an die Tabellen rankommen oder?
Das seltsame ist auch, dass das Skript schon mal funktioniert hat, darum dachte ich, ob es in letzter Zeit evtl. Änderungen in mysql/php gegeben hat, dass ich vielleicht "alte" Befehle verwende?
phpinfo(); aufrufen und die Einstellungen von register_globals kontrolieren.
lousypoetry
26-01-2006, 10:09
phpinfo(); aufrufen und die Einstellungen von register_globals kontrolieren.
register_globals sind "off".
Ich les grad ein bisschen darüber, wenn ich es richtig verstehe, ist "off" die sinnvollere Einstellung, da sich so keine "fremden" Variablen in das Skript schleichen können. Das heißt, ich kann nicht mehr auf globale Variablen zugreifen, sondern muss $GLOBALS['variablenname'] verwenden, richtig? (mal so ganz grob beschrieben ;) )
Muss ich das jetzt für alle globalen Variablen, die ich gesetzt habe (wie zB $USER, $HOST etc) ändern? Oder bezieht sich das nur auf Variablen, die ich per action übergebe?
Romanday
26-01-2006, 21:57
register_globals sind "off".
Ich les grad ein bisschen darüber, wenn ich es richtig verstehe, ist "off" die sinnvollere Einstellung, da sich so keine "fremden" Variablen in das Skript schleichen können. Das heißt, ich kann nicht mehr auf globale Variablen zugreifen, sondern muss $GLOBALS['variablenname'] verwenden, richtig? (mal so ganz grob beschrieben ;) )
Muss ich das jetzt für alle globalen Variablen, die ich gesetzt habe (wie zB $USER, $HOST etc) ändern? Oder bezieht sich das nur auf Variablen, die ich per action übergebe?
Auch mal bitte die <Suchen> Funktion des Forums nutzen.
Das Thema wurde schon öfter diskutiert.
weiterhin interessant für dich:
(Workshop für XHTML, CSS und Barrierefreiheit? )
http://www.mrunix.de/forums/showthread.php?t=41182
lousypoetry
27-01-2006, 13:32
Auch mal bitte die <Suchen> Funktion des Forums nutzen.
Das Thema wurde schon öfter diskutiert.
Hab ich gemacht, ich versteh aber folgendes nicht:
angenommen, ich möchte nur eine Verbindung zur Datenbank, oder erstmal nur zum Server, wieso funktioniert dann ein
$fd = mysql_connect("85.xxx.xxx.xxx", "user100", "*******") OR die(mysql_error());
echo "ok";
nicht? Das mit den register_globals bezieht sich doch auf Variablen, die ich per Formular übertrage, oder überseh ich da grad was Wichtiges?
weiterhin interessant für dich:
(Workshop für XHTML, CSS und Barrierefreiheit? )
http://www.mrunix.de/forums/showthread.php?t=41182
Eins nach dem Anderen ;)
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.