PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   MySQL Datenübertragung (http://www.selfphp.de/forum/showthread.php?t=24794)

Verzweifelter 02.12.2012 23:58:55

MySQL Datenübertragung
 
Hallo Zusammen,

ich bin neu hier und hoffe, dass es hier jemanden gibt, der mir weiter helfen kann. Ich habe hier ein Formular über das Daten in eine MySQL - Datenbank übertragen kann. Leider habe ich wohl irgendwo einen Fehler eingetragen und weiß leider nicht wo, aber es funktioniert einfach nicht :( Kann mir irgendjemand helfen den Fehler zu finden?

1000 Dank im Voraus und einen schönen Abend!!
Grüße
NA

PHP-Code:

<html>
<head>
<title>FS09 Studierendenliste</title>
</head>
<body>


<h1>Formular zur Namenseingabe</h1>

<form action="frm_fs09.php" name="frm" method="post">
  <p>Vorname:<br><input name="vorname" type="text" size="30" maxlength="30"></p>
  <p>Nachname:<br><input name="nachname" type="text" size="30" maxlength="40"></p>
  
  <input type="submit" value="absenden" >
</form>

</body>
</html>


<?php

//Verbindungsdaten
$servername 'localhost';
$db_user 'root';
$db_password '';

//Variablen initialisieren
$vorname $_POST['vorname'];
$nachname $_POST['nachname'];

//Schritt 1: Verbindung zum Datenbankserver (MySQL-Server) herstellen
$con mysql_connect($servername,$db_user,$db_password) or die('Verbindung fehlgeschlagen!');

$datenbankname 'fs09';

//Schritt 2: Datenbank auswählen
$db mysql_select_db($datenbankname) or die('Die Datenbank existiert nicht!');

//Schritt 3: Datenbankanfragen
//Daten in Datenbank speichern
//Anfrage erstellen
$einfuegen "INSERT INTO tbl_fs09_namen VALUES ('$vorname', '$nachname')";

//Anfrage senden
mysql_query($einfuegen);


//Schritt 4: Datenbankanfragen: Ausgabe der Daten in tabell. Form
// Auswahl aller Datensätze
$sql_befehl "SELECT * FROM tbl_fs09_namen";

//Anfrage senden
$ergebnis mysql_query($sql_befehl);

echo 
"<table border='1'> <tr><td colspan='2' class='ueberschrift'>Datenbank $datenbankname</td></tr>";

echo 
"<tr><td>Vorname</td><td>Nachname</td></tr>";

//Datensätze werden übergeben
while ($row mysql_fetch_object($ergebnis))
    {
    echo 
"<tr><td>$row->vorname</td><td>$row->nachname</td></tr>";
    }
echo 
"</table>";

//Schritt 5: Verbindung zum Datenbankserver beenden
mysql_close($con);

?>


meikel (†) 03.12.2012 01:03:51

AW: MySQL Datenübertragung
 
Zitat:

Zitat von Verzweifelter (Beitrag 144009)
ich bin neu hier und hoffe, dass es hier jemanden gibt, der mir weiter helfen kann.

Bei der Informationslage? Keine klar erkennbare Frage, ein finsteres Script (ohne BBcode Formatierung), keine Fehlermeldung...

Da mußte warten, bis die Hellseher kommen.

DokuLeseHemmung 03.12.2012 01:45:23

AW: MySQL Datenübertragung
 
Zitat:

Da mußte warten, bis die Hellseher kommen.
Yes, anwesend!
Und danke für die Blumen.

Ich sehe da 2 massive Probleme (oder sinds 3 ? )
  1. Es wird nicht geprüft ob das Formular wirklich abgesendet wurde
  2. Es wird auf eine veraltete DB Erweiterung gesetzt
  3. SQL Injektions oder Syntaxerrors in den Statements werden in Kauf genommen
  4. Fehler bei der SQL Verarbeitung werden noch nicht einmal ignoriert -->> mysql_error()

Verzweifelter 05.12.2012 20:04:50

AW: MySQL Datenübertragung
 
Zitat:

Zitat von meikel (Beitrag 144011)
Bei der Informationslage? Keine klar erkennbare Frage, ein finsteres Script (ohne BBcode Formatierung), keine Fehlermeldung...

Da mußte warten, bis die Hellseher kommen.

Hallo Meikel,

hier mein Anliegen "Ich habe hier ein Formular über das Daten in eine MySQL - Datenbank übertragen kann. Leider habe ich wohl irgendwo einen Fehler eingetragen und weiß leider nicht wo, aber es funktioniert einfach nicht :(

Frage: Kann mir irgendjemand helfen den Fehler zu finden?"

Stand alles drin, aber trotzdem danke!

Verzweifelter 05.12.2012 20:11:33

AW: MySQL Datenübertragung
 
Zitat:

Zitat von meikel (Beitrag 144011)
Bei der Informationslage? Keine klar erkennbare Frage, ein finsteres Script (ohne BBcode Formatierung), keine Fehlermeldung...

Da mußte warten, bis die Hellseher kommen.

Zitat:

Zitat von DokuLeseHemmung (Beitrag 144013)
Yes, anwesend!
Und danke für die Blumen.

Ich sehe da 2 massive Probleme (oder sinds 3 ? )
  1. Es wird nicht geprüft ob das Formular wirklich abgesendet wurde
  2. Es wird auf eine veraltete DB Erweiterung gesetzt
  3. SQL Injektions oder Syntaxerrors in den Statements werden in Kauf genommen
  4. Fehler bei der SQL Verarbeitung werden noch nicht einmal ignoriert -->> mysql_error()


Hallo Hellseher ;)

vielen Dank für deine Hilfe!!!! Hilft mir schon etwas weiter.
Aber eine ganz dumme Frage, was ist eine veraltete DB Erweiterung?

Ich muss dazu sagen, bevor du lachst :D ich habe von dem Thema überhaupt keine Ahnung, soll es für eine Klausur können, aber leider kommt mein Verstehen nur seeeeehr schleppend :-/

Vielen Dank!

DokuLeseHemmung 05.12.2012 20:23:38

AW: MySQL Datenübertragung
 
mysql ist veraltet gehört nicht mehr zur Standard Installation
mysqli ist moderner
PDO ist modern und sollte verwendet werden
http://php.net/manual/de/refs.database.php
http://php.net/manual/de/book.pdo.php


Besser wäre dann noch ein ORM wie z.B. doctrine2 oder RedBean, welche beide auf PDO aufsetzen, zu nutzen.

meikel (†) 06.12.2012 17:49:54

AW: MySQL Datenübertragung
 
Zitat:

Zitat von Verzweifelter (Beitrag 144028)
Frage: Kann mir irgendjemand helfen den Fehler zu finden?"
Stand alles drin, aber trotzdem danke!

Und was erwartest Du da als Antwort, wenn Du fragst, ob jemand was kann, was Du nicht kannst? Zur Auswahl stehen:
[_] Ja
[_] Nein

Die Verarbeitung eines Formularrequestes muß nach dem EVA Prinzip erfolgen:
E wie Eingabe
V wie Verarbeitung
A wie Ausgabe

Wenn keine Eingabe vorliegt, ist die Verarbeitung sinnlos und es muß das Formular angezeigt werden.
Wenn eine Eingabe vorliegt, folgt die Verarbeitung. Die Ausgabe muß das Ergebnis der Verarbeitung betreffen und nicht die Ausgabe des Formulars - es sei denn, Du erwartest weitere Eingaben.

Und wenn Eingaben verwurstet werden, ist es zwingend, die Variablen, die vom User kommen, zu validieren.
Sicheres Programmieren in PHP
http://www.php-faq.de/q-security-variablen.html

Prüfe importierte Parameter. Traue niemandem
http://www.php-faq.de/q-sicherheit-parameter.html
Zitat:

Zusammenfassend: Traue niemandem. Validiere allen Input oder stirb.
Druck Dir das aus und nagel das so hinter den Monitor, daß Du es nicht übersehen kannst.

Sowas gehört zu den Basics, wenn man programmieren will - egal in welcher Sprache.

Lies Dir die DCLP FAQ durch. Und beachte das, was DokuLeseHemmung geschrieben hat.


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:09:04 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.