Hallo erstmal,
ich bin neu hier im Forum und erhoffe mir Hilfe bei einem kleinen Projekt an dem ich momentan arbeite.
Es geht dabei um einen Fragebogen, den ich gerade erstelle. Vorgestellt habe ich mir das folgendermaßen:
Ich erstelle ein Fragebogen in php. Die Antworten werden in eine MySQL Datenbank geschrieben und daraufhin von mir ausgewertet.
Leider sind meine Programmierkenntnisse marginal. Ich studiere Wirtschaftsingenieurwesen und PHP war leider nicht Teil des Studiums.
Nun also zu meinem Quellcode:
Problem momentan ist, dass wenn ein Teil der Checkboxes nicht angekreuzt wird, folgende Fehlermeldung kommt:
Notice: Undefined index: Grund_kein_Login2 in C:\xampp\htdocs\Fragebogen\warum_keine_idee_kommen tar.php on line 16
Notice: Undefined index: Grund_kein_Login3 in C:\xampp\htdocs\Fragebogen\warum_keine_idee_kommen tar.php on line 17
Notice: Undefined index: Grund_kein_Login4 in C:\xampp\htdocs\Fragebogen\warum_keine_idee_kommen tar.php on line 18
Die Daten werden zwar richtig in die DB geschrieben, aber diese Fehlermeldung ist einfach unschön. Ich habe bereits nach einer Lösung im Internet gesucht. Es gab zwar einige Lösungsansätze, jedoch habe ich die meisten, auf Grund meiner beschränkten php Fähigkeiten, nicht verstanden.
Meistens wird es über ein Array gelöst, allerdings steig ich da noch absolut nicht durch. Ich habe die Array-Lösung auch schon versucht zu erstellen, allerdings habe ich es dabei nicht geschafft, dass überhaupt etwas in die DB geschrieben wurde.
Über Hilfe wäre ich sehr, sehr dankbar.
ich bin neu hier im Forum und erhoffe mir Hilfe bei einem kleinen Projekt an dem ich momentan arbeite.
Es geht dabei um einen Fragebogen, den ich gerade erstelle. Vorgestellt habe ich mir das folgendermaßen:
Ich erstelle ein Fragebogen in php. Die Antworten werden in eine MySQL Datenbank geschrieben und daraufhin von mir ausgewertet.
Leider sind meine Programmierkenntnisse marginal. Ich studiere Wirtschaftsingenieurwesen und PHP war leider nicht Teil des Studiums.
Nun also zu meinem Quellcode:
PHP-Code:
<?php
$db_host = "localhost";
$db_user = "root";
$db_pass = "test";
$db_name = "test";
if (isset( $_POST['idee_oder_kommentar_weiter'] ))
{
if ((!empty($_POST['Grund_kein_Login1'])) or (!empty($_POST['Grund_kein_Login2'])) or (!empty($_POST['Grund_kein_Login3'])) or (!empty($_POST['Grund_kein_Login4'])) or (!empty($_POST['Anderer_Grund'])))
{
// Maskierende Slashes aus POST entfernen
$_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST;
// Inhalte der Felder aus POST holen
$Grund_kein_Login1 = $_POST['Grund_kein_Login1'];
$Grund_kein_Login2 = $_POST['Grund_kein_Login2'];
$Grund_kein_Login3 = $_POST['Grund_kein_Login3'];
$Grund_kein_Login4 = $_POST['Grund_kein_Login4'];
$Anderer_Grund = $_POST['Anderer_Grund'];
/* ************************************************************************************************ */
/* *** Hier sollten und MUESSEN die Benutzereingaben geprueft werden um Schadcode abzufangen!!! *** */
/* ************************************************************************************************ */
// Sind alle Eingaben durch die Validierung gekommen werden sie in die DB geschrieben
// Verbindung oeffnen und Datenbank ausweahlen
$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
if ($conID)
{
mysql_select_db( $db_name, $conID );
}
// Anfrage zusammenstellen der an die DB geschickt werden soll
$sql = "INSERT INTO `warum_keine_idee_kommentar`
(`Grund_kein_Login1`, `Grund_kein_Login2`, `Grund_kein_Login3`, `Grund_kein_Login4`, `Anderer_Grund`)
VALUES(
'" .mysql_real_escape_string( $Grund_kein_Login1 ). "',
'" .mysql_real_escape_string( $Grund_kein_Login2 ). "',
'" .mysql_real_escape_string( $Grund_kein_Login3 ). "',
'" .mysql_real_escape_string( $Grund_kein_Login4 ). "',
'" .mysql_real_escape_string( $Anderer_Grund ). "')";
// Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle
mysql_query( $sql );
}
else
{
echo "Bitte Grund angeben";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Idee Kommentar</title>
</head>
<body>
<h1>Fragebogen</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" id="formular">
<p>Was ist der Grund dafür, dass Sie bisher noch nicht aktiv waren?</p>
<p>
<input type="Checkbox" name="Grund_kein_Login1" value="Grund1"> Ich hatte keine gute Idee / keinen guten Kommentar<br>
<input type="Checkbox" name="Grund_kein_Login2" value="Grund2"> Ich habe Angst vor negativer Resonanz<br>
<input type="Checkbox" name="Grund_kein_Login3" value="Grund3"> Ich halte nichts von dem Konzept<br>
<input type="Checkbox" name="Grund_kein_Login4" value="Grund4"> Grund4 xy<br>
<br>Anderer Grund:<br>
<input type="text" name="Anderer_Grund" size="50" maxlength="50"/>
</p>
<input type="submit" name="idee_oder_kommentar_weiter" id="idee_oder_kommentar_weiter" value="Weiter" class="bigbutton"/>
</p>
</form>
</body>
</html>
Problem momentan ist, dass wenn ein Teil der Checkboxes nicht angekreuzt wird, folgende Fehlermeldung kommt:
Notice: Undefined index: Grund_kein_Login2 in C:\xampp\htdocs\Fragebogen\warum_keine_idee_kommen tar.php on line 16
Notice: Undefined index: Grund_kein_Login3 in C:\xampp\htdocs\Fragebogen\warum_keine_idee_kommen tar.php on line 17
Notice: Undefined index: Grund_kein_Login4 in C:\xampp\htdocs\Fragebogen\warum_keine_idee_kommen tar.php on line 18
Die Daten werden zwar richtig in die DB geschrieben, aber diese Fehlermeldung ist einfach unschön. Ich habe bereits nach einer Lösung im Internet gesucht. Es gab zwar einige Lösungsansätze, jedoch habe ich die meisten, auf Grund meiner beschränkten php Fähigkeiten, nicht verstanden.
Meistens wird es über ein Array gelöst, allerdings steig ich da noch absolut nicht durch. Ich habe die Array-Lösung auch schon versucht zu erstellen, allerdings habe ich es dabei nicht geschafft, dass überhaupt etwas in die DB geschrieben wurde.
Über Hilfe wäre ich sehr, sehr dankbar.

Kommentar