Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Datensatz an MySQL übergeben im selben Formular

Frage Entwicklung PHP

Mitglied: themannr1

themannr1 (Level 1) - Jetzt verbinden

16.05.2011, aktualisiert 02.06.2011, 3951 Aufrufe, 18 Kommentare

Hallo allerseits

Liebe Leute..
Folgendermassen. Ich möchte einen Datensatz in der MySQL-Tabelle abspeichern. Tabelle besitzt nur einen Attribut "Projekttitel" jetzt im Testfall. Im selben Formular soll alles geschehen. Ich scheitere kläglich..

Ich bedanke mich für jegliche Tipps und Tricks schon mal im Voraus, falls Ihr einen Fehler entdeckt oder es besser wisst, wie man es macht.

Danke und viele Grüsse

01.
<html><head> <title> </title> 
02.
</head> 
03.
<?php 
04.
	include ("dbopen.inc.php"); 
05.
?> 
06.
<body > 
07.
 
08.
<?php 
09.
  if (isset($_GET['submit'])) { 
10.
    $ausgabe = ''; 
11.
    $fehler = ''; 
12.
     
13.
    if (isset($_GET['Projekttitel']) && !is_array($_GET['Projekttitel']) && $_GET['Projekttitel'] != '') { 
14.
		$ausgabe .= "INSERT INTO test (ID) VALUES ('$_GET[Projekttitel]');"
15.
 
16.
    } else
17.
      $fehler .= 'Fehler !! '; 
18.
19.
20.
?> 
21.
 
22.
<h3> EINTRAGEN HIER:</h3> <br> 
23.
<a href="index.php">Startseite</a><br><br> 
24.
 
25.
<form action="<?php echo htmlspecialchars ($_SERVER['PHP_SELF']); ?>" method="GET"
26.
 
27.
 <input type="text" name="Projekttitel" size="30" value="<?php 
28.
if (isset($_GET['Projekttitel']) && is_array ($_GET['Projekttitel'])) { 
29.
	echo htmlspecialchars ($_GET['Projekttitel']); 
30.
31.
?>" /> Projekttitel:<br /><br /> 
32.
 
33.
 
34.
 
35.
<br /> <br /> 
36.
<input type="submit" name="submit" value="Speichern" /> 
37.
 
38.
</form> 
39.
</body> 
40.
</html>
Mitglied: Xaero1982
16.05.2011 um 13:31 Uhr
Hi,

was steht in der dbopen.Inc.php?

Sehe hier nämlich nichts von SQL in deinem "Script".

Google doch mal php + mysql

VG
Bitte warten ..
Mitglied: EvilMoe
16.05.2011 um 14:38 Uhr
Hallo

$_GET['Projekttitel'] != '') {
$ausgabe .= "INSERT INTO test (ID) VALUES ('$_GET[Projekttitel]');";

und wo soll der SQL Befehl ausgeführt werden?
Dir fehlt ein mysql_query($ausgabe) oder ein $DB->query($ausgabe) je nachdem was du verwendest.

Davon abgesehen ist es tödlich wie du programmierst, du lässt eine Eingabe in einem SQL Befehl ohne diese vorher zu validieren.
Schau dir mal ein kapitel PHP/MySQL SQL Injection an.
Bitte warten ..
Mitglied: themannr1
16.05.2011 um 16:51 Uhr
"Tödlich" ist es wie ich programmiere.. :- ) hoffentlich nicht.. :- )

Also das File dient ein und einzig dem Zweck, das Prinzip zu begreifen. Ausgebessert wird es später.
Also: "dbopen.inc.php" enthält folgende Pararameter. Ist aber irrelevant für meine Frage:
01.
<?php 
02.
// mysql Verbindung und Aufruf der Datenbank 
03.
$server = "localhost";  // MySQL-Server 
04.
$user = "root"
05.
$pass = ""
06.
$dbase="test"
07.
 
08.
$conn = mysql_connect($server, $user, $pass); 
09.
if ($conn
10.
11.
		mysql_select_db($dbase,$conn); 
12.
13.
else 
14.
15.
		die("<b>Verbindung zum MySQL-Server konnte nicht hergestellt werden </b>"); 
16.
17.
?>
Bitte warten ..
Mitglied: themannr1
16.05.2011 um 16:54 Uhr
$ausgabe = '';
$fehler = '';
if (isset($_GET['Projekttitel']) && !is_array($_GET['Projekttitel']) && $_GET['Projekttitel'] != '') {
$ausgabe .= "INSERT INTO test (ID) VALUES ('$_GET[Projekttitel]');";

Hier liegt der Hund begraben :- (
PS.me
Bitte warten ..
Mitglied: ReichMio
16.05.2011 um 17:07 Uhr
Welche Fehlermeldung kriegst den angezeigt ? (stichwort mysql_error() )
Bitte warten ..
Mitglied: EvilMoe
16.05.2011 um 17:24 Uhr
Wie gesagt, das kann nicht gehen.
Wo fürhrst du deinen SQL Befehl aus?
Alles was du machst ist dein SQL query in einer Variable zu speichern.
Bitte warten ..
Mitglied: themannr1
16.05.2011 um 18:15 Uhr
Folgendes gemacht, ganz kurz:

create table test (
Projekttitel varchar(30) not null,
primary key (projekttitel));

Eintragen kann ich so:
Insert Into test (Projekttitel) values ('Hallo'); -> und es funktioniert

Nun, ich möchte das folgende Prozedere via PHP eintragen können. Nur das. Wie stelle ich es an? :- )

Vielen Dank für das Interesse zeigen und für das Helfen!!
LG
Bitte warten ..
Mitglied: EvilMoe
16.05.2011 um 18:57 Uhr
Ich habe.dir bereits 2x die Lösung zu deinem Problem gesagt. Wenn du es nicht umsetzt kann ich dir auch nicht mehr helfen.
Bitte warten ..
Mitglied: Xaero1982
16.05.2011 um 20:19 Uhr
Hi,

meine Frage ist absolut nicht irrelevant, denn wenn du in der Datei nichts drin stehen hast mit der Datenbank wirst du auch nichts in die DB eintragen können, weil die gar nicht bekannt ist.

Und so isses hier auch ...

Was du dir ansehen solltest habe ich dir bereits gesagt - so lernst du auch nichts, wenn du nur vorgekautes hinschreibst, was noch dazu nicht zum Ziel führt ...

Aber das sagte Moe ja auch schon ...!

VG
Bitte warten ..
Mitglied: themannr1
16.05.2011 um 20:47 Uhr
also..

was soll ich lesen? kennste empfehlungen?

1) Der Datenbank ist bekannt -> $dbase="test"
2) Ich kann nicht im selben FOrmular ausführen, was ich schon mit über 2 Dateien verteiltes Konstrukt schaffe. Ich habe auf Quellcode gehofft, salominische Wörter kenn ich selbst zu genüge.

Aber nichts desto trotzt. Vielen Dank!
Grüesse.PS
Bitte warten ..
Mitglied: Xaero1982
16.05.2011 um 20:56 Uhr
Hi,

du sollst nach PHP und MYSQL googlen.

1) Du kennst sie, die dbopen.inc.php kennt sie, aber das wars ... dir fehlt der entscheidende Punkt, den Moe nannte:

Zitat:
Dir fehlt ein mysql_query($ausgabe) oder ein $DB->query($ausgabe) je nachdem was du verwendest.
Und weiter:
Alles was du machst ist dein SQL query in einer Variable zu speichern.

Du fragst ja nicht mal nach was damit gemeint ist, das zeigt uns dann einfach nur: Du liest nicht das was wir dir schreiben!

2) Keine Ahnung was du damit sagen willst...

Code? Bekommste ... ob du was damit anfangen kannst bezweifel ich, aber wir werden sehen

database.inc.php
01.
<?php 
02.
 
03.
class Database 
04.
05.
  private $handler
06.
 
07.
  // Constructor zum Verbinden 
08.
  public function __construct($host,$user,$pass,$database){ 
09.
  	if(!$this->handler = mysql_connect($host,$user,$pass)) 
10.
    	echo "Fehler beim Verbinden..."
11.
    else
12.
    	if (!mysql_select_db($database,$this->handler)) 
13.
	    	echo "Fehler beim Auswählen der database..."
14.
15.
    return $this->handler; 
16.
17.
 
18.
  // Verbindung zum Datenbankserver 
19.
  public function setDB($host,$user,$pass) { 
20.
  	if(!$this->handler = mysql_connect($host,$user,$pass)) 
21.
    	echo "Fehler beim Verbinden..."
22.
    return $this->handler; 
23.
24.
 
25.
  // Auswahl der Datenbank 
26.
  public function selectDB($database) { 
27.
	if (!mysql_select_db($database,$this->handler)) 
28.
    	echo "Fehler beim Auswählen der database..."
29.
30.
 
31.
  // Abfrage an Datenbank 
32.
  public function SQL($query) { 
33.
  	$result = mysql_query($query,$this->handler) or die(mysql_error()); 
34.
    return $result
35.
36.
 
37.
  // Destructor 
38.
  function __destruct() { 
39.
//  	mysql_close($this->handler); 
40.
41.
 
42.
43.
?>
Und weiter mit Beispiel:

01.
<?php 
02.
	REQUIRE_ONCE("database.inc.php"); 
03.
 
04.
         $_SESSION['db']=new Database("Server","User","Passwort","Datenbank"); 
05.
 
06.
 
07.
$result=$_SESSION['db']->SQL("INSERT INTO test  (ID) VALUES ('$_GET[Projekttitel]')"); 
08.
 
Das Formular musst du noch entsprechend einbauen...

Und wie angemerkt ... sql injection hab ich nicht eingebaut ...

VG

[Edit Biber] Codeformatierung auf "type=php" ergänzt [/Edit]
Oh danke
Bitte warten ..
Mitglied: EvilMoe
16.05.2011 um 21:31 Uhr
Warum eine eigene Klasse? Nutz doch PDO oder MySQLi und fertig.
Bitte warten ..
Mitglied: Xaero1982
16.05.2011 um 21:33 Uhr
Ach das ist ca. von 2006 oder so

Er wollte Code, nun hat er Code ... )

VG
Bitte warten ..
Mitglied: ChristophD
24.05.2011 um 16:16 Uhr
Zitat von Xaero1982:
Ach das ist ca. von 2006 oder so

Er wollte Code, nun hat er Code ... )

VG

NICHT hilfreich!
Bitte warten ..
Mitglied: EvilMoe
24.05.2011 um 16:45 Uhr
Die Lösung wurde bereits mehrmals gesagt.
Kann also geschlossen werden.

Meinst du durch deinen beitrag wird es besser?
Bitte warten ..
Mitglied: Xaero1982
24.05.2011 um 19:09 Uhr
Zitat von ChristophD:
> Zitat von Xaero1982:
> ----
> Ach das ist ca. von 2006 oder so
>
> Er wollte Code, nun hat er Code ... )
>
> VG

NICHT hilfreich!

Willst du mich auf den Arm nehmen?!
Wenn du keine Ahnung hast brauchst du keine sinnlosen Kommentare schreiben!

VG
Bitte warten ..
Mitglied: Biber
24.05.2011 um 19:35 Uhr
[OT]
Kennt ihr denn schon mein immer wieder gern rezitiertes "Fehlende Passgenauigkeit von Anforderungen und Voraussetzungen"?

Ich fürchte, der schon so oft von mir erbettelte 1-Euro-Döner-farbene Haken hängt zwar am Beitrag, ist aber vollkommen irreführend.

@themannr1
Bitte nicht verschnupft reagieren, aber nach meinem Eindruck nützt dir ein egal ob 10zeiliger oder 100seitiger Fertigcode
mit oder ohne Klassen oder Bart noch überhaupt nichts.

Investiere sinnvollerweise erst mal ein, zwei Abende in ein Tutorial zum Thema "mySQL und php".
Von diesen Tutorials gibt es nun wirklich mehr als FDP-WählerInnen in Bremen und sie sind strukturiert und es stehen Wahrheiten darin.

Wenn ich diesen für alle Beteiligten unbefriedigenden Beitrag der Bremer FDP hinterher schicken darf, dann schreib mir bitte eine PN mit Betreff "Ab dafür".
Ansonsten lasse ich ihn hier auch stehen, falls einer von euch ihn mal für eine Bewerbungsmappe braucht.

[Edit 23:30]
Sorry @themannr1 und danke @Xaero1982 für den Hinweis - meine Reaktion war vor allem hervorgerufen durch ChristophDs Kommentar, den ich fälschlicherweise dem Beitragsersteller zugeordnet habe.

Dennoch - ich habe eben nochmal den Beitragsverlauf gelesen.
Zu dem (konstruktiv und ehrlich gemeinten) Hinweis, sich erstmal mit den Grundlagen auseinandersetzen und das strukturiert, stehe ich nach wie vor.
Okay, das Anraunzen lass ich weg.

[/Edit]


Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: ChristophD
25.05.2011 um 13:26 Uhr
Edit:
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
PHP
gelöst PHP-MySQL - mysqli liefert einen Datensatz zu wenig (3)

Frage von Windows-Spieler zum Thema PHP ...

Microsoft Office
Formular Autofill - Infopath (1)

Frage von TlBERlUS zum Thema Microsoft Office ...

PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...