| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

04-02-2010, 07:43
|
|
Tutor
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 5
|
|
Formulardaten werden nicht an mysql übermittelt
Ih weiß auch nicht mehr woran es liegen kann - die Daten werden einfach nicht eingetragen. Wenn ich print_r test werden aber alle arrays richtig angebenen.
Das komische ist das nach dem submitbutton zwar "die Änderung war erfolgreich" kommt aber dann die vorher sichtbaren daten aus den Feldern verschwunden sind - nur bei Link steht Ressource#2?!? Aber keine Daten gehen in die DB
Geändert von Tutor (04-02-2010 um 15:23 Uhr)
|

04-02-2010, 08:54
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.310
|
|
Bitte schleunigst den Quellcode umbrechen!
Danke
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

04-02-2010, 09:31
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Bitte unbedingt Quellcode umbrechen wie Kropff es schon gesagt hat - am besten editierst du einfach diesen nicht relevanten html-Teil, der so in die Breite geht, einfach weg.
Guck dir mal den html-Quelltext an wenn du das Formular im Browser angezeigt bekommst und schau mal, was dann beim <form>-Tag im action Attribut drin steht oder mach alternativ mal Testausgaben von $_GET["id"] und $_GET["id_art"].
__________________
Drelingdo
Krabonse
Simmannamando
|

04-02-2010, 14:38
|
|
Tutor
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 5
|
|
So habe es mal aufs wesentliche beschränkt:
1. Die Varablennamen stimmen mit den Namen im form Tag überein und genauso mit den Parametern in der DB.
2. Was ich nicht verstehe, aber wo ich jetzt nicht zwingend den Fehler sehe ist, dass meine Variablen als undefined gewertet werden.
ist doch eigentlich klar, dass z.B.
$link_neu = $_POST['link_neu'];
$link_neu auch erst dann einen Wert hat wenn ich submitte?!
Oder verstehe ich da was falsch??
Geändert von Tutor (04-02-2010 um 15:23 Uhr)
|

04-02-2010, 14:46
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Tutor
ist doch eigentlich klar, dass z.B.
$link_neu = $_POST['link_neu'];
$link_neu auch erst dann einen Wert hat wenn ich submitte?!
|
Ja - aber du fragst nirgendwo ab, ob der Scriptaufruf denn überhaupt durch das Abschicken eines Formulars stattgefunden hat.
Wenn nicht, wenn es ein simpler GET-Request war - dann sind die entsprechenden Werte in $_POST natürlich gar nicht vorhanden.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

04-02-2010, 14:48
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Ich bitte dich nochmal auch deinen Quellcode im Eingangspost entsprechend zu editieren, dass keine horizontale Scrollleiste entsteht
Sieh dir bitte nochmal den Quelltext im Browser an, wenn du das Formular vor dir hast und schau da mal nach was im action-Attribut des <form>-Tag steht!
Pack auch deine Query in eine Variable und setze diese bei mysql_query() ein und lass sie dir zusätzlich ausgeben.
__________________
Drelingdo
Krabonse
Simmannamando
|

04-02-2010, 15:01
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Formular How-To
Zitat:
Zitat von Tutor
Was ich nicht verstehe, [...] dass meine Variablen als undefined gewertet werden.
ist doch eigentlich klar, dass [...] $link_neu auch erst dann einen Wert hat wenn ich submitte?!
|
Stimmt genau, also hast du es ja doch verstanden. Man könnte z. B. so vorgehen:
PHP-Code:
<?php // Standardmäßig das Formular anzeigen $showForm = true; // alle Felder definieren $required = array("id", "name", "emailAdresse", ...); // Pflichtfelder $optional = array("vorname", "telefon", ...); // freiwillige Felder // Formulardatencontainer initialisieren $data = array(); foreach (array_merge($required, $optional) as $name) { $data[$name] = isset($_POST[$name]) ? trim($_POST[$name]) : ""; } // Wenn submitted wurde... if (isset($_POST["submit"])) { // erneute Formularanzeige unterdrücken $showForm = false;
// Fehlerarray initialisieren $errors = array(); // Pflichtfelder prüfen und in den Formulardatencontainer importieren foreach ($required as $name) { $data[$name] = isset($_POST[$name]) ? trim($_POST[$name]) : ""; if (!$data[$name]) { $errors[] = "Pflichtfeld " . $name . " ist nicht angegeben."; } } // freiwillige Felder in den Formulardatencontainer importieren foreach ($optional as $name) { $data[$name] = isset($_POST[$name]) ? trim($_POST[$name]) : ""; } // weitere Prüfungen auf Sinnhaftigkeit if (!is_numeric($data["geburtsjahr"])) { $errors[] = "Geburtsjahr muss numerisch sein." } ... // Fehler? if ($errors) { // Formular jetzt doch wieder anzeigen ... $showForm = true; // aber erstmal die Fehler melden echo("<div class='errors'><p>"); echo(implode("</p><p>", $errors)); echo("</p></div>"); } } if ($showForm) { // Formular anzeigen } ?>
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (04-02-2010 um 15:56 Uhr)
Grund: Code geändert wegen berechtigter Kritik
|

04-02-2010, 15:11
|
|
Tutor
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 5
|
|
ok ich denke allerdings, dass es daran liegt, dass ich beim submit auf die selbe seite die id_art nicht mehr mit der URL übergebe - deswegen wird nichts eingetragen in die DB.
|

04-02-2010, 15:13
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Zitat:
Zitat von Tutor
ok ich denke allerdings, dass es daran liegt, dass ich beim submit auf die selbe seite die id_art nicht mehr mit der URL übergebe - deswegen wird nichts eingetragen in die DB.
|
__________________
Drelingdo
Krabonse
Simmannamando
|

04-02-2010, 15:17
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
@Amica
variable Variablen?
__________________
Drelingdo
Krabonse
Simmannamando
|

04-02-2010, 15:18
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Tutor
dass ich beim submit auf die selbe seite die id_art nicht mehr mit der URL übergebe
|
Dann ersetze $_POST durch $_REQUEST, das ist der Sammelcontainer für $_GET und $_POST.
Kannst du jetzt bitte endlich mal den Code hier und hier umbrechen!?!
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

04-02-2010, 15:20
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Zitat:
Zitat von AmicaNoctis
Dann ersetze $_POST durch $_REQUEST, das ist der Sammelcontainer für $_GET und $_POST.
|
Und dann?
__________________
Drelingdo
Krabonse
Simmannamando
|

04-02-2010, 15:32
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Quetschi
variable Variablen?
|
War ja nur ein Beispiel. Ich selbst benutze sie nicht, aber da ja viele Anfänger Variablen direkt in Strings benutzen ("update foo set name='$name'" und solche Geschichten), ist es für diese Leute so einfacher.
Zitat:
Zitat von Quetschi
Und dann? 
|
Na dann kann man diese id_art auch an die action-URL dranhängen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

04-02-2010, 15:33
|
|
Tutor
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 5
|
|
Verstehe ich irgendwie nicht wirklich?!
Habe es mit hiddenfeldern versucht aber hat nicht geklappt??
|

04-02-2010, 15:36
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Tutor
Verstehe ich irgendwie nicht wirklich?!
|
Was denn?
Zitat:
Zitat von Tutor
Habe es mit hiddenfeldern versucht aber hat nicht geklappt?? 
|
"nicht geklappt" ist keine Problembeschreibung und "Code umbrechen" heißt nicht "Code löschen und dadurch dem Thread den Sinn entziehen"
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|