PHP/SQL Anfänger Prob.

thommy1972

New Member
Hallöchen. Ich hätte da gerne mal ein Problem.
Nach langem rumbasteln und rumprobieren, durchforsten von Google u.s.w. schreibe ich nun hier mal meine Frage ^^
Ich bastele an einem relativ simplen Script was Name, Adresse u.s.w. abfragt. Diese Daten sollen nun in eine Datenbank.
Soweit die Theorie...
Die Praxis sieht derzeit so aus:
Formular:
Code:
<head>
<title>Formular User</title>
</head>
<body bgcolor="#000000"><center><font size="14pt">Userformular</font><br><br>
<form method="POST" action="submit.php">
<table width="100em" border="0"><font color="##0000FF">
<tr>
<td align="right"><font color="#ffffff">Vorname: </font></td><td><input type="text" name="vorname" size="35" value="" /></td>
</tr>
<tr>
<td align="right"><font color="#ffffff">Nachname: </font></td><td><input type="text" name="nachname" size="35" value="" /></td>
</tr>
<tr>
<td align="right"><font color="#ffffff">Strasse:/Hs.Nr: </font></td><td><input type="text" name="strasse" size="25" value="" />
<input type="text" name="hausnummer" size="5" value="" /></td>
</tr>
<tr>
<td align="right"><font color="#ffffff">PLZ/Ort: </font></td><td><input type="text" name="plz" size="5" value="" />
<input type="text" name="ort" size="25" value="" /></td>
</tr>
<tr>
<td align="right"><font color="#ffffff">Telefon: </font></td><td><input type="text" name="telefon" size="35" value="" /></td>
</tr>
<tr>
<td align="right"><font color="#ffffff">Fax: </font></td><td><input type="text" name="fax" size="35" value="" /></td>
</tr>
<tr>
<td align="right"><font color="#ffffff">Mobil: </font></td><td><input type="text" name="mobil" size="35" value="" /></td>
</tr>
<tr>
<td align="right"><font color="#ffffff">Internet: </font></td><td><input type="text" name="internet" size="35" value="" /></td>
</tr>
<tr></td><td><td align="left">
<input type="submit" value="Abschicken"><input type="reset" value="Löschen"></td>
</form>
</body>

Script zum Senden:
Code:
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
    $host = "localhost";
    $user = "xxxxxxx";
    $passwd = "xxxxxxx";
   
    $db=mysql_connect($host, $user, $passwd) or exit ("Keine Verbindung hergestellt!");
    mysql_select_db("test") or exit ("Datenbank nicht geöffnet!");
   
    $sqlbef = "insert into user ('id', 'vorname', 'nachname', 'strasse', 'hausnummer', 'plz', 'ort', 'telefon', 'fax', 'mobil', 'internet') values ('$vorname', '$nachname', '$strasse', '$hausnummer', '$plz', '$ort', '$telefon', '$fax', '$mobil', '$internet')";
    $sqlerg = mysql_query($sqlbef, $db);
    if ($sqlerg)
        echo"Datensatz hinzugefügt!";
    else
        echo"Kein Datensatz hinzugefügt!";
    mysql_close($db);
       
?>

Problem: Es werden ausser der ID keine Felder in die DB eingefügt. Stattdessen schreibt er alles mit 0 voll.

Hat da wer eine Idee ?

Thommy
 
Gut gut.. dann kannst Du die beim insert auch weglassen. Für den Rest schau Dir mal meinen geposteten Link an :)

Grüße
mkeil
 
Hab ich gerade. Leider werde ich als Anfänger nicht wirklich schlau daraus^^
Also müsste ich "theoretisch"
$vorname = $_POST['data']['User']['vorname']; ??
Alle so hinzufügen ?
 
Nein, wenn Dein Textfeld "name" heißt, und Du die Daten per POST übermittelst, musst Du $_POST['name'] verwenden.

Grüße
mkeil
 
Noch eine dämliche Frage: In`s Formular oder in die submit.php ??

Also irgendwie schreibt er mir jetzt garnix mehr in die DB ^^
 
Last edited by a moderator:
In die submit.php, Daten, die per POST übergeben werden, stehen im $_POST Array von PHP. Denk aber auf jedem Fall daran, die Eingaben auf Gültigkeit zu überprüfen, bevor du sie in die Datenbank einfügst, damit du dir keine SQL-Injection-Lücke einfängst. Schau dir dazu u.a. mal die Funktionen addslashes und mysql_real_escape_string an (ich verwende nur erstere, da ich einen generischen Datenbank-Layer im meinen Scripten verwende und so relativ einfach auch von MySQL auf eine andere SQL-Plattform wechseln kann.
 
Back
Top