• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

gästebuch funkt nicht

Status
Für weitere Antworten geschlossen.
hallo
ich habe ein problem mit meinem gästebuch:
zuerstmal der link zur seite: klickmich
wenn ihr auf einen neuen beitarg erstellen klickt dann kommen einig fehlermeldungen.
das ist der code:
Datei connect.inc.php:
Code:
<?php
$server = "db1.cwsurf.de";
$user = "usr_db_58379";
$passwort = "*******";
$db = "usr_db_58379";

mysql_connect($server,$user,$passwort);
mysql_select_db($db);

$sql = "CREATE Table bericht
(
        nachricht text
        )";
mysql_query($sql);
?>
(die variablen sind zu 100% richtig)
Datei: gästebuch.php
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>&nbsp;</title>
<style type="text/css">
<!--
.style1 {
    font-size: 24px;
    font-weight: bold;
}
.style3 {color: #000000}

-->
</style>
</head>

<body>
<table width="71%" border="0" align="center">
<tr>
<td>
  <div align="center"> <span class="style1"> Hier findest du alle Gästebucheinträge.<span></div></td>
</tr>
  <tr>
    <td>

<a href="eintragen.php" >Einen Eintrag machen.</a>
      <div align="center">
        <br />
        <?/*

while($erg2 = mysql_fetch_assoc($qry)) {

*/?>
        <strong>Beitrag Nr.: <? print($erg2['ID']); ?></strong><br />
      </div>
    <?    
nl2br(print($erg2['nachricht']));
print("<br />");
print("<br />");

/*}*/
?></td>
  </tr>
</table>
</body>
</html>
Datei: eintragen.php
Code:
<form action="eintragen.php" method="post">
<textarea name="text" cols="50" rows="10"></textarea>
<br />
<input type="submit" />
</form>
<?
include('connect.inc.php');
$text = $_POST['text'];
$text = nl2br($text);
$sql = "INSERT INTO bericht (nachricht)
VALUES ('".$text."')";
if(mysql_query($sql)) {
?>
Dein Beitrag wurde veröffentlicht<br />
Du wirst gleich weitergeleitet
<meta http-equiv="refresh" content="2; url=index.php">
<?
} else {
?>
Etwas ist fehl geschlangen
<?
} ?>
was ist verkert?oder habe ich etwas vergessen(die tabellen habe ich nur vorläufig eingesetzt die kommen später noch weg)
und noch was: wie kann ich evtl. unpassende beiträge wieder löschen wenns mal klappt?
mfg
 
Zuletzt bearbeitet:
Werbung:
Erstmal solltest du genau schildern, welche Fehlermeldungen auftauchen.
Aber warum erstellst du bitte bei jedem neuen Eintrag (also immer wnen die connect.php includet wird) , eine neue Tabelle in der Datenbank? Das macht überhaupt keinen Sinn.
Normalerweise sollte eine einzige Tabelle vorhanden sein, in ie dann jeder neue Eintrag eingefügt wird.
Das solltest du umändern!

MfG Icy
 
ich weiß nicht wie ich das ändern soll:|
die fehlermeldung ist: etwas ist fehlgeschlagen
siehe:
Code:
<?
} else {
?>
Etwas ist fehl geschlangen
<?
} ?>
mfg
 
Werbung:
sry leute ich habe nicht viel bzw. fast keine ahnung von php, den script hat mir jemand geschrieben, der mir jetzt nicht mehr helfen will:-( bzw. kann
wo muss ich das ganze einbauen?
mfg danke für eure mühe
 
erestzt einfach mal das
PHP:
if(mysql_query($sql)) {
?>
Dein Beitrag wurde veröffentlicht<br />
Du wirst gleich weitergeleitet
<meta http-equiv="refresh" content="2; url=index.php">
<?
} else {
?>
Etwas ist fehl geschlangen
<?
} ?>
mit
PHP:
mysql_query($sql) or die(mysql_error());

außerdem

nicht nur das das unlogisch ist:
PHP:
$sql = "CREATE Table bericht
(
        nachricht text
        )";
es ist auch noch falsch

wenn dann ja wohl
CREATE TABLE IF NOT EXISTS `bericht`

Die Felddeklarationen sehen auch mies aus ^^
 
Werbung:
PHP:
mysql_query($sql) or die(mysql_error());
Hört bitte auf solche Empfehlungen zu geben. Die Funktion die() bricht die komplette Abarbeitung (wie exit) ab und man kann es nicht von aussen beeinflussen. Stellt euch vor ihr habt ein etwas größeres Projekt und schreibt diese Zeile Code des öfteren um Fehler zu debuggen. Was macht ihr wenn das komplette Projekt einmal online gehen soll? Bei jedem Fehler wird der User und jeder mögliche Angreifer mit Informationen die ihn nix angehen bombardiert. Ausschalten lässt sich das nachträglich dann nicht mehr über error_reporting() oder sonst was.
Wenn schon ein debugging dann mit ordentlichen Ausnahmen.
PHP:
try {
...
} catch (Exception $e) {
...
}
Mit einem ordentlichen Exception-Handling kann man auch ein "richtges" Debugging betreiben ;).
 
Ist ja schön und gut, aber wenn es nicht geht, dann brauchst auch das Script nicht weiterlaufen lassen. Wozu denn? Meistens hängt folgendes Script vom vorherigen Teil ab und schlägt somit auch fehlt.

Das man bei einem Eintrag in einem Gästebuch nicht die() nimmt sondern lieber if-else um dem Benutzer eine Fehlermeldung anzuzeigen "Eintrag fehlgeschlagen." versteht sich ja wohl von selbst.
 
danke
hab jetzt einfach mal franks methode genommen weil ich wusste wohin damit^^
leider geht es immernoch nicht
es kommt keine fehlermeldung mehr aber die nachrichten die man schreibt wrden immernoch nicht geschpeichert:(
wäre euch für weitere hilfe dankbar
mfg
 
Werbung:
Frank schrieb:
[...]Ist ja schön und gut, aber wenn es nicht geht, dann brauchst auch das Script nicht weiterlaufen lassen. Wozu denn? Meistens hängt folgendes Script vom vorherigen Teil ab und schlägt somit auch fehlt.[...]
Wozu? Um dem User nicht zu offenbaren das es ein Problem gibt. Das geht ihn nix an und wirkt zudem nicht sonderlich professionell ;).

@littleHtml Freak: Poste doch mal deinen modifizierten Code.
 
connect.inc.php:
Code:
<?php

$server = "db1.cwsurf.de";
$user = "usr_db_xxx";
$passwort = "xxx";
$db = "usr_db_xxx";




//das geht dich nix mehr an ;)
mysql_connect($server,$user,$passwort);
mysql_select_db($db);

$sql = "CREATE TABLE IF NOT EXISTS 'bericht'
(
        nachricht text
        )";
mysql_query($sql);
?>
gästebuch.php:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>&nbsp;</title>
<style type="text/css">
<!--
.style1 {
    font-size: 24px;
    font-weight: bold;
}
.style3 {color: #000000}

-->
</style>
</head>

<body>
<table width="71%" border="0" align="center">
<tr>
<td>
  <div align="center"> <span class="style1"> Hier findest du alle Gästebucheinträge.<span></div></td>
</tr>
<tr>
<td height="38"><div align="center" class="admin"><a href="index.php?status=admin" class="admin style3">Admin</a></div></td>
</tr>
  <tr>
    <td>

<a href="eintragen.php" >Einen Eintrag machen.</a>
      <div align="center">
        <br />
        <?/*

while($erg2 = mysql_fetch_assoc($qry)) {

*/?>
        <strong>Beitrag Nr.: <? print($erg2['ID']); ?></strong><br />
      </div>
    <?
nl2br(print($erg2['nachricht']));
print("<br />");
print("<br />");

#}
?></td>
  </tr>
</table>
</body>
</html>
eintragen.php
Code:
<?php
  session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Gästebuch</title>
</head>

<body>

<p>Einfach den Text eingeben und auf abschicken klicken!</p>
<form action="eintragen.php" method="post">
<textarea name="text" cols="50" rows="10"></textarea>
<br />
<input type="submit" />
</form>
<?
include('connect.inc.php');
$text = $_POST['text'];
$text = nl2br($text);
$sql = "INSERT INTO bericht (nachricht) VALUES ('".$text."')";
mysql_query($sql) or die(mysql_error());
?>

</body>
</html>
das ist der jetztige code
sry dass es so lange gedaert hat, war am we nicht da;)
mfg
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben