php-Umfragescript mit Name, Strasse usw. ergänzen?

headhunter007

Grünschnabel
Hallo, ich habe folgendes funktionierendes php-Umfragescript (Datenbank), welches 4 Fragen bereitstellt und nach Eingabe eine grafische Auswertung der bisherigen Ergebnisse darstellt.

Nun möchte ich noch am Ende der Umfrage einen Gewinn unter all den Teilnehmern auslosen. Hierzu müsste ich dieses Script (+Datenbank) jedoch auch um folgende Eingabefelder ergänzen:
Anrede, Name, Vorname, Strasse, Nr, PLZ, Ort

:confused:Wie und wo genau binde ich diese in das Script sowie in die Datenbank ein?

Bitte um Eure Hilfe
Headhunter007

umfrage.php
PHP:
<?php
include_once('inc.php'); // include der Datenbank
?>
<?php
// Mitgeben an dieses Script:
// Frage für DB, max. 15 Zeichen -> $frage
// Die eigentliche Frage -> $fragestellung
// Erklärung zur Frage -> $fragezusatz
// Ausgangsbasis der Anzeigen
$anzeigen_umfrage = 'ja';
$anzeigen_fehler = 'nein';
$anzeigen_fehler_ip = 'nein';
$anzeigen_antwort = 'nein';
$anzeigen_ergebnis = 'nein';

// Antwort senden
if(isset($_POST['submit_umfrage'])) {
$antwort_f = strip_tags($_POST['antwort']);

switch ($antwort_f) {
case '3':
$antwort_z = 'Jede Hautzone benötigt eine spezielle Reinigung und Pflege';
$antwort = '3';
break;
case '2':
$antwort_z = 'Es ist egal, ein Wasch- und Pflegemittel reicht für den ganzen Körper aus';
$antwort = '2';
break;
case '1':
$antwort_z = 'Auch der Intimbereich braucht eine besondere Reinigung und Pflege';
$antwort = '1';
break;
case '0':
$antwort_z = 'Waschen mit Wasser in der Intimzone ist genug';
$antwort = '0';
break;
default:
$antwort_z = '';
$antwort = '';
break;
}
$ip_umfrage = substr(strip_tags($_POST['ip_umfrage']), 0, 15);
$frage = substr(strip_tags($_POST['frage']), 0, 15);
$unix_time = time();

if ( $antwort == '' ) {
$anzeigen_fehler = 'ja';
}
else {
$unix_time_min = $unix_time - 7 ; // 7200Anzahl Sekunden für neue Abstimmung -> 2 Std.
$query_umfrage = "SELECT * FROM umfrage
WHERE frage = '".$frage."'
AND ip_umfrage = '".$ip_umfrage."'
AND unix_time > '".$unix_time_min."'
";
$result_umfrage = mysql_query($query_umfrage);
$num_umfrage = mysql_num_rows($result_umfrage);

if ( $num_umfrage == 0 ) {
$anzeigen_umfrage = 'nein';
$anzeigen_antwort = 'ja';
$anzeigen_ergebnis = 'ja';
// eintragen in DB
$query_umfrage_e = "INSERT INTO umfrage (frage, antwort, ip_umfrage, unix_time)
VALUES('$frage','$antwort','$ip_umfrage','$unix_ti me')";
mysql_query($query_umfrage_e, $conn);
}
else {
$anzeigen_fehler_ip = 'ja';
$anzeigen_umfrage = 'nein';
$anzeigen_ergebnis = 'ja';
}
}
}
?>

<div id="poll"><center>
<h6><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Aktuelle Umfrage: Körperpflege</b></font></h6></center>

<?php
echo '
<p class="tooltipp" onmouseover="return overlib(''.$fragezusatz.'', CELLPAD, 5, 5, TEXTSIZE, '10pt' );"
onmouseout="return nd();">'.$fragestellung.'</p>
';

if ( $anzeigen_fehler == 'ja' ) {
echo '<center><font color="#FF0000"><p class="center rot"><strong>>>Keine Auswahl!<<</strong></p></center>';
}
if ( $anzeigen_fehler_ip == 'ja' ) {
echo '<center><font color="#FF0000"><p class="center rot"><strong>>>Tut uns leid, Sie haben bereits Abgestimmt!<<</strong></p></font></center>';
}
if ( $anzeigen_umfrage == 'ja' ) {
echo '
<form method="post" action="'.htmlspecialchars($_SERVER['PHP_SELF']).'" name="umfrage" id="umfrage" >
<fieldset>Ich bin der Meinung dass:
<p><input type="radio" name="antwort" value="3" /> jede Hautzone eine spezielle Reinigung und Pflege<br>      ben& ouml;tigt</p>
<p><input type="radio" name="antwort" value="2" /> es egal ist, ein Wasch- und Pflegemittel reicht für den<br>
      ganzen Körper aus</p>
<p><input type="radio" name="antwort" value="1" /> auch der Intimbereich eine besondere Reinigung und<br>
      Pflege braucht</p>
<p><input type="radio" name="antwort" value="0" /> Waschen mit Wasser in der Intimzone genug ist</p>
<p class="center"><input type="submit" class="kl" name="submit_umfrage" value="senden" /></p>
</fieldset>
<input type="hidden" name="ip_umfrage" value="'.$_SERVER['REMOTE_ADDR'].'" />
<input type="hidden" name="frage" value="'.$frage.'" />
</form>
';
}
if ( $anzeigen_antwort == 'ja' ) {
echo '
<font color="#FF0000"><p class="center"><strong><u>Ihre Antwort:</u><br /><span class="rot">'.$antwort_z.'</span></strong></p></font>
';
}
if ( $anzeigen_ergebnis == 'ja' ) {
echo '
<p class="left"><font size="2"><strong>Hier das bisherige Ergebnis:</strong></font></p>
';
$query_erg_3 = "SELECT COUNT(antwort) AS ant_3 FROM umfrage WHERE frage = '".$frage."'
AND antwort = '3' ";
$result_erg_3 = mysql_query($query_erg_3);
$ant_3 = mysql_result($result_erg_3,0,'ant_3');
if ($ant_3 == '' ) { $ant_3 = 0 ; }

$query_erg_2 = "SELECT COUNT(antwort) AS ant_2 FROM umfrage WHERE frage = '".$frage."'
AND antwort = '2' ";
$result_erg_2 = mysql_query($query_erg_2);
$ant_2 = mysql_result($result_erg_2,0,'ant_2');
if ($ant_2 == '' ) { $ant_2 = 0 ; }

$query_erg_1 = "SELECT COUNT(antwort) AS ant_1 FROM umfrage WHERE frage = '".$frage."'
AND antwort = '1' ";
$result_erg_1 = mysql_query($query_erg_1);
$ant_1 = mysql_result($result_erg_1,0,'ant_1');
if ($ant_1 == '' ) { $ant_1 = 0 ; }

$query_erg_0 = "SELECT COUNT(antwort) AS ant_0 FROM umfrage WHERE frage = '".$frage."'
AND antwort = '0' ";
$result_erg_0 = mysql_query($query_erg_0);
$ant_0 = mysql_result($result_erg_0,0,'ant_0');
if ($ant_0 == '' ) { $ant_0 = 0 ; }

$ant_tot = $ant_3 + $ant_2 + $ant_1 + $ant_0;
$ant_mit = ($ant_3 * 3 + $ant_2 * 2 + $ant_1) / $ant_tot ; // Mittelwert
$ant_ste = $ant_mit / 3 * 5 ; // Anzahl Sterne
$stern_breite = round($ant_ste * 15, 0 ); // Anzahl Sterne mal deren Breite

$proz_3 = round(100 / $ant_tot * $ant_3, 0);
$proz_2 = round(100 / $ant_tot * $ant_2, 0);
$proz_1 = round(100 / $ant_tot * $ant_1, 0);
$proz_0 = round(100 / $ant_tot * $ant_0, 0);

echo '
<hr>
<strong><font face="verdana, Arial" size="1">Jede Hautzone benötigt eine spezielle Reinigung und Pflege</font></strong><br>
<img src="gruen.gif" width="'.$proz_3.'" height="12" alt="Anteil: ... bei denen jede Hautzone eine spezielle Reinigung und Pflege benötigt" title="Anteil: ... bei denen jede Hautzone eine spezielle Reinigung und Pflege benötigt" /> <span class="proz">'.$proz_3.'%</span><br><hr>


<strong><font face="verdana, Arial" size="1">Ist egal, ein Wasch- und Pflegemittel reicht für den ganzen Körper aus</font></strong><br>
<img src="gruen.gif" width="'.$proz_2.'" height="12" alt="Anteil: ... bei denen es egal ist, ein Wasch- und Pflegemittel reicht für den ganzen Körper aus" title="Anteil: ... bei denen es egal ist, ein Wasch- und Pflegemittel reicht für den ganzen Körper aus" /> <span class="proz">'.$proz_2.'%</span><br><hr>


<strong><font face="verdana, Arial" size="1">Auch der Intimbereich braucht eine besondere Reinigung und Pflege</font></strong><br>
<img src="gruen.gif" width="'.$proz_1.'" height="12" alt="Anteil: ... bei denen auch der Intimbereich eine besondere Reinigung und Pflege braucht" title="Anteil: ... bei denen auch der Intimbereich eine besondere Reinigung und Pflege braucht" /> <span class="proz">'.$proz_1.'%</span><br><hr>


<strong><font face="verdana, Arial" size="1">Waschen mit Wasser in der Intimzone ist genug</font></strong><br>
<img src="gruen.gif" width="'.$proz_0.'" height="12" alt="Anteil: ... bei denen Waschen mit Wasser in der Intimzone genug ist" title="Anteil: ... bei denen Waschen mit Wasser in der Intimzone genug ist" /> <span class="proz">'.$proz_0.'%</span><br><hr>

<p><center>Insgesamt haben bereits '.$ant_tot.' Teilnehmer teilgenommen</center></p>
';
}
?>
</div>

MySQL
CREATE TABLE `umfrage` (
`id_umfrage` int(11) NOT NULL AUTO_INCREMENT,
`frage` varchar(15) NOT NULL DEFAULT '',
`antwort` char(1) NOT NULL DEFAULT '',
`ip_umfrage` varchar(15) NOT NULL DEFAULT '',
`unix_time` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id_umfrage`),
KEY `frage` (`frage`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
Zuletzt bearbeitet:
Das ist das Umfrageformular
HTML:
<form method="post" action="'.htmlspecialchars($_SERVER['PHP_SELF']).'" name="umfrage" id="umfrage" >
<fieldset>Ich bin der Meinung dass:
<p><input type="radio" name="antwort" value="3" /> jede Hautzone eine spezielle Reinigung und Pflege<br> ben& ouml;tigt</p>
<p><input type="radio" name="antwort" value="2" /> es egal ist, ein Wasch- und Pflegemittel reicht für den<br>
ganzen Körper aus</p>
<p><input type="radio" name="antwort" value="1" /> auch der Intimbereich eine besondere Reinigung und<br>
Pflege braucht</p>
<p><input type="radio" name="antwort" value="0" /> Waschen mit Wasser in der Intimzone genug ist</p>
<p class="center"><input type="submit" class="kl" name="submit_umfrage" value="senden" /></p>
</fieldset>
<input type="hidden" name="ip_umfrage" value="'.$_SERVER['REMOTE_ADDR'].'" />
<input type="hidden" name="frage" value="'.$frage.'" />
</form>

Unter dieser Zeile
HTML:
<p><input type="radio" name="antwort" value="0" /> Waschen mit Wasser in der Intimzone genug ist</p>

fügst du folgendes ein:
HTML:
<p>Anrede <input type="text" name="anrede" /></p>

Diesen Schritt wiederholst du nun für name, vorname, strasse, nr, plz, ort und ersetzt einfach "anrede" mit den anderes Begriffen. Achte darauf, dass du diese alle genau so schreibst (klein und ohne zusätzliche zeichen oder so).


Nun suchst du nach folgendem in dem Code:
PHP:
$query_umfrage_e = "INSERT INTO umfrage (frage, antwort, ip_umfrage, unix_time)
VALUES('$frage','$antwort','$ip_umfrage','$unix_time')";

und fügst nach
PHP:
'$unix_time'
folgendes ein:

PHP:
,'$anrede','$name','$vorname','$strasse','$nr','$plz','$ort'

Dann probierst du es mal...

..kann gut sein, dass Fehler drin sind, hoffe nicht, sonst schreibst du nochmal...




Anstatt ein Zitat zu machen kannst du übrigens spezielle Tags verwenden:
[ CODE ]*Inhalt*[ /CODE ] => allgemein für Code
[ HTML ]*Inhalt*[ /HTML ] => für HTML Code
[ PHP ]*Inhalt*[ /PHP ] => für PHP Code
 
Ich glaube, bei deiner Korrektur fehlt tatsächlich noch etwas.

Um genau zu sein: Ich vermisse noch die übergabe der $_POST-Variablen an die von die für die MySQL-Zeile verwendeten Variablen.

Dabei ist natürlich noch das Löschen von jedem Code aus den entsprechenden Feldern zu beachten. In etwa so:

PHP:
$anrede= strip_tags(addslashes($_POST["anrede"]));

Anschließend darf beim Wiederaufruf der Inhalte aus der Datenbank in diesem Falle natürlich das stripslashes() nicht vergessen werden.

Dann sollte das Script allerdings klappen.
 
Zurück