Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Formulardaten in Datenbank speichern Antworten
Formulardaten in Datenbank speichern

solomat
Pixelschubser


Beiträge: 14


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.


1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50:
<? 
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!
"; 
    foreach ($fehler as $x) { echo "$x
\n"; } 
    echo "
$zurueck

\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 "
<b>Fehler!</b>

\n"; 
    echo "$sql mysql_error($verbindung)<br>\n";
    echo "Leider ist bei der Anmeldung zur Datenbank ein Fehler unterlaufen.
Bitte melden Sie sich nochmal an.

<a href=\"javascript:history.back()\">zurück zum Formular</a>

\n"; 
} 
} 


?>



Ich habe die sql datei für die Datenbank dann auch etwas umgeschrieben:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9:
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?

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14:
<? 
$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.

Diese Nachricht wurde geändert von: solomat
  Profil   E-Mail   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Lies doch bitte erstmal das Tutorial auf http://www.php-q.net/.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

solomat
Pixelschubser


Beiträge: 14


Schwebt dir da nen bestimmtes Thema vor? Ich schau im Moment bei "Zu einer MySQL-Datenbank connecten" und seh dort das noch eine andere Datei icludet ist mit der ich nichts anfangen kann, bzw. ich nich weiß was dahinter steckt.

  Profil   E-Mail   Website   Editieren   Zitieren

solomat
Pixelschubser


Beiträge: 14


http://www.solomat-berlin.de/v2/links/options.htm

Da, kannst ja mal was eintragen und schauen was da kommt. Und womit das zu tun hat.

  Profil   E-Mail   Website   Editieren   Zitieren

solomat
Pixelschubser


Beiträge: 14


Okay, nun Funktioniert es, lag an den Hochkommas, anstatt ' musste ich solche ` bei den Key´s setzen.
1:
$sql="INSERT INTO links ('ìd`, `homepage`, `beschr`, `filename`, 'anmeldung') VALUES ('', `$homepage`, `$beschr`, `$filename`, '$anmeldung')"; 
Wie man hier noch schön sieht ist da einiges durcheinander an Hochkommas.

  Profil   E-Mail   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Nein dir fehlen einfach Grundlagen, vielfach mußt du einfach mal die Manualseiten lesen. Zum Beispiel ist der mktime()-Aufruf fehlerhaft. Du hast Funktionsaufrufe innerhalb von Strings (was nicht gehen kann). Zu vielen Sachen habe ich mich bei deiner letzten Frage schon geäußert.

Was bei dir auch fehlt ist eine Behandlung von SQL-Fehlern . Du nutzt nicht die Superglobals und du verwendest Benutzereingaben direkt im SQL ohne sie zu escapen.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben