Formulardaten in Datenbank speichern

solomat

Erfahrenes Mitglied
Unzwar habe ich eine Script was ich mit mühseliger Arbeit, Hilfe aus dem Forum und Hilfe von einen Freund erstellt hatte umgeschrieben um daraus ein Formular zu machen, wobei Besucher ihre Webseite in den Linkbereich eintragen können.

Dabei sollen die Homepageadresse, eine Beschreibung dazu und die Adresse zum Banner in die Datenbank gespeichert werden. Das Formular wa ja soweit kein Problem, auch die Auswertung funktioniert, aber das eintragen macht mir Probleme, wobei ich nicht weiss wie die Datenbank-Tabelle dann genau aussehen muss.

PHP:
<?
include("sqlfile.php");
$fehler=array();

if(empty($homepage))
{$f= "Du hast vergessen deine Homepage einzutragen!"; array_push($fehler,$f);}
if(empty($beschr))
{$f= "Du hast vergessen eine Beschreibung einzutragen!"; array_push($fehler,$f);}
if(empty($filename))
{$f= "Du hast vergessen die Adresse deines Banners einzutragen!"; array_push($fehler,$f);}

$t=count($fehler);
if ($t>0)
{
	$zurueck='<a href=javascript:history.back()>zum Formular zurückkehren</a>';
	echo "Fehler!<br>";
	foreach ($fehler as $x) { echo "$x<br>\n"; }
	echo "<br>$zurueck<br><br>\n";
}
else
{
	$anmeldung=mktime( "d.m.Y H:i");
	$sql="INSERT INTO links ('ìd', 'homepage', 'beschr', 'filename', 'anmeldung') VALUES ('', '$homepage', '$beschr', '$filename', '$anmeldung')";
if (mysql_query($sql,$verbindung))
{
	echo "Erfolgreich eingetragen";
}
else 
{
	echo "<br><b>Fehler!</b><br><br>\n";
	echo "Leider ist bei der Anmeldung zur Datenbank ein Fehler unterlaufen.<br>Bitte melden Sie sich nochmal an.<br><br><a href=\"javascript:history.back()\">zurück zum Formular</a><br><br>\n";
}
}


?>

Ich habe die sql datei für die Datenbank dann auch etwas umgeschrieben:
HTML:
DROP TABLE IF EXISTS `links`;
CREATE TABLE `links` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `homepage` text NOT NULL,
  `filename` varchar(255) NOT NULL default '',
  `beschr` text NOT NULL,
  `anmeldunng` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=11 ;

Vieleicht liegts auch an der Datei für die Verbindung zur Datenbank?
PHP:
<?
$server="db1.netclusive.de";
$datenbank="usr_n4a104_5";
$benutzer="xxx";
$kennwort="xxx";
$verbindung=mysql_connect($server,$benutzer,$kennwort);
mysql_select_db($datenbank,$verbindung);
$sql="USE ".$datenbank;
mysql_query($sql,$verbindung);

function gettemplate($template,$doc="htm")
{return str_replace("\"","\\\"",implode("",file($template.".".$doc)));}
function dooutput($template){echo $template;}
?>

Würde mich über Hilfe und Tips freuen.

[EDIT]in der sql datei das R bei beschr hinzugefügt[/EDIT]
 
Zuletzt bearbeitet:
Wenn Du zum Debuggen den mysql_error anzeigen ließest ...
Code:
<?
// bla bla

if ($t>0)
{
	// bla bla
}
else
{
	$anmeldung=mktime( "d.m.Y H:i");
	$sql="INSERT INTO links ('ìd`, `homepage`, `beschr`, `filename`, 'anmeldung') VALUES ('', `$homepage`, `$beschr`, `$filename`, '$anmeldung')";
if (mysql_query($sql,$verbindung))
{
	echo "Erfolgreich eingetragen";
}
else 
{
	echo "<br><b>Fehler!</b><br>\n";
	echo $sql."<br>".mysql_error($verbindung)"<br>\n";
	echo "Leider ist bei der Anmeldung zur Datenbank ein Fehler unterlaufen.<br>Bitte melden Sie sich nochmal an.<br><br><a href=\"javascript:history.back()\">zurück zum Formular</a><br><br>\n";
}
}
?>
... würde dieser Hinweise auf die fehlende Existenz von `beschr` geben.
 
Irgendwas wa an dein Codeschnipsel nich richtig, egal, die Meldung die nun kam lautet:
Fehler!
INSERT INTO links ('ìd`, `homepage`, `beschr`, `filename`, 'anmeldung') VALUES ('', `www.solomat-berlin.de`, `Test TEst`, `http://www.solomat-berlin.de/images/links/solomat1.gif`, '1099437540') mysql_error(Resource id #3)

Was genau heisst das jetzt? Kann damit leider nicht wirklich was anfangen.
In jeden Fall müsste es ein Fehler in der Datenbank sein oder? Weil da steht mysql_error
 
PHP:
$sql="INSERT INTO links (`homepage`, `beschr`, `filename`, `anmeldung`) VALUES ('$homepage', '$beschr', '$filename', '$anmeldung')";

Kann garnich glauben das sone primitiven Sachen soviel ausmachen. Vielen Dank German, nun funktioniert es. Hoffe die Ausgabe bekomm ich alleine hin. ;)
 
Zurück