PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shoutbox Probleme


evilcrow
14.09.2006, 14:43:06
Hi, ich hab nen Problem mit einem Shoutbox Script ... hab alles schon versucht und komme mit meinem Wissen nicht mehr weiter.

Die SQL-Tabelle
CREATE TABLE shoutbox (
id int(11) NOT NULL auto_increment,
message text NOT NULL,
author varchar(80) NOT NULL default '',
email varchar(50) NOT NULL default '',
date varchar(50) NOT NULL default '',
ip varchar(20) NOT NULL default '',
PRIMARY KEY (id))

Die PHP-Datei
<?php
$db_host = "localhost";
$db_user = "evilcrow";
$db_password = "password";
$db_name = "database";
?>
<?
if($_POST['submit'])
{
if(!$_POST['author']) {
echo "!Error! - Es wurde kein Name eingetragen -";
die;
}

if(!$_POST['email']) {
echo "Error! - Es wurde keine Email Adresse eingetragen -";
die;
}

if(!$_POST['message']) {
echo "Error! - Es wurde keine Nachricht eingetragen -";
die;
}
?>
$message = strip_tags($_POST['message'], '');
$email = strip_tags($_POST['email'], '');
$author = strip_tags($_POST['author'], '');
$message_length = strlen ($message);
$author_length = strlen ($author);

if ($message_length > 150) {
echo "Error - Deine Nachricht muss weniger als 150 Zeichen haben -";
die;
}

if ($author_length > 150) {
echo "Error - Dein Name muss weniger als 150 Zeichen haben -";
die;
}
mysql_connect($db_host,$db_user,$db_password) or die (mysql_error());
mysql_select_db($db_name) or die (mysql_error());
$date = date("h:i A ds M");
$query = "insert into shoutbox (message, author, email, date, ip)
VALUES ('$message','$author','$email','$date','$_SERVER[REMOTE_ADDR]')";
mysql_query($query);
mysql_close();
echo "Eintrag wurde gepostet!";
}else{
mysql_connect($db_host,$db_user,$db_password) or die (mysql_error());
mysql_select_db($db_name) or die (mysql_error());
$query = "SELECT message, author, email, date, ip
FROM shoutbox order by id DESC LIMIT 10";
$result = mysql_query($query);
while($row=mysql_fetch_array($result))
{
?>
<table width="40%" border="0">
<tr>
<td width="40%">von: <?print $row['author'];?></td>
<td width="60%">am: <?print $row['date'];?></td>
</tr>
<tr>
<td colspan="2"><?print $row['message'];?></td>
</tr>
</table>
<form method=post action="shoutbox.php">
<table width="40%" border="0">
<tr>
<td width="40%">Name: <input type="text" name="author"></td>
<td width="60%">eMail: <input type="text" name="email"></td>
</tr>
<tr>
<td colspan="2">Nachricht: <input type="text" name="message"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit"></td>
</tr>
</table>
</form>
<?
}
?>

Bin für jede Hilfe dankbar.

rarios
14.09.2006, 15:13:41
wo liegt dein problem genau?

PS: schau dir mal die PHP-Datei an.
also das, was du hier eingetragen hast.
da isn fehler:
---------------------------------------------------------------
if(!$_POST['message']) {
echo "Error! - Es wurde keine Nachricht eingetragen -";
die;
}
?>
$message = strip_tags($_POST['message'], '');
$email = strip_tags($_POST['email'], '');
$author = strip_tags($_POST['author'], '');
$message_length = strlen ($message);
$author_length = strlen ($author);
---------------------------------------------------------------
was fällt dir auf?
wenn dir nichts auffällt dann sag ichs dir:
du hast da einfach "?>" reingemacht.
aber danach is doch wieder php!
also einfach das ?> löschen!
vllt. löst das schon dein problem!

evilcrow
14.09.2006, 15:38:10
ah nen kleiner denkfehler, ich habs dann geändert, aber jetzt kommt folgender fehler ...

Parse error: syntax error, unexpected $end in /usr/export/www/vhosts/funnetwork/hosting/evilcrow/test/shout.php on line 82

soweit ich weiß ist der dann mit dem ende der datei nicht einverstanden oder?

KTB
14.09.2006, 17:35:22
Ich hab mir jetzt den Quelltext nicht durchgelesen, aber dieser Fehler weist auf eine nicht vorhandene Klammer hin (meistens einge geschweifte } )
Überprüfe ob alle geöffneten Klammern auch an richtiger Stelle geschlossen werden.

evilcrow
14.09.2006, 18:31:49
ok, du hattest recht, ich habe am ende eine weitere "}" hinzugefügt, nun kommt kein fehler mehr, aber andererseits wird nu nix angezeigt

rarios
14.09.2006, 22:09:41
also irgendwie gefällt mir dein script vom inhalt her nicht so sehr.
stammt das komplett von dir oder hastedes kopiert und bearbeitet?

rarios
14.09.2006, 22:21:34
<table width="40%" border="0">
<tr>
<td width="40%">von: <?print $row['author'];?></td>
<td width="60%">am: <?print $row['date'];?></td>
</tr>
<tr>
<td colspan="2"><?print $row['message'];?></td>
</tr>
</table>
<form method=post action="shoutbox.php">
<table width="40%" border="0">
<tr>
<td width="40%">Name: <input type="text" name="author"></td>
<td width="60%">eMail: <input type="text" name="email"></td>
</tr>
<tr>
<td colspan="2">Nachricht: <input type="text" name="message"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit"></td>
</tr>
</table>
</form>


du schickst hier was an die shoutbox.php Datei.
(<form method=post action="shoutbox.php"> )
sowie ich das hier sehe, is die shoutbox.php dein hier angegebene quelltext.

vllt. kannste ja mal die tabelle mit dem formular in ne extra datei tun.
den 1. teil also den php teil lässt du so.
´
dann siehste vllt. wo dein fehler ist.
weil wenn die php datei mit dem formular korrekt angezeigt wird und du es dann an die andere php datei schickst und es net funktioniert, dann liegt es am datenbankübertragungsscript.

wenn natürlich kein formular angezeigt wird, dann liegt dort der fehler.

is zwar umständlich aber mach das mal.
sry wüde michgerne intensiv mit dem script befassen aber hab ATM keine zeit.

wenn du dazu keine lust hast, warte einfach bissl , bis jemand anderes dein fehler gefunden hat.

CFJH
16.09.2006, 14:38:07
Ich entdecke an mehreren Stellen, daß die PHP-Blöcke beendet werden '?>' und wieder neu begonnen werden '<?'. Teilweise sind die Klammerungen auch unvollständig. Ich bin mir nicht sicher, ob Variablen über alle PHP-Blöche erhalten beleiben.

alle mir suspekten Stellen habe ich mal mit '<-- hier' gekennzeichnet (insgesamt 4).

Hi, ich hab nen Problem mit einem Shoutbox Script ... hab alles schon versucht und komme mit meinem Wissen nicht mehr weiter.

Die SQL-Tabelle
CREATE TABLE shoutbox (
id int(11) NOT NULL auto_increment,
message text NOT NULL,
author varchar(80) NOT NULL default '',
email varchar(50) NOT NULL default '',
date varchar(50) NOT NULL default '',
ip varchar(20) NOT NULL default '',
PRIMARY KEY (id))

Die PHP-Datei
<?php
$db_host = "localhost";
$db_user = "evilcrow";
$db_password = "password";
$db_name = "database";
?>
<? <-- hier
if($_POST['submit'])
{
if(!$_POST['author']) {
echo "!Error! - Es wurde kein Name eingetragen -";
die;
}

if(!$_POST['email']) {
echo "Error! - Es wurde keine Email Adresse eingetragen -";
die;
}

if(!$_POST['message']) {
echo "Error! - Es wurde keine Nachricht eingetragen -";
die;
}
?> <-- hier
$message = strip_tags($_POST['message'], '');
$email = strip_tags($_POST['email'], '');
$author = strip_tags($_POST['author'], '');
$message_length = strlen ($message);
$author_length = strlen ($author);

if ($message_length > 150) {
echo "Error - Deine Nachricht muss weniger als 150 Zeichen haben -";
die;
}

if ($author_length > 150) {
echo "Error - Dein Name muss weniger als 150 Zeichen haben -";
die;
}
mysql_connect($db_host,$db_user,$db_password) or die (mysql_error());
mysql_select_db($db_name) or die (mysql_error());
$date = date("h:i A ds M");
$query = "insert into shoutbox (message, author, email, date, ip)
VALUES ('$message','$author','$email','$date','$_SERVER[REMOTE_ADDR]')";
mysql_query($query);
mysql_close();
echo "Eintrag wurde gepostet!";
}else{
mysql_connect($db_host,$db_user,$db_password) or die (mysql_error());
mysql_select_db($db_name) or die (mysql_error());
$query = "SELECT message, author, email, date, ip
FROM shoutbox order by id DESC LIMIT 10";
$result = mysql_query($query);
while($row=mysql_fetch_array($result))
{
?> <-- hier
<table width="40%" border="0">
<tr>
<td width="40%">von: <?print $row['author'];?></td>
<td width="60%">am: <?print $row['date'];?></td>
</tr>
<tr>
<td colspan="2"><?print $row['message'];?></td>
</tr>
</table>
<form method=post action="shoutbox.php">
<table width="40%" border="0">
<tr>
<td width="40%">Name: <input type="text" name="author"></td>
<td width="60%">eMail: <input type="text" name="email"></td>
</tr>
<tr>
<td colspan="2">Nachricht: <input type="text" name="message"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit"></td>
</tr>
</table>
</form>
<? <-- hier
}
?>

Bin für jede Hilfe dankbar.