Übergabe von Checkbox-Inhalten

corona

Erfahrenes Mitglied
Hallooo,
ich hab ein Formular erstellt, deren Inhalte ich in eine Datenbank speicher. Nun schicke ich mir die Inhalte des Formulars als Sicherheit auch per Mail an mich.

Das ganze sieht so aus:
Code:
<?php 
if($_REQUEST[send]) 
{ 
$message="Alter:".$_REQUEST[alter]."\n"."Geschlecht:".$_REQUEST[geschlecht]."\n"."Internet-Kategorien:".$_REQUEST[internetfuerwas]."AmWochenendewas:".$_REQUEST[wochenderaus]."\n\n"; 
mail( 
"mail@domain.de", 
"Formular", 
"$message", 
"From:benutzer" 
); 
header("Location:schreiben.php"); 
} 
?>

Das ganze habe ich jetzt etwas abgespeckt. Das ganze funktioniert auch. Mein Fragebogen besteht aus 11 Fragen, 8 davon mit nur einer möglichen Antwort, also Radiobuttons und 3 mit checkboxen, wo man mehrer sachen auswählen kann.
UND GENAU DA LIEGT MEIN PROBLEM!
Bei den Checkboxen gibt er mir nur ein Wert weiter. Ich möchte aber alle haben, die der User angeklickt hat. Also z.B.
Für was benutzen Sie das Internet: Unterhaltung, Nachrichten, Chat
Bis jetzt zeigt er mir nur eine Sache, obwohl ich mehrere ausgewählt habe.

Hier auch der Code, für eine Checkbox als Beispiel:

Code:
<tr> 
    <td height="21" colspan="3" valign="top" bgcolor="#F0CFCF" class="frage">5. 
     F&uuml;r welche Kategorien benutzen Sie das Internet?</td> 
   </tr> 
   <tr> 
    <td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Unterhaltung"> 
     Unterhaltung</td> 
    <td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Nachrichten"> 
     Nachrichten</td> 
    <td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Information"> 
     Information</td> 
   </tr> 
   <tr> 
    <td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Email"> 
     Email</td> 
    <td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Chat/Forum"> 
     Chat/Forum</td> 
    <td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Anderes"> 
     Anderes</td> 
   </tr>

Meine Idee war aus den Checkboxen ein Array zu machen. Doch wie geht das dass die Inhalte der Checkboxen alle weiter an die Variable $internetfuerwas übergeben werden, so dass dann in der Mail steht:
Internet fuer was: Unterhaltung, Nachrichten, Email

Für jede Hilfe bin ich dankbar.

Grüsse: Corona
 
hmmm, komisch. hat irgendwie den code nicht angenommen. hier nochmal die codes von oben ohne code-tag...

hier der erste mail-code:
<?php
if($_REQUEST[send])
{
$message="Alter:".$_REQUEST[alter]."\n"."Geschlecht:".$_REQUEST[geschlecht]."\n"."Internet-Kategorien:".$_REQUEST[internetfuerwas]."AmWochenendewas:".$_REQUEST[wochenderaus]."\n\n";
mail(
"mail@domain.de",
"Formular",
"$message",
"From:benutzer"
);
header("Location:schreiben.php");
}
?>




hier der zweite html-code:


<tr>
<td height="21" colspan="3" valign="top" bgcolor="#F0CFCF" class="frage">5.
F&uuml;r welche Kategorien benutzen Sie das Internet?</td>
</tr>
<tr>
<td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Unterhaltung">
Unterhaltung</td>
<td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Nachrichten">
Nachrichten</td>
<td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Information">
Information</td>
</tr>
<tr>
<td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Email">
Email</td>
<td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Chat/Forum">
Chat/Forum</td>
<td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas" value="Anderes">
Anderes</td>
</tr>
 
Du musst den Namen der Checkbox als Array angeben:

PHP:
<td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas[]" value="Nachrichten"> 
Nachrichten</td> 
<td height="21" valign="top" bgcolor="#EDE6E6" class="titrecourant"><input type="checkbox" name="internetfuerwas[]" value="Information">

Jetzt kannst Du die Werte einfach auslesen. In dem Beispiel (wenn beides angeklickt ist):

internetfuerwas[0] = Nachrichten
internetfuerwas[1] = Information

MfG
hans
 
hallo,
hab das gemacht was du vorgeschlagen hast, also
<input type="checkbox" name="internetfuerwas[]" value="Nachrichten">
<input type="checkbox" name="internetfuerwas[]" value="Information">

Doch das was per Email übergeben wird ist:
Internet fuer was: Array

anstatt:
Internet fuer was: Nachrichten, Information

Wie kann ich denn die Werte des Arrays an die Variable $internetfuerwas übergeben. Diese wird ja in der mail-Funktion verschickt.

Danke...
 
hallo,
kannst du mir das bitte mal an meinem beispiel zeigen?

bin echt total der anfänger und weiß leider nicht was ich wo ändern muss....

danke...
 
PHP:
//...
$message="Alter:"
    .$_REQUEST['alter']
    ."\n"
    ."Geschlecht:"
    .$_REQUEST['geschlecht']
    ."\n"
    ."Internet-Kategorien:"
    .implode(", ",$_REQUEST['internetfuerwas']) // <--- hier
    ."AmWochenendewas:"
    .$_REQUEST['wochenderaus']
    ."\n\n";
//...
Gruß hpvw

PS: Fehler beim Ansprechen von Array-Elementen:
http://www.tutorials.de/forum/showpost.php?p=1104581&postcount=2 hat gesagt.:
Erklärung: Wenn du keine Anführungszeichen verwendest, wird der Teil zwischen den eckigen Klammern als Name einer Konstante ausgewertet. Da eine derartige Konstante aber nur in den seltensten Fällen definiert ist, nimmt der PHP-Parser kulanterweise an, dass der Programmierer eigentlich einen String mit dem Namen der Konstante als Inhalt meinte. Existiert allerdings eine derartige Konstante, kann sie einen komplett anderen Wert enthalten und so zu unerwartetem Verhalten führen. Von daher ist man auf der sicheren Seite, wenn man gleich einen String verwendet – also mit Anführungszeichen arbeitet.
 
DB-Anbindung

Hallo,
eine Frage hätte ich noch:
Nun hat es geklappt die Inhalte des Formulars an mich per Email zu verschicken.

Wie kann ich denn genau diese Inhalte in eine MySQL-Datenbank schreiben? Hab mal schon etwas gemacht, aber es klappt nicht.

Meine Config.php Datei sieht so aus:
<?php
$server="localhost";
$user="benutzername";
$pass="passwort";
$dbase="datenbankname";
$conn=@mysql_connect($server,$user,$pass)
or die ("<B>Fehler beim Datenbankzugriff</body></html>");
mysql_select_db($dbase,$conn);
?>


Diese Datei wird in der eigentlichen Umfrage-Datei Umfrage.php included:
<?php
include("config.php");
?>

In der gleichen Datei etwas drunter habe ich dann noch folgendes getippt:
<?php
/* Eintrag */
$db="datenbankname";
$sql="INSERT INTO `tabellenname` (id, alter, geschlecht, berufstatus) VALUES ('', '$alter', '$geschlecht', '$berufstatus')";

mysql_query($sql,$conn);
?>


Leider klappt das nicht. Hab ich was vergessen oder etwas falsch gemacht? Heißt vielleicht der MySQL-Server anders als "Localhost"? Was trägt ihr da immer ein?
Ich weiss auch nicht ob ich überhaupt eine DB-Verbindung kriege.

Wäre echt dankbar wenn auch dieses Problem gelöst werden würde,
Vielen Dank jetzt schon mal für jede Hilfe,
Ciao...
 
Zurück