Top-Themen

Aktuelle Themen (A bis Z)

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

MYSQL frage

Frage Entwicklung PHP

Mitglied: beni90

beni90 (Level 1) - Jetzt verbinden

03.02.2012, aktualisiert 12:06 Uhr, 2648 Aufrufe, 11 Kommentare

Guten Tag miteinander,

seit einigen Wochen habe ich mit einem PHP & MYSQL Buch angefangen. Vor ein paar tagen habe ich jetzt mit dem Mysql teil angefangen wobei ich jetzt ein kleines problem habe.

Nun mein problem ist folgendes:
01.
<?php 
02.
 
03.
  $idee = $_POST['id']; 
04.
  $name = $_POST['name']; 
05.
  $mail = $_POST['mail']; 
06.
  $nachricht = $_POST['nachricht']; 
07.
 
08.
  $db = mysqli_connect('localhost','root','','arben') 
09.
  or die('GEHT NICHT'); 
10.
 
11.
  $sql = "INSERT INTO gbook ('id', 'name', 'mail', 'nachricht') VALUES ('$idee', '$name', '$mail', '$nachricht')"
12.
 
13.
  $ergebnis = mysqli_query($db, $sql
14.
  or die('geht nicht'); 
15.
 
16.
  mysql_close($db); 
17.
 
18.
echo 'hallo'; 
19.
 
20.
?> 
Wen ich auf meiner erstellten Website in 4 Feldern eines Formulars ( idee, name, mail, nachricht) Daten eingebe sodass diese per diesem php script in meine mysql Datenbank geschrieben werden kriege ich den Wert "geht nicht" zurück was ja heissen soll das es irgendeinen fehler bei der ausführung von mysqli_query($db, $sql) gab.

Bin noch ein kompletter Anfänger auf diesem Bereich und wäre froh wen mir jemand kurz helfen könnte, sitze seit gestern morgen an diesem problem

Freundliche Grüsse

Beni90
Mitglied: SlainteMhath
03.02.2012 um 11:54 Uhr
Moin,

Schalte doch mal das Error Reporting an, dann bekommst du den eigentlichen Fehler auch angezeigt.
01.
error_reporting(E_ALL)
OT: Gewöhn dir sowas gar nicht erst an! Stichwort SQL Injection usw. benutzte mindestens mysql_real_escape()
01.
 $name = $_POST['name']; 
02.
[...] 
03.
$sql = "INSERT INTO gbook ('id', 'name', 'mail', 'nachricht') VALUES (.... '$name', .... )";
Und weil Freitag ist, hier noch ein Link zu meinem Lieblings-Comic zu dem Thema : http://xkcd.com/327/

lg,
Slainte
Bitte warten ..
Mitglied: beni90
03.02.2012 um 12:14 Uhr
<?php
error_reporting(E_ALL)

$idee = $_POST['id'];
$name = $_POST['name'];
$mail = $_POST['mail'];
$nachricht = $_POST['nachricht'];

$db = mysqli_connect('localhost','root','','arben')
or die('GEHT NICHT');

$sql = "INSERT INTO gbook ('id', 'name', 'mail', 'nachricht') VALUES ('$idee', '$name', '$mail', '$nachricht')";

$ergebnis = mysqli_query($db, $sql)
or die('geht nicht');

mysql_close($db);

echo 'hallo';

?>

zeigt mir jetzt diese fehlermeldung an

Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\www\web\php\umfrage2_action.php on line 5

aber da stimmt doch alles in Zeile 5 ?


Wie meinst du das mit der sql injection ? bin vollkommen der Noob hab hier nen Buch auf dem ich jetzt grad mal 50 Seiten durch hab XD

Danke für deine hilfe
Bitte warten ..
Mitglied: Arano
03.02.2012 um 12:23 Uhr
Hi,

Die Fehlermeldung besagt das die unerwartete(unexpected) Variable(T_VARIABLE) in Zeile 5 steht, der Fehler selber liegt meisten davor
Und wenn wir nun weiter vorne schauen, dann fehlt nach error_reporting() noch das Semikolon


~Arano
Bitte warten ..
Mitglied: SlainteMhath
03.02.2012 um 12:28 Uhr
Zitat von beni90:
Wie meinst du das mit der sql injection ? bin vollkommen der Noob hab hier nen Buch auf dem ich jetzt grad mal 50 Seiten durch
hab XD

01.
 $sql = "INSERT INTO gbook ('id', 'name', 'mail', 'nachricht') VALUES ('$idee', '$name', '$mail', '$nachricht')"; 
Überleg dir mal was $sql fuer einen Wert annimnt, wenn
01.
$idee="1','','',''); DROP TABLE gbook; --";
ist?

siehe auch http://en.wikipedia.org/wiki/SQL_injection
Bitte warten ..
Mitglied: nxclass
03.02.2012 um 12:40 Uhr
benutze lieber PDO
01.
<?php 
02.
 
03.
$dsn = 'mysql:dbname=arben;host=127.0.0.1'; 
04.
$user = 'root'; 
05.
$password = ''; 
06.
try { 
07.
    $dbh = new PDO($dsn, $user, $password); 
08.
} catch (PDOException $e) { 
09.
    echo 'Connection failed: ' . $e->getMessage(); 
10.
11.
 
12.
try { 
13.
    $sth = $dbh->prepare( 'INSERT INTO gbook (`id`, `name`, `mail`, `nachricht`) VALUES (?, ?, ?, ?)' ); 
14.
    $sth->execute( array( 
15.
        $_POST['id'], 
16.
        $_POST['name'], 
17.
        $_POST['mail'], 
18.
        $_POST['nachricht'], 
19.
    ) ); 
20.
} catch (PDOException $e) { 
21.
    echo 'Fehler: ' . $e->getMessage(); 
22.
23.
 
24.
unset($dbh); // nicht nötig
Bitte warten ..
Mitglied: Arano
03.02.2012 um 12:41 Uhr
benutze lieber PDO
Warum ?
Bitte warten ..
Mitglied: nxclass
03.02.2012 um 13:25 Uhr
Warum ?
Kurz:
  • die Gefahr von Injections wird reduziert
  • man kann es für unterschiedlichste DB benutzen
  • durch die "Objekt Eigenschaft" ist es für den Programmierer viel einfacher anzuwenden
... es gibt zwar einiges zu beachten, weil zB nicht alle Funktionen des Objekts von jeder DB unterstützt werden - Aber im Endeffekt hat man ja den selben Treiber, nur eben einfacher anzuwenden.

Man ist einfach viel schneller damit beim Programmieren, insbesondere wenn man kein Framework einsetzt. (btw. PDO wird wohl inzwischen auch von jedem Framework benutzt)
Bitte warten ..
Mitglied: beni90
03.02.2012 um 14:18 Uhr
Mhh hab jetzt bei meinen Codes noch ein bisschen rumgespielt und den Quelcode von nxclass versucht aber kriegs irgendwie nicht hin.. was ich eigentlich mit meiner übung erreichen will, ist ganz einfach das 4 Werte die ich in einem HTML formular eingebe per PHP in meine MYSQL Datenbank (
Ich Arbeite Lokal mit dem Tool Xampp da ich dies neben meiner Arbeit her lerne. Kann es sein das dieses Tool manchmal spinnt ?

Könnte mir eventuell jemand einen Code schreiben der Funktioniert? Wen ich einen hätte der Funktioniert könnte ich da dann selbstständig herausfinden was, was heisst und mir das dan aneignen

l.g

Beni90
Bitte warten ..
Mitglied: nxclass
03.02.2012 um 14:59 Uhr
lass dir doch bitte die generierte SQL Anweisung ausgeben - und führe diese in deinem phpMyAdmin aus (bzw. poste die hier)

Bekommst du nicht mal eine Fehlermeldung wenn Du den von mir geschriebenen Code benutzt ?
Wie rufst Du das Script denn auf ?
Hast Du überhaupt ein Zugriff mit root auf die Datenbank ? (blöde Frage - aber man kann nie wissen)
Stimmen deine Angaben zu Datenbanknamen, Tabellennamen, Datenfeldnamen und Datentypen überhaupt ?

EDIT:
sendet dein Formular Überhaupt Daten (per POST) ?
01.
var_dump($_POST);
Bitte warten ..
Mitglied: beni90
03.02.2012 um 16:38 Uhr
sorry hat jetzt geklappt :D hatte noch nen fehler hatte im textfeld die id unbenannt.

danke vielmal :D

kannst du mir eventuell noch erklären für was PDO steht oder mir nen guten link schicken aufdem ich codes gut beschrieben finde?

l.g

beni90
Bitte warten ..
Mitglied: nxclass
03.02.2012 um 17:26 Uhr
http://php.net/manual/en/book.pdo.php - php.net sollte man kennen
http://dev.mysql.com/doc/refman/5.1/de/ - das auch

ansonsten liefert dir Google massenhaft Beispiele
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Mysql Anfänger Frage
gelöst Frage von adminstDatenbanken2 Kommentare

Hallo zusammen Ich stehe auf dem Schlauch. Die Frage ist: Ein Mitarbeiter kann mehrere Ausbildungen haben? Danke für kurze ...

Datenbanken
MySQL Profiler - MySQL Profiling
Frage von fckoelleDatenbanken

Hallo zusammen, ich möchte zu Analysezwecken gerne herausfinden welche Befehle auf einen MySQL Server abgesetzt werden. Von Microsoft kenne ...

Datenbanken
CURDATE() MySQL
gelöst Frage von ThoomaasDatenbanken1 Kommentar

Hallo alle zusammen, ich habe das Problem, dass wenn ich eine Abfrage aus einer DB mache mit dem String ...

Webentwicklung
Mysql cluster
Frage von woidl85Webentwicklung

hallo zusammen, ich bin auf der suche nach einer mysql cluster lösung aus 2 nodes welche bei möglichkeit mit ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 6 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 13 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless17 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...