Moin!
ich habe ein php protokol das so aussieht:
Du hast da einige Eigenheiten eingebaut, die ich an deiner Stelle lieber ändern würde.
if(isset($_POST['text']))
{
if ($_POST['text'] == null)
Wenn ein String leer ist, dann ist er nicht NULL, sondern "".
{
echo "Name fehlt.";
}//
else
{
if(isset($_POST['textarea']))
{
$Von = $_POST['text'];
$Vom = date("Y-m-d");
$UnverschluesselteNachricht = $_POST['textarea'];
$lang = strlen($UnverschluesselteNachricht);
$NachrichtenteilCode = false;
Wenn du $NachrichtenteilCode in der Schleife als Array verwenden willst, solltest du es hier mit array() vorbelegen, dann hast du ein leeres Array.
for ($z=0; $z<$lang; $z++)
{
$Nachrichtenteil = substr($UnverschluesselteNachricht, $z);
$Nachrichtenteil = ord($Nachrichtenteil);
$Code = "B";
$Code = ord($Code);
$NachrichtenteilCode[$z] = $Nachrichtenteil+$Code;
}
if ($NachrichtenteilCode == false)
Und hier kannst du dann mit count($NachrichtenteilCode) == 0 prüfen, ob es immer noch leer ist.
{
echo "Keine Nachricht eingegeben.";
}//if ($NachrichtenteilCode == false)
else
{
$anzahl = count($NachrichtenteilCode);
$NachrichtCodiert ="";
for ($z=0; $z<$anzahl; $z++)
{
$NachrichtCodiert .= $NachrichtenteilCode[$z];
}
$Kennung = mysql_connect("localhost", "coder", "coder");
mysql_query("use codiert", $Kennung);
$sql = 'INSERT INTO nachrichten VALUES("'.$Von.'", '.$Vom.'", '.$NachrichtCodiert.'")';
mysql_query($sql, $Kennung);
Und zu deinem konkreten Problem: Wenn der SQL-Query fehlschlägt, solltest du an dieser Stelle mysql_error() abfragen und ausgeben - dann wirst du sehen, was die Datenbank zu meckern hat, sofern sie was zu meckern hat (wenn sie nicht meckert, dann würde mich das sehr wundern).
echo "Neuer Eintrag";
}
}// if(isset($_POST['textarea']))
}//else
}// if(@$_POST['submit']<>null)
Dein letzter Kommentare zu der schließenden Klammern stimmt nicht. :)
> - Warum mach MySQL aus dem CHAR ein VARCHAR und wo ist da das problem?
MySQL optimiert die angelegte Tabellen nach gewissen Kriterien. CHAR-Felder werden meist zu VARCHAR-Feldern optimiert, wenn sich in der Tabelle noch weitere variable Felder befinden - es sei denn, du legst ein Feld CHAR(3) oder kleiner an. Alle Arten von text und blob sind variable Felder, genauso wie varchar selbst. Du kannst also niemals char(>=4) und varchar in der gleichen Tabelle benutzen.
- Sven Rautenberg