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 Datenbankanbindung mit php und mysql geht nicht

Mitglied: Munsi1

Munsi1 (Level 1) - Jetzt verbinden

31.03.2008, aktualisiert 07.04.2008, 5154 Aufrufe, 18 Kommentare

Hallo,

ich hab ein kleines Porblem mit php und mysql. Vorweg ich bin blutiger Anfänger was die beiden Sachen betrifft. Folgendes Problem habe ich. Ich möchte die eingegeben Daten auf einer php Seite in eine Datenbank senden. Leider bekomme ich die Meldung Seite kann nicht angezeigt werden. Ich finde aber den Fehler nicht. Vielleicht kann einer von euch den Fehler finden?
01.
<form method="post" action="p-3-1.php"
02.
<?php 
03.
$hostname = "Server"
04.
$username = "username"
05.
$password = "passwort"
06.
 
07.
 function check_mysql() { 
08.
  if (mysql_errno() > 0) { 
09.
    die("<br> MySQL-Fehler " . mysql_errno() . ": "
10.
    mysql_error()); 
11.
12.
13.
$db = mysql_connect($hostname, $username, $password); 
14.
//$db=mysql_connect("localhost", "root", ""); 
15.
 if (!$db) { 
16.
  die("Öffnen der Verbindung zum MySQL-Server "
17.
         "gescheitert"); 
18.
19.
// mysql_select_db("test"); 
20.
 mysql_select_db("assistant_roles"); 
21.
 check_mysql(); 
22.
 if(!isset($id)) { 
23.
  $id=0; 
24.
25.
  if (!isset($_POST['add'])) { 
26.
  $query = "INSERT INTO anwender (name, novellname)"
27.
           " VALUES ($_POST['name'], $_POST['novellname'])"
28.
  $result = mysql_query($query); 
29.
  check_mysql(); 
30.
  $id = mysql_insert_id(); 
31.
  $message = "Datensatz (id=$id) hinzugefuegt"
32.
 
33.
34.
?> 
35.
 
36.
<br>Name, Vorname: 
37.
<br><input type="text" name="name" 
38.
<?php echo "value=\"$name\""?>> 
39.
<br>Novellname: 
40.
<br><input type="text" name="novellname" 
41.
<?php echo "value=\"$novellname\""?>> 
42.
<br> 
43.
<br> 
44.
<br><input type="submit" name="add" value="Daten abschicken"
45.
<input type="hidden" name="id" 
46.
<?php echo "valve=\"$id\""?>> 
47.
<?php 
48.
if (isset($message)){ 
49.
echo "<br><br>$message"
50.
51.
?>
Vielen Dank für eure Hilfe
Sebastian
Mitglied: Dani
31.03.2008 um 19:06 Uhr
Hi Sebastian,
also das Script ist ja mit sehr vielen Kommentaren versehen. Das du als "Anfänger" doch durchblickst, kann ich mir nicht vorstellen.
Vorallem, was genau so das Script machen?! Deine Beschreibung ist mehr als dürftig! Meine Glaskugel sitzt noch in Lodon auf dem Airport "Heathrow " fest (Terminal 5) - also keine Chance.


Grüße
Dani
Bitte warten ..
Mitglied: Munsi1
31.03.2008 um 19:36 Uhr
Hi Dani,

okay dann versuche ich mal zu erklären was genau ich machen möchte. Also ich habe zwei Testfelder Name und Novellname. In die werden Daten eingegeben und über den Button add an die Datenbank gesendet. So soll es sein. Problem ist das er nichts in die Datenbank einträgt ich aber auch keine Fehlermeldung bekomme. Ja das Script ist nicht so schön aber ich hoffe doch das ich es mit Hilfe des Forums hinbekomme dann wird es besser werden bei nächsten mal.

Gruß
Sebastian
Bitte warten ..
Mitglied: Dani
31.03.2008 um 20:41 Uhr
Hi!
Dann probiere es mal so:
01.
<?php 
02.
 
03.
// Triff zu, wenn das Formular gesendet worden ist 
04.
if(isset($_GET['add'])) 
05.
06.
	$hostname = "Server"
07.
	$username = "username"
08.
	$password = "passwort"
09.
	$database = "assistant_roles"
10.
 
11.
	$db = mysql_connect($hostname, $username, $password); 
12.
	if (!$db) die("Öffnen der Verbindung zum MySQL-Server " ."gescheitert"); 
13.
 
14.
	mysql_select_db($database); 
15.
 
16.
	$query = "INSERT INTO anwender (id, name, novellname) VALUES (NULL, '".$_POST['name']."', '".$_POST['novellname']."');"
17.
	$result = mysql_query($query); 
18.
 
19.
	echo "Datensatz Nr. ".mysql_insert_id();." hinzugefuegt"
20.
21.
else 
22.
	{?> 
23.
	<form method="post" name="xxx"
24.
	<br>Name, Vorname: 
25.
	<br><input type="text" name="name"
26.
	<br>Novellname: 
27.
	<br><input type="text" name="novellname"
28.
	<br> 
29.
	<br> 
30.
	<br><input type="submit" name="add" value="Daten abschicken"
31.
32.
?>
Ungetestete Skizze und ähnelt sehr deinem Code.


Grüße
Dani
Bitte warten ..
Mitglied: Munsi1
31.03.2008 um 22:19 Uhr
Hallo Dani,

danke für den Code, leider ist folgende Zeile fehlerhaft
01.
VALUES (NULL, '".$_POST['name']."', '".$_POST['novellname']."');";
Das ein " fehlt habe ich gesehen aber auch damit bekomme ich die Fehlmeldung Parse error:syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Hab jetzt alle möglichkeiten versucht die mir und google eingefallen sind ohne Erfolg. Vielleicht hast du noch eine Idee?

Danke und Gruß
Sebastian
Bitte warten ..
Mitglied: Dani
31.03.2008 um 22:43 Uhr
Schön, dass du dich damit auseinandersetzt. Aber wenn du nicht weißt, wo suchen kannst du lange Google befragen.

01.
$query = "INSERT INTO anwender (id, name, novellname) VALUES (NULL, '".$_POST['name']."', '".$_POST['novellname']."');"; 
02.
$result = mysql_query($query);
/Dani
Bitte warten ..
Mitglied: Munsi1
01.04.2008 um 09:34 Uhr
Hallo Dani,

danke für die Hilfe, kann es leider im Moment nicht testen da Stress auf Arbeit. Werde es heute Abend ausprobieren und eine Rückinfo geben.

Danke und Grüße
Sebastian
Bitte warten ..
Mitglied: Munsi1
03.04.2008 um 12:46 Uhr
Hallo Dani,

leider geht es immer noch nicht. Ich erhalte die Meldung das er mit den Variablen nichts anfangen kann. Undefined variable: novelname in C:\\ und so weiter lautet die Meldung.
Hast du noch eine Idee woran es liegen kann?

Danke und Gruß
Sebastian
Bitte warten ..
Mitglied: Hawk18x
04.04.2008 um 10:28 Uhr
folgendes zum testen, ob deine Daten überhaupt ankommen:

print_r($_POST);

Mit dem Befehl kannst du dir alle Daten ausgeben lassen, die mit dem Formular gesendet wurden.

Nun kannst du hingehen und die Vars im SQL-Query mit den Daten des $_POST-Arrays anpassen.
Nebenbei kannst du die Reihe:

$result = mysql_query($query);

erstmal mit // auskommentieren und den $query mit einem echo ausgeben lassen. Damit kannst du nachschauen, ob auch alles soweit korrekt aussieht und ausgefüllt wird.

Wenn du dir mit dem $query nicht sicher bist, dann geh ins phpmyadmin und mach in den Table einen manuellen INSERT. phpmyadmin generiert so einen Query und gibt da auch aus. Den kannst du dann einfach kopieren und die Variablen, die eingefügt werden einfach anpassen. Damit sollte es dann auch gewesen sein.
Bitte warten ..
Mitglied: Munsi1
04.04.2008 um 15:06 Uhr
Hallo,

danke für deine Hilfe, mittlerweile habe ich alles noch mal neu geschrieben.
Hier noch mal der Code
01.
 
02.
<form method="post" action="p-3-1.php"
03.
 
04.
<br>Name, Vorname: 
05.
<br><input type="text" name="name"
06.
 
07.
<br>Novellname: 
08.
<br><input type="text" name="novellname"
09.
 
10.
 
11.
<br> 
12.
<br> 
13.
 
14.
 
15.
<br><input type="submit" name="add" value="Daten abschicken"
16.
<input type="hidden" name="id"
17.
 
18.
</from> 
19.
<?php 
20.
//Verbindung zur Datenenbank 
21.
 $verbindung = mysql_connect("servername", "Nutzer", "passwort") or die ("keine Verbindung möglich"); 
22.
 mysql_select_db("assistant_roles") or die ("Die Datenbank existiert nicht"); 
23.
 ?> 
24.
 
25.
<?php 
26.
//Daten senden 
27.
if(!isset($_POST['add'])) 
28.
$eintrag = "INSERT INTO anwender (ID, name, novellname) VALUES (NULL, '".$_POST['name']."', '".$_POST['novellname']."');"
29.
 
30.
?> 
31.
<?php 
32.
print_r($_POST); 
33.
?>
Ich bin jetzt schon soweit das ich keinen Fehlercode im log mehr erhalte allerdings bekomme ich keine Daten in die Datenbank.
So wie du es beschrieben hast habe ich es mal getestet die Daten gibt er mir mir print_r($_POST); auch zurück also das stimmt schon mal. Leider werde ich aus dem Rest nicht ganz schlau. Kannst du mir das noch mal näher erklären?
Vielen Dank
Sebastian
Bitte warten ..
Mitglied: Hawk18x
04.04.2008 um 15:16 Uhr
Also erstmal fehlt dir der mysql_query-Aufruf.

Hier mal die Version, wo ich meine, dass sie funzen sollte:

01.
<form method="post" action="p-3-1.php"
02.
 
03.
<br>Name, Vorname: 
04.
<br><input type="text" name="name"
05.
 
06.
<br>Novellname: 
07.
<br><input type="text" name="novellname"
08.
 
09.
 
10.
<br> 
11.
<br> 
12.
 
13.
 
14.
<br><input type="submit" value="Daten abschicken"
15.
<input type="hidden" name="id"
16.
 
17.
</from> 
18.
<?php 
19.
//Verbindung zur Datenenbank 
20.
 $verbindung = mysql_connect("", "", "") or die ("keine Verbindung möglich"); 
21.
 mysql_select_db("") or die ("Die Datenbank existiert nicht"); 
22.
 ?> 
23.
 
24.
<?php 
25.
//Daten senden 
26.
if(isset($_POST)) { 
27.
$eintrag = "INSERT INTO anwender (name, novellname) VALUES ('".$_POST['name']."', '".$_POST['novellname']."')"
28.
$result=mysql_query($eintrag); 
29.
if($result) { echo "Eintrag in Tabelle erfolgreich!"; } 
30.
 
31.
print_r($_POST); 
32.
33.
 
34.
mysql_close();
Wenn ich das auch so sehe, wird ID wohl ein auto_increment-Wert sein, der sich bei jedem Eintrag um eins erhöht. Diese Werte braucht man in den Insert's nicht einsetzen, daher habe ich ID rausgenommen.
Den name="add" aus dem input submit habe ich ebenfalls entfernt, da dieser sonst im $_POST-Array auftaucht. Der hat aber da nichts zu suchen.

In dem $_POST-Array sind alle Variablen enthalten, die beim Formular angegeben sind. Ob das Input-Tags mit text, hidden,password sind oder was auch immer.

Normal sollte das Script so jetzt arbeiten.
Bitte warten ..
Mitglied: Munsi1
04.04.2008 um 15:44 Uhr
du warst leider schneller als ich kannst du bitte die mysql_connect Zeile ändern. Ich habe aus versehen die Daten darin nicht bearbeitet
Danke
Bitte warten ..
Mitglied: Hawk18x
04.04.2008 um 15:47 Uhr
und was ist nun? Gehts, oder gehts nicht?
Bitte warten ..
Mitglied: Munsi1
04.04.2008 um 15:54 Uhr
bekomme einen Fehler in der Log PHP Parse error: syntax error, unexpected '{ es liegt an der Zeile
01.
if(!isset($_POST) {   
muss die { sein?
Bitte warten ..
Mitglied: Hawk18x
04.04.2008 um 16:18 Uhr
Ein alles was in einem "if" ausgeführt wird, oder zb while, for, foreach, do...while muss mit { und } umschlossen sein, sonst weiss php ja nicht, was es machen soll, wenn die angegebenen Punkte erfüllt sind.
Bitte warten ..
Mitglied: Munsi1
07.04.2008 um 10:00 Uhr
Hallo,

leider habe ich schon alles so gemacht wie du es mir vorgegeben hast, trotzdem stört er sich daran hier der Code
01.
if(!isset($_POST) { 
02.
$eintrag = "INSERT INTO anwender (name, novellname) VALUES ('".$_POST['name']."', '".$_POST['novellname']."')"; 
03.
$result = mysql_query($eintrag); 
04.
if($result) {echo "Eintrag erfolgreich"; 
05.
print_r($_POST); }
siehst du irgendwo noch den Fehler?
Bitte warten ..
Mitglied: Hawk18x
07.04.2008 um 10:05 Uhr
Gibt er denn eintrag erfolgreich aus oder gibt er fehlermeldung?

So sehe ich jetzt ehrlich keinen Fehler. Man könnte noch aus anwender `anwender` machen. Das ist das SQL-Syntax. Ansonsten brauche ich da Fehlermeldungen.
Bitte warten ..
Mitglied: Hawk18x
07.04.2008 um 10:26 Uhr
Oh, jetzt sehe ich den fehler. Peinlich!!!

01.
if(isset($_POST)) { 
02.
$eintrag = "INSERT INTO anwender (name, novellname) VALUES ('".$_POST['name']."', '".$_POST['novellname']."')"
03.
$result = mysql_query($eintrag); 
04.
if($result) {echo "Eintrag erfolgreich"
05.
print_r($_POST); }
Das ! bei "if(!isset($_POST) {" musste weg. Der alte Befehl hatte die Aufgabe, den Code auszuführen, wenn kein Formular gesendet wurde. Ohne das ! wird der Code nur ausgefüllt, wenn das Array $_POST vorhanden ist.
Ausserdem fehlte eine )-Klammer in der gleichen Zeile. Bei PHP müssen alle () wieder geschlossen werden, egal, welche es sind. (), {} oder [].
Ein Editor, der PHP-Syntax beherrscht, hilft dir da sehr weiter. Der meldet soetwas entweder mit farbiger Markierung, oder er fügt automatisch beim Öffnen den Schliessklammer mit hinzu.
Ich kann die da PSPad empfehlen. Ist kostenlos und umfangreich. PHP Coder Pro geht auch. PHP Designer gibt es auch in einer kostenlosen Version.
Bitte warten ..
Mitglied: Munsi1
07.04.2008 um 11:40 Uhr
Hallo,

wahnsinn jetzt läuft es so wie es soll. Vielen Dank. Werde jetzt noch den Rest dazuschreiben der nicht mehr allzu schwer ist. Da ich einfach diese blöde Datenübergabe nicht hinbekommen haben.
Danke auch für die Editoren werde mir gleich mal einen runterladen nutzte im Moment Phase5 aber markiert mir den php Code leider nicht farblich.
Also Danke noch mal
Grüße
Sebastian
Bitte warten ..
Ähnliche Inhalte
PHP
PHP Umstellung mysql connect
Frage von DPiegzaPHP7 Kommentare

Hallo zusammen. Ich bekomme immer diese Fehlermeldung / Warnung: Deprecated: mysql_connect(): The mysql extension is deprecated and will be ...

PHP
PHP MySQL Login
Frage von YanmaiPHP7 Kommentare

Hallo ihr Administratoren, ich habe eine Datenbank, in der alle User des Netzwerkes enthalten sind. Wenn ein User sich ...

PHP
MySQL in PHP mit Variablen
gelöst Frage von carl7nPHP10 Kommentare

Hallo, ich habe PHP-Grundkenntnisse, schaffe es aber nicht, nach meinen Vorstellungen ein paar kleine PHP-Scripts zusammen arbeiten zu lassen. ...

Datenbanken
Eine Art Access, nur mit PHP und MySQL?
gelöst Frage von McLionDatenbanken14 Kommentare

Hallo, gibt es eine Art wie Microsoft Access, nur auf PHP und MySQL aufbauend? OpenSource wäre noch schöner. Danke!

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 5 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 11 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 15 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 1 TagWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...