• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Checkbox typ

ffm-michi

New member
Hey zusammen,

eine frage welches typ muss ich bei einem checkbox in meiner datenbank einpflegen?

bool? tinyint?...

Wie ist der richtige Code dazu? ebenso die übertragung:


PHP:
<input type="checkbox" name="agb" <?php echo $agb ? "agb" : ""?> />
?????
PHP:
  if (empty($_POST['agb']) )
{
 $reg_error[] = 5;
}

Bin noch anfänger
 
Hey zusammen,

eine frage welches typ muss ich bei einem checkbox in meiner datenbank einpflegen?

bool? tinyint?...

Javascript kann nicht direkt auf deine Datenbank zugreifen.
Du übergibst die Werte deines Formulars als "Text" an dein PHP-Script und dieses macht eine Typumwandlung entsprechend dem was die Datenbank erwartet.
 
Das heißt also :
In meiner Datenbank muss ich mein Feld "agb" dem Typ: Text zuweisen!!!

und die übergabe finden hier statt?
<input type="checkbox" name="agb" value="JA"></td>

Php code:
$sql = "INSERT INTO members(agb)
VALUES('{$_POST['agb']}',
 
Ja habe ich bei mir funktioniert auch alles, bis auf die checkbox!
<form action="register.php" method="post">
<input type="checkbox" name="agb" value="JA"></td>
<input type="submit" name="submit" value="Sichern Sie Ihre Daten">

Mein Problem ist ja nur eigentlich was für ein typ ich in phpmyadmin eintragen muss?
denn wenn ich aus speichern klicke tut er alles in die datenbank senden " Name, Password...." bis auf die Checkbox!

ich möcht ja nur eine Überprüfung ob die agbs"checkbox" akzeptiert worden sind! und dieses soll dann unter Ja oder 1 in meiner Datenbank erscheinen!
 
Prüfe doch ersteinmal ob alle Daten so ankommen wie du denkst!
Das Formular:
HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Check form with php</title>
<script type="text/javascript">
</script>

</head>
<body>
<form action="register.php" method="post">
	Name: <input name="name" type="text" size="30" maxlength="30"><br>
	Passwort: <input name="password" type="password" size="12" maxlength="12"><br>
	AGB akzeptieren <input type="checkbox" name="agb" value="JA"><br>
	<input type="submit" name="submit" value="Sichern Sie Ihre Daten">
</form>
</body>
</html>

Das PHP:
PHP:
<?php
	//Set no caching
	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
	header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
	header("Cache-Control: no-store, no-cache, must-revalidate");	
	header("Cache-Control: post-check=0, pre-check=0", false);
	header("Pragma: no-cache");
	header("Content-Type: text/html; charset=UTF-8");
	header("title: Change form action reply");
	if (!isset($_POST['name'], $_POST['password'])) {
		die ('Formularfelder wurden nicht werkannt.');
	}
	$form_name = $_POST['name'];
	$form_password = $_POST['password'];
	$form_agb = $_POST['agb'];
	if ($form_name == "") $form_name = "Es wurde kein Name angegeben!";
	if ($form_password == "") $form_password = "Es wurde kein Passwort angegeben!";
	if ($form_agb == "") $form_agb = "Die AGB's wurden nicht akzeptiert!";
	echo 'Folgende Daten wurden von register.php empfangen:<br><br>';
	echo 'Name: '.$form_name.'<br>';
	echo 'Passwort: '.$form_password.'<br>';
	echo 'AGB: '.$form_agb.'<br>';
?>
 
Zuletzt bearbeitet:
Die kommen ja alle an nur agb nicht den ich weis nicht auf welchen typ ich es setzen muss soll der kollege über Ihnen hat tinyint angegeben wie setze ich dies um!

DAs Problem liegt ja nur auf meiner datenbank und wie ich den richtigen befehl für $_Post gebe für eine checkbox!

bzw wie mache ich eine php abfrage

if checkbox ist true....dann code ausführen!!

Mein Jetziger Code sieht so aus !!!
PHP:
Code:
  if (!isset($reg_error)) {
$ip	 = $_SERVER['REMOTE_ADDR'];
$sql = "INSERT INTO members(user, pass, name, email, ip, gender, age, nation, agb)
            VALUES('{$_POST['user']}', 
				   '{$_POST['passwd']}', 
				   '{$_POST['name']}', 
				   '{$_POST['email']}', 
					('$ip'), 
				   '{$_POST['gender']}',
				   '{$_POST['age']}', 
				   '{$_POST['nation']}'
				   '{$_POST['agb']}'
				
				  
						  
)";
    mysql_query($sql);


HTML :
Code:
...........................
 <tr>
<td>Dein Alter:</td>  
<td>Alter: <input name="age" type="text" value="" size="2" maxlength="2"> </td>
</tr>

<tr>
<td>Email- Adresse:*</td>
<td><input type="text" name="email" value="<?php echo $back[3]; ?>"></td>
</tr>
 

 <tr>
<td>Agb- Akzeptieren:*</td>
<td><input type="checkbox" name="agb" value="JA"><br>

</td>
</tr>
 .........
AGBs überträgt er nicht alles andere JA hmmm
sorry für die Verständlichkeit...
 
Zuletzt bearbeitet:
Wenn die Checkbox nicht aktiviert ist überträgt er die ganze Checkbox (name=value) nicht. Außerdem ist der Code für sql injection anfällig.
 
hmm und das heißt also auf gut deutsch was? value entfernen und weiter? .. :S

.. theoretisch brauche ich eine checkbox nicht in die Datenbank einpflegen! den die agbs müssen nur akzeptiert sein um fortzufahren oder? haha

also eine ganz normale abfrage if checkbox = true .... Code ausführen (submit)

oder?

okay dann wir bekomme ich die abfrage wenn checkbox geklickt wurde?
Code:
if ( $checkbox == true) {
}else 
{
echo" agbs müssen akzeptiert werden";
}
ist das so korrekt?
 
Zuletzt bearbeitet:
nein... poste mal var_dump($_POST); aber schau dir echt mal sql injection an! Ich könnte deine ganze db löschen....
 
nein... poste mal var_dump($_POST); aber schau dir echt mal sql injection an! Ich könnte deine ganze db löschen....

wow das schock mich gerade :S meine ganze db?
wie soll das funktionieren wenn Sie noch nicht einmal meine Zugangsdaten haben? sie haben doch keine Zugriffsrechte?

Ich bin dabei eine Website zu erstellen mit User Profilen leider blicke ich nicht ganz durch mit den Profilen Login und Registrierung funktioniert.. aber Profile keine Ahnung hat irgendwer Templates für so einen Projekt?
 
Zuletzt bearbeitet:
???? dein die Post Werte! Die sollst du hier posten! Aber es scheint echt als fehlen dir die Grundlagen...

edit: hab dein post total falsch verstanden, sry. Wenn deine Seite online ist könnte ich das. Lese dir einfach mal was über das Thema durch!
 
Zuletzt bearbeitet:
Die kommen ja alle an nur agb nicht den ich weis nicht auf welchen typ ich es setzen muss ...
AGBs überträgt er nicht alles andere JA hmmm...
Und woher weist du das genau? Hast du dir mal die übertragenen Werte ausgeben lassen? Hast du dir mein grobes Beispiel mal angeschaut wie ich dort geprüft habe ob die Checkbox "agb" gesetzt wurde oder nicht?
Soweit ich weis müsste auch folgende Prüfung schon bemerken ob die Checkbox "agb" gesetzt ist oder nicht:
PHP:
    if (!isset($_POST['agb'])) {
        die ("Die AGB's wurden nicht akzeptiert!");
    }
Ist die Checkbox "agb" gesetzt passiert nichts.
Ist die Checkbox "agb" nicht gesetzt gibst die Meldung.


DAs Problem liegt ja nur auf meiner datenbank und wie ich den richtigen befehl für $_Post gebe für eine checkbox!

bzw wie mache ich eine php abfrage

if checkbox ist true....dann code ausführen!!

Wenn die Checkbox "agb" gesetzt ist wird sie mit den restlichen Feldern deines Formulars gesendet, ansonsten nicht.
Probier mal mein grobes Beispiel aus und spiele etwas damit herum um zu sehen wie sich was verhält.
 
Zurück
Oben