Formular mit Radio+Text Variable speichern

Hallöchen,

also ich habe da mein Formular (sorry wegen den echos aber es funktioniert nur so :smiley: )

[PHP]<? echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo " 5€
\n"; echo " Eigener Betrag: \n"; echo "
\n"; echo " \n"; echo " \n"; echo "\n"; echo "

\n"; echo " Vorname\n"; echo " \n"; echo "

\n"; echo "

\n"; echo " Nachname\n"; echo " \n"; echo "

\n"; echo "

\n"; echo " Email\n"; echo " \n"; echo "

\n"; echo " Kostenpflichtig absenden\n"; echo ""; ?>
[/PHP]

und mein verarbeitendes PHP script:

[PHP]<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user ‚root‘ with no password) */
$link = mysqli_connect(„localhost“, „nutzer“, „test“, „Foerder“);
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Escape user inputs for security
@$first_name = mysqli_real_escape_string($link, $_POST[‚firstname‘]);
@$last_name = mysqli_real_escape_string($link, $_POST[‚lastname‘]);
@$email_address = mysqli_real_escape_string($link, $_POST[‚email‘]);
@$amount = mysqli_real_escape_string($link, $_POST[‚amount‘]);
// attempt insert query execution
$sql = „INSERT INTO test (amount, first_name, last_name, email_address) VALUES (‚$amount‘, ‚$first_name‘, ‚$last_name‘, ‚$email_address‘)“;

include "formular.php";

//Amount
//Amount ende

//Vorname
if (empty($first_name)) {
echo „Vorname leer“;
}
elseif(!preg_match(„/(\bherr\b|\bfrau\b)/i“,$first_name))
{
echo „Vorname falsch“;
}
// Vorname ENde

elseif(mysqli_query($link, $sql)){
echo „Vielen Dank für Deinen Beitrag!

“;
echo "Name: " . $first_name . " " . $last_name . „“;
}

else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// close connection
mysqli_close($link);
?>[/PHP]

Es geht sich hier um Folgendes:

Der Nutzer wählt den Betrag 5€ oder tippt einen eigenen ein. Nachfolgend betrachten wir mal nur den Vornamen, der wird überprüft mit !preg_match und muss im Moment „herr“ oder „frau“ heißen (nur zum ausprobieren) → funktioniert.:slight_smile:

Wenn das Formular abgeschickt wird, werden mir alle ausgefüllten Felder auch angezeigt, den Radio Button mit dem Betrag vergisst das Formular allerdings…:mad:

Es könnte alles so schön sein…:rolleyes: Warum übernimmt der Radio nicht seinen Wert? sondern $amount == 0 -.-

Vielen Dank schon jetzt :wink:

Quatsch!

2 Dinge:

Wieso machst du schon wieder einen Thread zu dem Thema auf?

Richtig debuggen

  1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
  2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
  3. Man verwendet ini_set(‚display_errors‘, true); damit die Fehler auch angezeigt werden.
  4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
  5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (…not a valid MySQL result resource…): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
  6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
  7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
  8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
  9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Es geht mir mehr darum, dass $amount einfach absolut keinen Inhalt hat. Also noch nicht mal == 0 …

[SIZE=5]Richtig debuggen[/SIZE]

Und fehler nicht unterdrücken…