Shoutbox-Problem


r4zor

Grünschnabel
Hallo,

ich beschäftige mich seit ca 2 Monaten neben GFX auch noch mit HTML PHP und MySQL und möchte nun eine Shoutbox erstellen.Leider habe ich ein Problem, aber ich denke ich zeige euch erstmal den Code:
PHP:
<?php
$host="localhost";
$user="";
$pass="";

$verbindung=mysql_connect($host,$user,$pass)
or die("Die Verbindung konnte nicht hergestellt werden!");

$mysql_select_db("homepage")
or die("Datenbank existiert nicht");

?>
So, das war nun die Seite für die Verbindung zur Datenbank
Nun folgt die eigentliche Shoutbox:
HTML:
<html>
<head>
<title>SymA Shout!ng V0.1</title>
</head>
<body>
<form action=eingetragen.php method=post>
<table border=1 cellpadding=2 cellspacing=2>
<tr>
<td><center>Shoutbox</td>
</tr>
<tr>
<td>
Name:<br>
<input type=text name=name size=30>
</td>
</tr><br>
<tr>
<td>
Text:<br>
<textarea rows=15 cols=22 name=text></textarea>
</td>
</tr>
<tr>
<td><center><input type=submit value=post!></td>
</tr>
</table>
</form>
</body>
</html>
PHP:
<?php
include("connect.php");

$name=$_POST["name"];
$text=$_POST["text"];
$ip=getenv("HTTP_REMOTE_ADDR");
$datum=date(" d.m.Y - H.i.s");

$eintrag="INSERT INTO shoutbox
(name,text,datum,ip)
VALUES
($name,$text,$datum,$ip)";
$eintragen=mysql_query($eintrag);

if($name=="" OR $text=="")
   {
   echo "Bitte alle Felder ausfüllen";
   }
else
   {
   echo "Eintrag erfolgreich gespeichert";
   }

?>

Jetzt sehe ich zwar dass in Zeile 9 ein Fehler ist, aber das ist nicht das Problem das ich meine. Meine Frage besteht darin:
Wieso wird unter der Shoutbox selbst "Bitte alle Felder ausfüllen" angezeigt, wenn ich noch nicht einmal auf "abschicken" gedrückt habe?:(

Wäre sehr nett wenn mir Jemand helfen könnte.

MfG

P.S:Ich kann mich grad ned an den Befehl erinnern damit der Code von meinen PHP-Seiten in einer Box dargestellt wird :(
 

maga147

Erfahrenes Mitglied
Wo is denn der Fehler? Markier doch bitte mal die Zeile oder poste sie nochmal.....

Desweiteren probier mal:

PHP:
if($name=="" || $text=="")
 

Dr Dau

ich wisch hier durch
Hallo!

Das Problem ist schlicht und einfach dass Du garnicht danach fragst ob das Formular überhaupt abgeschickt wurde. ;)

@maga147, || hat die gleiche Funktion wie OR..... ich persönlich bevorzuge lieber OR, da dieses wohl selbst der blutigste Anfänger verstehen sollte. ;)

Gruss Dr Dau
 

RS9999

Erfahrenes Mitglied
Vorschlag:

PHP:
<?php

   $host='localhost';
   $user='';
   $pass='';

   $verbindung=mysql_connect($host,$user,$pass)or die('Die Verbindung konnte nicht hergestellt werden!');

   mysql_select_db('homepage')or die('Datenbank existiert nicht');

   
   if(isset($_POST['senden'])){
     
      if(empty($_POST['name']) || empty($_POST['text'])){
 
         $meldung = 'Bitte alle Felder ausfüllen';
      }      
    
      else{
       
       $eintrag='INSERT INTO 
                                   `shoutbox`
                     SET
                                   `name` = "'.mysql_real_escape_string($_POST['name']).'",
                                   `text` = "'.mysql_real_escape_string($_POST['text']).'",
                                   `datum` = "'.date('d.m.Y - H.i.s',time()).'",
                                   `ip` = "'.getenv('HTTP_REMOTE_ADDR').'"
                    ';
               
       $eintragen = mysql_query($eintrag)or die (mysql_error);
       
          if ($eintragen) {
          
             $meldung = 'Datensatz erfolgreich hinzugefügt!';
          }
          else{
          
             $meldung = 'Datensatz konnte nicht hinzugefügt werden!';
          }    
      }
   }
?>
HTML:
<html>

   <head>
      <title>SymA Shout!ng V0.1</title>
   </head>
   <body>
      <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
      <table border="1" cellspacing="2" cellpadding="2">
         <tr>
            <td><center>Shoutbox</center></td>
         </tr>
         <tr>
            <td> Name:<br>
            <input type="text" name="name" size="30"></td>
         </tr><br>
         <tr>
            <td> Text:<br>
            <textarea name="text" rows="15" cols="22"></textarea></td>
         </tr>
         <tr>
            <td><center>
            <input type="submit" name="senden" value="post!"></center>
            </td>
         </tr>
      </table><?php echo $meldung ?>
      </form>
    </body>

</html>
 
Zuletzt bearbeitet:

Dr Dau

ich wisch hier durch
2 Dinge fallen mir da noch auf.....
Das "$" vor mysql_select_db hat da nichts verloren..... dieses dürfte wohl auch den Fehler in Zeile 9 des ursprünglichen Scripts schon verursacht haben.
Und dann bitte noch:
PHP:
if(empty($_POST['name']) || empty($_POST['text'])){
 
// und nicht
if(empty($name) || empty($text)){
 

Forum-Statistiken

Themen
272.354
Beiträge
1.558.605
Mitglieder
187.825
Neuestes Mitglied
markus.frick