Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
27.05.12, 23:21
|
#1
|
Newbie
Registriert seit: May 2011
Beiträge: 50
Bedankt: 6
|
PHP-Formular zum Füllen einer Datenbank
Hallo.
Ich versuche schon seit knapp 2 Stunden, mit einem Formular eine Datenbank zu füllen. Nur leider gelingt mir das nicht. Ich weiß nicht warum. Wenn ich das Formular ausfülle, werde ich auf eine weiße Seite verbunden und nichts weiter passiert - die Datenbank bleibt leer. Gleich vorweg: Es geht hier nicht um eine Seite zum Passwortklau! Es geht um eine schulische Angelegenheit.
Findet jemand dort einen Fehler?
Seite mit Formular..
Code:
<html>
<head>
<title>index</title>
</head>
<body>
<form method="post" action="action.php">
Name: <input name="Name" type="text"><br>
Klasse: <input name="Klasse" type="text"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
...verbindet auf...
Code:
<?php
if (isset($Send))
{
mysql_connect("#","#","#") or die ("Keine Verbindung");
$ID = $_POST["Name"];
$Geraet = $_POST["Klasse"];
$eintragen = "INSERT INTO Inventar VALUES ('$Name', '$Klasse')";
$eintragen = mysql_query($eintragen) or die (mysql_error());
}
?>
...die wiederum die Datenbank befüllen soll.
Nur wie gesagt, wird die Datenbank nicht befüllt, ich verde auf eine leere Seite verbunden. Den farblich markierte Teil habe ich mit dem Link zur Datenbank, dem Nutzernamen und dem Passwort versehen.
|
|
|
28.05.12, 04:22
|
#2
|
Hinter dir!
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
|
Also ich bin jetzt kein Profi, aber ich "musste" mir auch mal eine php-Datei basteln, um Einträge in eine Datenbank vorzunehmen.
Zitat:
mysql_connect("#","#","#") or die ("Keine Verbindung");
|
Da muss die URL des Servers rein, der Datenbankname, Benutzername und das Passwort.
Zitat:
$eintragen = "INSERT INTO Inventar VALUES ('$Name', '$Klasse')";
|
Hier sagst du ihm zwar, was du eintragen möchtest, aber nicht wo genau.
Am besten, ich poste mal ein Beispiel:
Code:
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title></title>
</head>
<body>
<?php
$names=mysql_query('set names utf8');
$benutzer = $_POST["benutzer"];
$h = date("G");
$m = date("i");
$s = date("s");
$d = date("z");
$y = date("Y");
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "INSERT INTO Tabellenname (name, h, m, s, d, y, ip) VALUES ('$benutzer', $h, $m, $s, $d, $y, '$ip')";
$db = mysqli_connect("Servername", "Datenbank-Benutzername", "Datenbank-Passwort", "Datenbank-Name") or die ("Keine Verbindung moeglich: " . mysql_error());
//Datenbank-Benutzername und Datenbank-Name könnte auch vertauscht gewesen sein
mysqli_query($db, $sql);
?>
</body>
</html>
Ich hoffe, ich konnte dir weiterhelfen.
|
|
|
28.05.12, 07:57
|
#3
|
Banned
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
|
Du scheinst offensichtlich nicht wirklich Ahnung von der Materie zu haben. Ich hoffe es ist nichts wichtiges für die schule, das mal zum Einsatz kommen soll. Davon solltest du die Finger lassen.
|
|
|
30.05.12, 20:00
|
#4
|
Anfänger
Registriert seit: Apr 2012
Beiträge: 1
Bedankt: 0
|
bei deinem Insert syntax ist Klasse und Name natürlich nicht definiert wenn du ID und Geraet definierst.
VERGESS BITTE NICHT DEINE STRINGS ZU ESCAPEN!!!
das hier ist nur ein snippet dessen was ich als falsch erachtet habe:
Code:
$ID = $_POST["Name"];
$Geraet = $_POST["Klasse"];
$eintragen = "INSERT INTO Inventar VALUES ('$ID', '$Geraet')";
QUERY and escape here!
|
|
|
31.05.12, 19:48
|
#5
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
Zitat:
Wenn ich das Formular ausfülle, werde ich auf eine weiße Seite verbunden und nichts weiter passiert - die Datenbank bleibt leer.
|
-> [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] einschalten. das hilft ungemein.
PHP-Code:
error_reporting (E_ALL);
wie nähert man sich sonst an sowas an:
1) ein s***** schreiben welches ein sql absetzt ohne formulareingaben:
PHP-Code:
msql_connect(...); $sql = "insert ....."; echo "$sql<br>\n";
mysql_query ($sql);
wenn damit das gewuenschte in der datenbank steht
2) das s***** per formular ansprechen:
PHP-Code:
error_reporting (E_ALL); if (isset($Send)) { mysql_connect("#","#","#") or die ("Keine Verbindung");
$ID = $_POST["Name"]; $Geraet = $_POST["Klasse"];
$sql= "INSERT INTO Inventar VALUES ('$Name', '$Klasse')";
echo "$sql<br>\n";
$result = mysql_query($sql) or die (mysql_error()); }
hehe, und beim copy&paste habe ich auch deine fehler gefunden 
da hilft auch kein error_reporting
probier doch mal die version aus, die ich erstellt habe und frage dich dann, warum das s***** weder fehler meldet, noch sonstige ausgaben macht... geschweige denn was in die DB schreibt.  kleiner tipp: "if".
und wenn dann was in der DB steht aber nicht das gewuenschte ... dann meditiere nochmal ueber deine variablen
__________________
entropie erfordert keine wartung
|
|
|
31.05.12, 20:27
|
#6
|
Banned
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
|
@urga...
Vorgehensweise gut erläutert, dennoch überflüssig meiner Meinung nach.
Wenn man es selbst nicht schafft ohne fremde Hilfe, dann fehlen einem einfach die benötigten Analysefähigkeiten um jemals etwas ordentliches programmieren zu können.
Wenn man zwei Linke Beine hat, dann wird's auch nichts mit Fußball!
|
|
|
31.05.12, 20:33
|
#7
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
mann'o'mann,
lass das nen 8 klaessler sein, der sein erstes programm schreibt...
jeder hat mal klein angefangen.
abgesehen davon scheint mir die nicht akademische lehre der informatik in deutschland auf ziemlich miesem niveau.
na klar: die guten sind in der wirtschaft; die freaks in der forschung.
die 0815 lehrkraft ist weder gut, noch freak. leider ....
__________________
entropie erfordert keine wartung
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr.
().
|