2k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo Leute,

ich arbeite - testweise - an einem System um ganz einfach Sachen in einer Tabelle mithilfe von MySQL und PHP darstellen zu lassen. Es soll noch einen Funktion geben zum Hinzufügen. Nun möchte ich, dass man Regeln akzeptieren muss, setzt man den Haken dort nicht, soll der Eintrag nicht in die Tabelle kommen. Diesen Code habe ich momentan:


<?php
$deut = $_POST["deut"];
$patr= $_POST["patr"];
$category = $_POST["category"];
$regel = $_POST["regel"];

if(isset($_POST["abschicken"])) {
if($_POST['regel'] == 'YES') {
include("sqlcon.php");
mysql_query("insert into begriffe (deut, patr, category) values('$deut', '$patr'', '$category');");
if (mysql_affected_rows() == 1) {
echo '<p align="center">Erfolgreich hinzugefügt. <br> Du wirst jetzt weitergeleitet.</p>';
?>
<script>window.setTimeout("location.href=\"main.php\"", 2000);</script><?php
}
else {
echo '<p align="center">Konnte nicht hinzugefügt werden! <br> Bitte wende dich an den Systemadministrator</p>';
}
}
else {
echo '<p align="center">Du musst dich mit den Regeln einverstanden erklären.</p>';
}
}
?>


Doch, wenn ich diesen Code benutze, erscheint bei jedem Eintrag - egal ob Regeln akzeotiert oder nicht - dass man sie akzeptieren muss. Was mache ich falsch?

mit freundlichen grüßen,
moee

9 Antworten

0 Punkte
Beantwortet von
was steht in $_POST['regel'] ?
0 Punkte
Beantwortet von
$_POST['regel'] soll den Haken darstellen, also die Checkbox
0 Punkte
Beantwortet von
Wenn doch $_POST['regel'] die Checkbox darstellt, müsste dann nicht auf True bzw. False abgefragt werden und nicht auf Yes bzw. No???

Kenne zwar PHP ned besonders gut, aber Checkboxen haben ja eigentlich nur True bzw. False!!!!
0 Punkte
Beantwortet von Experte (6.4k Punkte)
Du musst den value - Parameter des <input>-tags abfragen und nicht ob die checkbox angehakt ist oder nicht..
Die Checkbox wird nur dann über das Formular übertragen, wenn sie auch aktiviert (angehakt) ist. was unter value steht ist eigentlich egal, sofern die if-Abfrage "true" ergibt.
Die Checkbox heisst "regel", wenn jetzt der value="blabla" ist, wird regel=blabla übergeben.
Wenn Du dann if ($_POST['regel'] ==blabla) abfragst, sollte es gehen...

mfg, sup2010
0 Punkte
Beantwortet von Experte (6.4k Punkte)
um bei Deinem Code zu bleiben,

wenn Du Dein input -tag so änderst , sollte Dein Code funzen:

<input type="checkbox" name="regel" value="YES" />
0 Punkte
Beantwortet von
$_POST['regel'] soll den Haken darstellen
Ich fragte nicht, was es "soll", sondern was wirklich dabei rauskommt, das erfährst du zB. mit
echo $_POST['regel'];


Wenn etwas nicht funktioniert wie gewünscht immer die relavanten Variablen ausgeben lassen!
0 Punkte
Beantwortet von
Danke! Das hat schon mal geklappt mit dem Vorschlag von supporter2010, allerdings kann der Eintrag nicht hinzugefügt werden. Aber er erkennt jetzt, ob der Haken gesetzt wurde oder nicht.

MfG
moee
0 Punkte
Beantwortet von Experte (6.4k Punkte)
was mir so auf Anhieb auffällt ist, dass bei der Zeile
mysql_query("insert into begriffe (deut, patr, category) values('$deut', '$patr'', '$category');");

bei values die Variable '$patr'' zwei einfache Anführungszeichen am Ende hat, lösch mal eins, vielleicht...
0 Punkte
Beantwortet von
@supporter2010
Danke! Danke! DANKE! Man, das war ein echt doofer Fehler :-D
Naja, nochmals danke!
...