Gästebuchscript läuft auf anderem Server nicht
Hagen
- php
0 wahsaga0 Felix Riesterer
0 Vinzenz Mai0 Hagen
0 Ilja0 Hagen
0 Hagen
Hallo,habe ein kleines Gästebuchscript welches auf meinem Rechner funzt nun läuft es auf nem anderen Server und ich bekomm das:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/web28/html/index.php:11) in /home/www/gaestebuch/gb.php on line 69
Warning: mysql_query(): 4 is not a valid MySQL-Link resource in /home/www/gaestebuch/gb.php on line 76
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/www/gaestebuch/gb.php on line 77
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/www/gaestebuch/gb.php on line 78
Warning: mysql_query(): 4 is not a valid MySQL-Link resource in /home/www/gaestebuch/gb.php on line 86
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/gaestebuch/gb.php on line 87
Warning: mysql_close(): 4 is not a valid MySQL-Link resource in /home/www/gaestebuch/gb.php on line 94
Die Header-meldung ist klar weil ja der Fehler an den browser ausgegeben wird. Aber der Rest. Ich erklär mal kurz wie das script funzt.
Daten werden eingegeben.
Daten werden validiert.
Daten werden in Datenbank geschrieben.
Dann Header Umleitung auf die gleiche Seite damit man nicht über F5 erneut abschicken kann.
Nun treten die Fehler(siehe oben auf) obwohl der Eintrag korrekt geschrieben wird. Lädt man die Seite nur ohne ein posting zu machen funktioniert die passage in der die Fehler auftreten einwandfrei.
Hier die Zeilen 69 bis 94:
header("location: http://".$base."?site=guestb");
}
}
}
//------------------------------Reset gedrückt-----------------------
elseif(isset($_REQUEST['reset'])){ header("location: http://".$base."?site=guestb");}
//------------------------------alte Einträge auslesen---------------
$result=mysql_query("SELECT count(name) FROM entries", $link);
$anzahl=(mysql_fetch_row($result));
mysql_free_result($result);
$anzahl=$anzahl[0];
$register=ceil($anzahl/10);//15 Eintraege pro Seite
for ($i=1;$i<=$register;$i++)
{
$navi=$navi."<a href="index.php?site=guestb&page=".$i."">".$i."</a> | ";
}
if(isset($_GET['page'])){$reg=$_GET['page'];}else{$page=1;}
$entries=mysql_query("SELECT name,mail,homepage,nachricht,zeit FROM entries ORDER BY zeit
DESC LIMIT ".(($page-1)*10).",10",$link);
while($row=mysql_fetch_array($entries,MYSQL_NUM))
{
$post_zeit=explode(";",date("H:i:s;d.m.y",$row[4]));
$old_entries[$a]=array(htmlentities($row[0]),htmlentities($row[1]),htmlentities($row[2]),htmlentities($row[3]),$post_zeit[0],$post_zeit[1]);
$a++;
};
if(!empty($entries)){mysql_free_result($entries);}//ergebnisspeicher wieder freigeben
mysql_close($link);//SQL Datenbank wider freigeben
Achja $base ist so definiert $base=$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']; ich hoffe ihr könnt mir helfen.
MFG Hagen
hi,
Warning: Cannot modify header information - headers already sent
http://www.php-faq.de/q/q-fehler-header.html
Warning: mysql_query(): 4 is not a valid MySQL-Link resource
mysql_error() und ggf. Querystring ausgeben lassen, um zu sehen was schief ging.
gruß,
wahsaga
Lieber Hagen,
ich verstehe nicht, warum ein Gästebuch mittels einer Datenbank realisiert werden muss. Ich empfinde dieses Vorgehen als "mit Kanonen auf Spatzen schießen". Für mein eigenes GB-Script verwende ich eine XML-Datei zum Speichern. Vielleicht wäre diese Lösung auch etwas für Dich (zumindest in konzeptioneller Hinsicht)?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo Felix,
ich verstehe nicht, warum ein Gästebuch mittels einer Datenbank realisiert werden muss. Ich empfinde dieses Vorgehen als "mit Kanonen auf Spatzen schießen".
ich verstehe das schon. Hätte ich Webspace mit Datenbank und möchte ich ein Gästebuch - so wäre der Datenbankzugriff für mich das Mittel der Wahl.
Gründe:
Notwendigkeit von Datenbankzugriff sowie Performance wären mir völlig gleichgültig (bei einer erwarteten Quote von weniger als einem Eintrag pro Quartal :-)). Die Wahrscheinlichkeit, dass ich das Skript mit Datenbankzugriff sauber hinkriege wäre weit höher als im Falle von Dateizugriffen, der Aufwand für mich geringer.
Freundliche Grüße
Vinzenz
Hallo Hagen,
hier diese Warnung
Warning: Cannot modify header information - headers already sent by (output started at /home/www/web28/html/index.php:11) in /home/www/gaestebuch/gb.php on line 69
und Dein Kommentar dazu
Die Header-meldung ist klar weil ja der Fehler an den browser ausgegeben wird.
sagen doch klar, dass der entscheidende Fehler _vor_ Zeile 69 passiert. Der Rest scheint ziemlich klar zu sein.
Warning: mysql_query(): 4 is not a valid MySQL-Link resource in /home/www/gaestebuch/gb.php on line 76
Du hast keine gültige Verbindung zur Datenbank, der Rest sind Folgefehler. Eine Fehlerbehandlung kann ich in Deinem Code nicht erkennen.
Falls Du Hilfe erwartest, solltest Du uns den _relevanten_ Code posten. Und der befindet sich eindeutig _vor_ Zeile 69.
Freundliche Grüße
Vinzenz
Hallo,
sagen doch klar, dass der entscheidende Fehler _vor_ Zeile 69 passiert. Der Rest scheint ziemlich klar zu sein.
Stimmt
Warning: mysql_query(): 4 is not a valid MySQL-Link resource in /home/www/gaestebuch/gb.php on line 76
Du hast keine gültige Verbindung zur Datenbank, der Rest sind Folgefehler. Eine Fehlerbehandlung kann ich in Deinem Code nicht erkennen.
So stelle ich die Verbindung her, was ja auch klappt, sonst könnte ich ja die daten nicht aus der datenbank auslesen und in sie schreiben.
include("gaestebuch/admin/mysql_kennung.inc.php");
$kennung=explode(",",$kennung);
$link = mysql_connect(trim($kennung[0]),trim($kennung[1]),trim($kennung[2]));//zu SQL verbinden
$db_selected=mysql_select_db("gb",$link);//zur Datenbank verbinden
$base=$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
if(!$link) {$fehler="Konnte keine Verbindung herstellen:".mysql_error()."<br/>";}
und auch nach dem abschicken der daten habe ich eine Verbindung, sonst würde ja nach dem if abgebrochen.
MFG Hagen
yo,
die zugangsdaten für die datenbankverbindung sind auf die benötigten daten des neuen servers entsprechend geändert worden ?
Ilja
yoho Ilja
na aber sowas von geändert! Ne ähm ich habe ja auch Verb zur datenbank sonst könnt ich ja nicht in sie schreiben.
MFG Hagen
Die guten alten linux server:
location==Location...nö das ärgert mich.
MFG Hagen