Archived topic
HTML form $_POST problem
3 replies · Started by Hans on May 10, 2017
I use a shortcode with the following PHP code on a page:
function email_bereitstellen() {
$id = $_POST["id"];
$conn = mysqli_connect('rdbms.strato.de', 'U2884970', 'RISSim2017', 'DB2884970');
// Check connection
if ($conn->connect_error) {
die("Verbindungsfehler: " . $conn->connect_error);
};
$query = "SELECT name, vorname, email FROM wp_gremien WHERE Id=$id";
$result = mysqli_query ($conn, $query);
if ($result!= TRUE) {
echo "Error: " . $query . "<br>" . $conn->error . '<br>';
} else {
$row = mysqli_fetch_assoc($result);
$name = iconv('ISO-8859-1', 'UTF-8', $row["name"]);
$vorname = iconv('ISO-8859-1', 'UTF-8', $row["vorname"]);
$email = $row['email'];
$name = $vorname . ' ' . $name;
echo '<h2>Gremienmitglied: ' . $name . ' ('. $email . ')</h2>';
?>
<form action="http://huppenbroich.de/ris/gremien/pflege/"><button style="padding: 10px;" type="submit">falsche ID</button></form>
<?php
echo '<br><h3>E-Mail Adresse für Bürger/innen freischalten/löschen?</h3>';
?>
<form action="http://huppenbroich.de/ris/email-schalten/" method="post">
<input type="radio" name="schalten" value="freischalten" checked> freischalten<br>
<input type="radio" name="schalten" value="loeschen"> löschen<br>
<input type="hidden" value="
<?php echo $name; ?>" name="name">
<input type="hidden" value="
<?php echo $email; ?>" name="email">
<input type="hidden" value="
<?php echo $id; ?>" name="id">
<br><p><input type="submit" value="Verarbeiten"></p>
</form>
<?php
mysqli_close($conn);
}
}
add_shortcode('email-bereitmachen', 'email_bereitstellen');
When the action is invoked I get a 404 error. In the URL line the correct page is shown and when I click on edit page the page to be invoked is shown.
When I delete a hidden input line everything is okay. Then the correct page is invoked.
What may be the reason of the problem?
Another example:
function email_senden() {
?>
<h2 style="margin-bottom: 20px !important;">Ihre E-Mail an Empfänger</h2>
<form action="http://huppenbroich.de/ris/email-absenden/" method="post">Mein Name <span style="color: red;">*</span>
<input name="name" required size="40" type="text" />
Meine E-Mail <span style="color: red;">*</span>
<input name="email" required size="40" type="email" />
Betreff
<input name="betreff" size="40" type="text" />
Nachricht <span style="color: red;">*</span>
<textarea cols="30" name="nachricht" required rows="10"></textarea>
<input name="empfaenger" type="hidden" value="hans@keutgen.com" />
<input type="submit" value="Absenden"></form>
<?php
}
add_shortcode('email-senden','email_senden');
This is only the starting point of a larger code sequence. The effect is just the same: 404 and correct URL.
Hmm, nothing immediately comes to mind.
This might be a question for http://stackoverflow.com/ - someone should be able to spot the issue.
Let me know :)
the solution is simple when you know it:
name is a forbidden name in the name="" attribute!
Glad you got it working! :)