zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Keine Einträge in die Datenbank!

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 19.08.2009, 16:43
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 19.08.2009
Beiträge: 9
Bullseye123 befindet sich auf einem aufstrebenden Ast
Standard Keine Einträge in die Datenbank!

Habe eine Frage!

Ich versuche nur ein einfaches Formular zu machen und Werte in eine Datenbank einzutragen!

Ich bekomme die Bestätigung, alles eingetragen, jedoch steht im Datensatz außer der ID nichts drin!

an was kann das liegen?


Das Formular
HTML-Code:
<html>
<head>
<title>Dateneingabe</title>
</head>
<body>

<form action="work.php" method=post>

Vorname <br />
<input type=text name="Vorname" size= 50 value=Tim>    <br />
<br>
<br>
Nachname <br /><input type=text name="Nachname" size=50 value=Hoffmann >  <br />
<br>
<br>
<input type=submit name="SUBMIT" value="ok">
</form>

</body>
</html>
Das PHP Skript:
PHP-Code:
<?php
   $server 
"localhost";
   
$user "root";   
   
$datenbank"bewerbungen";
   
$verbindung mysql_connect ($server$user)
   or die ( 
"Keibe Verbingung zum Server");
   
mysql_select_db($datenbank) or die    ("Datenbank existiert nicht");
   

$dbanfrage "INSERT into test4 values ('0', '$Vorname', '$Nachname')";

if (
mysql_db_query ($datenbank$dbanfrage$verbindung)) {
print (
"Datenbankeintrag erfolgreich.");
} else {
print (
"Es traten Probleme auf.");  }
?>
echo $dbanfrage: INSERT INTO test4 (ID, Vorname, Nachname) VALUES ('0', '', '')

Ich bekomme die Daten nicht aus den Feldern Vorname und Nachname. an was liegt es?

Geändert von Bullseye123 (19.08.2009 um 16:51 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 19.08.2009, 16:51
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Zuerst einmal ist dein HTML nicht in Ordnung. Attributwerte müssen immer in einfache, oder doppelte Hochkommas. Also type="submit" statt oder value="tim".

Dein Problem ist aber, dass die Werte der Felder in dem Array $_POST stehen.

Also solltest du vorher die Variablen, die du eintragen willst auch so definieren:
PHP-Code:
$Vorname $_POST['Vorname'];
$Nachname $_POST['Nachname']; 
Das ist allerdings nur schematisch zu verstehen. Du solltest die übergebenen Werte vorher unbedingt prüfen, ob sie der erwarteten Struktur entsprechen oder eventuel schädlichen Code enthalten.
Siehe SQL-Injection ? Wikipedia
__________________
github | http://dnaber.de
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 19.08.2009, 17:00
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 19.08.2009
Beiträge: 9
Bullseye123 befindet sich auf einem aufstrebenden Ast
Standard

danke für die schnelle antwort. die html sachen habe ich geändert.

zum php

PHP-Code:
$dbanfrage "INSERT INTO test4 (ID, Vorname, Nachname) VALUES ('0', $_POST['Vorname'], $_POST['Nachname'])"
dieser code führt dann aber dazu:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

was mache ich am syntax falsch??

So funktioniert es:
PHP-Code:
 $Vorname $_POST['Vorname'];
$Nachname $_POST['Nachname'];
$dbanfrage "INSERT INTO test4 (ID, Vorname, Nachname) VALUES ('0', '$Vorname', '$Nachname')"

Geändert von Bullseye123 (19.08.2009 um 17:03 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 19.08.2009, 17:12
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 07.04.2007
Beiträge: 311
ct2oo4 befindet sich auf einem aufstrebenden Ast
Standard

habs nurmal fix überflogen:


PHP-Code:
 $Vorname $_POST['Vorname'];
$Nachname $_POST['Nachname'];
$dbanfrage "INSERT INTO test4 (ID, Vorname, Nachname) VALUES ('0', '".$Vorname."', '".$Nachname."')"
bzw.

PHP-Code:
$dbanfrage "INSERT INTO test4 (ID, Vorname, Nachname) VALUES ('0','"$_POST['Vorname'] ."', '".$_POST['Nachname']."')"
gruß
__________________
Mit Zitat antworten
  #5 (permalink)  
Alt 19.08.2009, 17:30
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 19.08.2009
Beiträge: 9
Bullseye123 befindet sich auf einem aufstrebenden Ast
Standard

also ich habe es jetzt hinbekommen, beide varianten funktionieren!

vielen dank
Mit Zitat antworten
  #6 (permalink)  
Alt 19.08.2009, 18:39
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.985
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

Ganz schlecht.
Der Vorsicht halber, wie David schon schrieb, musst du auf SQL-Injection Prüfen.

Machs lieber so:
PHP-Code:

   $verbindung 
mysql_connect ($server$user) or die ( "Keibe Verbingung zum Server");
   
mysql_select_db($datenbank) or die("Datenbank existiert nicht");
$Vorname mysql_real_escape_string($_POST['Vorname']);
$Nachname mysql_real_escape_string($_POST['Nachname');
$dbanfrage "INSERT INTO test4 (ID, Vorname, Nachname) VALUES ('0', '".$Vorname."', '".$Nachname."')"
Die Funktion mysql_real_escape_string() benötigt eine geöffnete Datenbankverbindung.
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade!
Mit Zitat antworten
  #7 (permalink)  
Alt 19.08.2009, 19:11
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 19.08.2009
Beiträge: 9
Bullseye123 befindet sich auf einem aufstrebenden Ast
Standard

ich werde es heute abend mal testen, danke dir!

ich habe noch eine grundfrage:
muss ich bei jedem formular( daten in die db schreiben/ daten aus der db holen) eine verbindung herstellen oder reicht es einmal eine datenbankverbindung herzustellen`? klingt dumm, sorry!

Geändert von Bullseye123 (19.08.2009 um 19:20 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 19.08.2009, 20:46
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.925
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Du musst es 1x im Skript machen - nachdem ein Skript durchgelaufen ist, wird sie automatisch wieder beendet (außer du öffnest eine permanente Verbindung, was du sein lassen solltest).
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
  #9 (permalink)  
Alt 19.08.2009, 23:14
Neuer Benutzer
neuer user
 
Registriert seit: 18.08.2009
Beiträge: 15
phpspace befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

Du solltest dir den Artikel zum Thema If Anweisung den ich vor einer langen Zeit geschrieben habe mal durchlesen. Wenn Du Daten von ein Formular entgegennimmt ist es wichtig, dass du diese überprüfst und zum Beispiel fehlerhafte Eingaben direkt abfangen kannst. Was sich empfehlen kann, dass du mit der Funktion sprintf
() -> PHP: sprintf - Manual gegebenenfalls die Daten vor den speichern in der Datenbank formatierst.

Zu der Thematik SQL-Injection kann ich dir empfehlen, deine Formulare mit folgendem Zeichenkombinationen: `'"><em> foo</em>` zu überprüfen, mit dieser Zeichenkombination kann man relativ einfach Schwachstellen in einen Script finden.


Grüße Nico
__________________
Brauchst Du Hilfe mit PHP?
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 20.08.2009, 02:24
Benutzerbild von Felk
Neuer Benutzer
neuer user
 
Registriert seit: 20.08.2009
Beiträge: 13
Felk befindet sich auf einem aufstrebenden Ast
Standard

Noch ein Tipp:
Misch nicht HTML und XHTML! da du dort nur "<html><head>" stehen hast, solltest du von HTML ausgehen... andernfalls kannst du auch auf XHTML umsteigen:
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<br> = HTML, <br /> = XHTML
<input ...></input> = HTML, <input... /> = XHTML
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
HTML mit PHP Code aus Datenbank auslesen + ausführen Garlandt Serveradministration und serverseitige Scripte 14 01.05.2011 13:45
Muss ich eine Datenbank jedesmal löschen, um Änderungen vorzunehmen? Rayne Serveradministration und serverseitige Scripte 9 20.03.2009 22:55
Daten aus Datenbank entfernen b74 Serveradministration und serverseitige Scripte 4 08.02.2009 15:58
Datenbank klein halten oder möglichst wenig Textoperationen: Was ist zu bevorzugen? Schelm.isch Serveradministration und serverseitige Scripte 3 30.11.2008 16:01
Pulldown- Menue- Einträge Fischkopf CSS 1 30.03.2008 12:31


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:17 Uhr.