PHP Umfrageformular in PHP?

Hmmm na gut nochmal ausführlicher :)

Also ich habe eine Tabelle, diese hier:

HTML:
<td width="60%" align="center" valign="center" height="100%" bgcolor="#FFFFFF"> 
      <p><font size="4" face="Arial, Helvetica, sans-serif"><b>Frage? Antwort!</b></font><br>
        <br>
      </p>
      <form action="u2.php" method="POST">
        1 
        <input type="radio" name="q1" value="1" />
        2 
        <input type="radio" name="q1" value="2" />
        3 
        <input type="radio" name="q1" value="3" />
        4 
        <input type="radio" name="q1" value="4" />
        5 
        <input type="radio" name="q1" value="5" />
        6 
        <input type="radio" name="q1" value="6" />
      </form>
      <table width="100%" border="0">
        <tr> 
          <td width="33%"> 
            <div align="left"><font size="2" face="Arial, Helvetica, sans-serif"><b>Sehr 
              gut</b></font></div>
          </td>
          <td width="33%"> 
            <div align="center"><font size="2" face="Arial, Helvetica, sans-serif"><b>Mittel</b></font></div>
          </td>
          <td width="33%"> 
            <div align="right"><font size="2" face="Arial, Helvetica, sans-serif"><b>Sehr 
              schlecht</b></font></div>
          </td>
        </tr>
      </table>
      <p>&nbsp;</p>
      <form action="/Newsletter/Umfrageformular/u2.php" method="post">
        <div> 
          <input type="submit" name="Weiter" value="Weiter">
        </div>
      </form>
    </td>

nun stehen ja die Radios genau beieinander obwohl die Zelle viel breiter ist.
Diese Radios möchte ich gleichmäßig über diese Zelle aufteilen, so das z.B. bei 6 Radios, jedem Radio 16% o.ä. der Zelle zugesprochen werden.

Hoffe du verstehst mich nun :)

**EDIT**

HILFÄ ;_;
ok jetzt hab ich irgendwas verbockmistet (ein schönes wort :) )

Parse error: syntax error, unexpected $end in /home/******.eu/html/kzu/u2.php on line 92

Diese Meldung bekomme ich, wenn ich ihn u2.php auf "Weiter" klicke
hier mal der Code:

HTML:
<?php $checksum = $_POST["q1"];

if($checksum==1) {
$_SESSION['umfrageeins'] = '1';
if($checksum==2) {
$_SESSION['umfrageeins'] = '2';
if($checksum==3) {
$_SESSION['umfrageeins'] = '3';
if($checksum==4) {
$_SESSION['umfrageeins'] = '4';
if($checksum==5) {
$_SESSION['umfrageeins'] = '5';
if($checksum==6) {
$_SESSION['umfrageeins'] = '6';
}
?>
<html>
<head>
<title>***** - Umfrageformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#000000" vlink="#666666" alink="#666666">
<h2 align="center"><font face="Arial, Helvetica, sans-serif" size="6"><b>Kundenzufriedenheitsumfrage</b></font></h2>
<table width="100%" border="1" cellspacing="15" cellpadding="10" bordercolor="#000000">
  <tr> 
    <td width="20%" align="center" valign="center" height="100%"> 
      <p align="center"><img src="/kzu/img/*****.gif" width="190" height="176" usemap="#Map" border="0"></p>
      <p align="center"><img src="/kzu/img/*****.gif" width="190" height="176" usemap="#Map2" border="0"></p>
    </td>
    <td width="60%" align="center" valign="center" height="100%" bgcolor="#FFFFFF"> 
      <p><font size="4" face="Arial, Helvetica, sans-serif"><b>TEST</font></b></font><br>
        <br>
      </p>
      <form action="u3.php" method="POST">
        1 
        <input type="radio" name="q2" value="1" />
        2 
        <input type="radio" name="q2" value="2" />
        3 
        <input type="radio" name="q2" value="3" />
        4 
        <input type="radio" name="q2" value="4" />
        5 
        <input type="radio" name="q2" value="5" />
        6 
        <input type="radio" name="q2" value="6" />
      </form>
      <table width="100%" border="0">
        <tr> 
          <td width="33%"> 
            <div align="left"><font size="2" face="Arial, Helvetica, sans-serif"><b>Sehr 
              gut</b></font></div>
          </td>
          <td width="33%"> 
            <div align="center"><font size="2" face="Arial, Helvetica, sans-serif"><b>Mittel</b></font></div>
          </td>
          <td width="33%"> 
            <div align="right"><font size="2" face="Arial, Helvetica, sans-serif"><b>Sehr 
              schlecht</b></font></div>
          </td>
        </tr>
      </table>
      <p>&nbsp;</p>
      <form action="/kzu/u3.php" method="post">
        <div> 
          <input type="submit" name="Weiter" value="Weiter">
        </div>
      </form>
    </td>
    <td width="20%" align="center" valign="center" height="100%"> 
      <p><img src="/kzu/img/*****.gif" width="190" height="176" usemap="#Map3" border="0"></p>
      <p><img src="/kzu/img/*****.gif" width="190" height="176" usemap="#Map4" border="0"></p>
    </td>
  </tr>
</table>
<map name="Map"> 
  <area shape="rect" coords="26,13,164,155" href="http://*****/company.html" target="_blank">
</map>
<map name="Map2"> 
  <area shape="rect" coords="26,13,163,155" href="http://www.*****.de/company.html" target="_blank">
</map>
<map name="Map3"> 
  <area shape="rect" coords="26,13,164,155" href="http://www.*****.de/company.html" target="_blank">
</map>
<map name="Map4"> 
  <area shape="rect" coords="26,13,164,155" href="http://www.*****.de/company.html" target="_blank">
</map>
</body>
</html>

Zeile 92 = </map>?!
Ich finde meinen fehler nicht.
 
Zuletzt bearbeitet:
Also eine seitliche Anordnung.
Ok da würde sich dann am Besten eine Tabelle innerhalb der Form eignen:
HTML:
<table style="text-align:right; width:100%;">
 <tr>
  <td style="width:33%;">1 <input type="radio" name="q1" value="1" /></td>
  <td style="width:33%;">2 <input type="radio" name="q2" value="2" /></td>
  <td style="width:33%;">3 <input type="radio" name="q3" value="3" /></td>
 </tr>
 <tr>
  <td style="width:33%;">4 <input type="radio" name="q4" value="4" /></td>
  <td style="width:33%;">5 <input type="radio" name="q5" value="5" /></td>
  <td style="width:33%;">6 <input type="radio" name="q6" value="6" /></td>
 </tr>
</table>
 
Zuletzt bearbeitet:
Hm also doch mit einer Tabelle, wollte das eigentlich umgehen und dachte es gibt eine elegantere Lösung, aber da werd ich dann wohl nicht drumherum kommen.

Danke schonmal hierfür... nun bereitet mir der Fehler kopfzerbrechen. :freak:
 
Hi,

dem input-Feld per CSS den Wert margin bzw. besser margin-right zuweisen.

Bewirkt das gleiche wie die Lösung von Ack der III, denn margin-right gibt den Abstand zum nächsten rechts gelegenen Objekt an.

Mfg, Michi.
 
Hatte ich mir auch schon überlegt.
Das Problem ist nur, dass je nachdem wie viele Zeichen zu einer Antwort gehören,
der Abstand verschieden ist, dadurch verschiebt sich dann Zeile zu Zeile die Positionierung der Spalte.
Wenn natürlich immer eine gleiche Zahl an Zeichen bei einer Auswahl stehen würde, dann würde es gehen (vorausgesetzt es ist ein Monospace-Font).

Durch eine Tabelle ist der Abstand bei jeder Zeile immer der selbe.

Edit: Zu dem Fehler: da sind zu viele Klammern bei den if-Abfragen. Bzw. es werden lauter Klammern geöffnet, die aber nicht geschlossen werden.
 
Zuletzt bearbeitet:
Jap, stimmt soweit, habs gerade getestet.
Nur das er mir bei width="33%" auch alles verschiebt, lösche ich den width command funktioniert alles einwandfrei.

Hat jemand eine Ahnung warum mir der Server die oben genannte Meldung ausspuckt wenn ich die u2.php ausführe? Ich such mich hier wund kann aber keinen einzigen Fehler am code entdecken

**edit**
Wie dämlich von mir >_>
Ich hab den Fehler ganz unten gesucht :)
Danke Ack du bist mein Held!

**edit²**
da bäumt sich direkt eine kleine neue Frage auf.
Muss es
HTML:
<form action="u11.php" method="POST">
oder
HTML:
<form action="/kzu/u11.php" method="POST">
heissen?
Ich bin für zweiteres, mir wurde aber gerade gezwitschert das es ohne das Stammverzeichnis gemacht werden muss

Bitte sagt mir das ich recht habe und ich es vom Stammverzeichnis aus machen muss ;)
 
Zuletzt bearbeitet:
Würd ich ja gerne, aber leider nicht richtig.
Zumindest könntet ihr beide Unrecht haben^^
Jedenfalls:

Es funktioniert genauso wie bei Hyperlinks.

Es gibt absolute Pfade: Da muss dann die gesamte Adresse geschrieben werden (incl. http:// etc).

Und es gibt relative Pfade: (Eigentlich am Besten innerhalb einer Homepage meiner Meinung nach).
Da kommt es darauf an, in welchem Verzeichnis sich gerade der Browser befindet.

Wenn also der Browser gerade auf der Webseite http://www.example.com/index.html ist
und man möchte von dort ein Formular ausfüllen, das als action "script.php" hat,
dann sucht der Browser nach einer Datei http://www.example.com/script.php

Wenn dagegen bei action "formulare/script.php" steht,
dann sucht er nach nach einer Datei http://www.example.com/formulare/script.php


Also würde die Angabe des Stammverzeichnisses dazu führen, dass der Browser einen Unterordner sucht, der den Namen des Stammverzeichnisses trägt, worin sich die Datei befindet.

Also kommt es bei relativen Pfaden darauf an, auf welcher Seite sich der Browser befindet und wo die Datei liegt, die ausgeführt werden soll.
 
Zuletzt bearbeitet:
Dann lag ich ja so ziemlich richtig :)
Ok das wars dann, morgend wird das ding dann fertig gemacht und dann sollte es doch funktionieren nach so vielen Hilfreichen Tipps.

Bedanke mich aufjedenfall zutiefst bei allen helfern :D

---------------

Es hätte so schön sein können :rolleyes:
Natürlich kommt eine Fehlermeldung wenn ich versuche die Mail zu verschicken, die da währe:

Parse error: syntax error, unexpected T_VARIABLE in /home/*****.eu/html/kzu/ue.php on line 44

In Zeile 44 befindet sich folgende variable:
PHP:
$message = "$text";

Hier noch der komplette Quelltext:
HTML:
<?php $checksum = $_POST["firma"];
$checksum = $_POST["name"];
$checksum = $_POST["tel"];
$checksum = $_POST["mail"];

$email = "****@****.de";
$text = "Allgemein:
****?: $q1 von 6
****?: $q2 von 6
****?: $q3 von 6
****?: $q4 von 6
****?: $q5
****?: $q6
****?: $q8
****?: $q9
****?: $q10
****?: $q11
****?: $q12

Vertrieb:
****?: $qv1 von 6
****?: $qv2
****?: $qv3 von 10
****?: $qv4 von 10
****?: $qv5 von 10
****?: $qv6 von 10
****?: $qv7 von 10

Technik:
****?: $qt1 von 10
****?: $qt2 von 10
****?: $qt3 von 10
****?: $qt4 von 10
****?: $qt5 von 10
****?: $qt6 von 10
****?: $qt7 von 10

Kontakt:
****: $firma
****: $name
****: $tel
****: $mail"

$message = "$text";
$to      = "****@****.de";
$subject = "Umfrage-Ergebnisse";
$xtra    = "From: $email ($sender)\r\n";
$xtra   .= "Content-Type: text/text\r\nContent-Transfer-Encoding: 8bit\r\n";
$xtra   .= "X-Mailer: PHP ". phpversion();
mail($to, $subject, $message, $xtra); ?>
<html>
<head>
<title>**** - Umfrageformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#000000" vlink="#666666" alink="#666666">
<h2 align="center"><font face="Arial, Helvetica, sans-serif" size="6"><b>Kundenzufriedenheitsumfrage</b></font></h2>
<table width="100%" border="1" cellspacing="15" cellpadding="10" bordercolor="#000000">
  <tr> 
    <td width="20%" align="center" valign="center" height="100%"> 
      <p align="center"><img src="/kzu/img/****.gif" width="190" height="176" usemap="#Map" border="0"></p>
      <p align="center"><img src="/kzu/img/****.gif" width="190" height="176" usemap="#Map2" border="0"></p>
    </td>
    <td width="58%" align="center" valign="center" height="100%" bgcolor="#FFFFFF">
<p align="center"><font face="Arial, Helvetica, sans-serif"><img src="/kzu/img/****.gif" width="190" height="176"></font></p>
      <p align="center"><font face="Arial, Helvetica, sans-serif">Die Umfrage 
        ist beendet!</font></p>
      <p align="center"><font face="Arial, Helvetica, sans-serif">Vielen dank, 
        dass Sie sich Zeit daf&uuml;r genommen haben.</font></p>
      <p align="center"><font face="Arial, Helvetica, sans-serif"><a href="http://****.de/">www.****.de</a>
</font></p>
      </td>
    <td width="22%" align="center" valign="center" height="100%"> 
      <p><img src="/kzu/img/****.gif" width="190" height="176" usemap="#Map3" border="0"></p>
      <p><img src="/kzu/img/****.gif" width="190" height="176" usemap="#Map4" border="0"></p>
    </td>
  </tr>
</table>
<map name="Map"> 
  <area shape="rect" coords="26,13,164,155" href="http://****.de/****/company.html" target="_blank">
</map>
<map name="Map2"> 
  <area shape="rect" coords="26,13,163,155" href="http://www.****.de/company.html" target="_blank">
</map>
<map name="Map3"> 
  <area shape="rect" coords="26,13,164,155" href="http://www.****.de/company.html" target="_blank">
</map>
<map name="Map4"> 
  <area shape="rect" coords="26,13,164,155" href="http://www.****.de/company.html" target="_blank">
</map>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator: (Doppelpost zusammengefügt. Bitte Ändern-Button benutzen.)
Hi,
Probier einmal:
PHP:
$message = $text; // ohne " " um $text, also nicht : "$text" sonder nur $text

Oder noch besser: die obere Zeile weglassen, und die Zeile, wo mail() aufgerufen wird, so verändern:

PHP:
mail($to, $subject, $message, $xtra); ?>
verändern zu
PHP:
mail($to, $subject, $text, $xtra); ?>

Falls es nicht klappt: die Mail-Zeile einmal weglassen, und $text ausgeben lassen, und berichten, was passiert.
 
Zuletzt bearbeitet:
Danke für die Tipps, war leider keines davon :)
Hab meine Mittagspause geopfert um den Fehler zu finden... man möchte den Blick bitte auf Zeile 42 wenden
PHP:
Mail: $mail"

Da hat das Semikolon gefehlt :rolleyes:
Man kann sich an solchen bugs echt dumm und dämlich suchen.

Trotzdem danke für die mühe :)

*edit*
und es reisst nicht ab
nun funktioniert alles... naja fasst :)
Leider werden die variablen nicht ausgelesen aus der session, sprich, da wo in der Mail "$q1" stehen sollte, also die antwort von Frage 1, steht einfach nichts.
Nun habe ich so viel Erfahrung von PHP, das ich weis, das SID normalerweise im "tmp" ordner auf dem webspace abgelegt werden.
Nun leider wird dort keine angelegt obwohl die session gestartet wird auf der 1. Seite und zwar hiermit:
PHP:
<?php session_start(); ?>
spätestens nun sollte doch wenigstens eine leere session datei im tmp verzeichniss liegen oder?

Nachtrag: Selbes passiert auch, wenn am ende des Formulars KEIN session kill befehl kommt
 
Zuletzt bearbeitet:
Ist in jeder Datei die direkt aufgerufen wird (also nicht über include oder sowas) ein session_start(); eingefügt?
Steht diese Funktion auch in der ersten Zeile?

Die Funktion session_kill(); bzw. session_destroy(); erst ganz am Ende aufrufen, nachdem die eMail mit mail(); verschickt wurde.

Edit:
Und die Variablen, die in der Session gespeichert sind, werden mit $q1 = $_SESSION['q1']; aus der Session in die Variable $q1 geladen.
 
Zuletzt bearbeitet:
session_start(); steht nur auf der ersten Seite ganz oben, auf den andren seiten folgen lediglich die includes. Wie gesagt, wenn der session_kill befehl komplett weg ist, verweigert es auch den dienst, dachte erst es läge an dem.

Kann es evtl. seine Servereinstellung sein? Da ich keinen Zugriff auf den Firmenserver habe, kann ich das dahingehend nicht per try and error versuchen.

**edit**
mich macht vor allem stutzig, das keine SID im /tmp/ verzeichniss angelegt wird, nach dem session_start(); start aufgerufen wurde und der php skript beendet wird.

**edit²**
hier mal die php skripts wie sie in reihe augerufen werden:

Datei 1:
PHP:
<?php session_start(); ?>

Nun müsste ja eine SID erstellt sein

Datei2:
PHP:
<?php $checksum = $_POST["q1"];

if($checksum==1)
$_SESSION['umfrageeins'] = '1';
if($checksum==2)
$_SESSION['umfrageeins'] = '2';
if($checksum==3)
$_SESSION['umfrageeins'] = '3';
if($checksum==4)
$_SESSION['umfrageeins'] = '4';
if($checksum==5)
$_SESSION['umfrageeins'] = '5';
if($checksum==6)
$_SESSION['umfrageeins'] = '6';
?>

Datei 3:
PHP:
<?php $checksum = $_POST["q2"];

if($checksum==1)
$_SESSION['umfragezwei'] = '1';
if($checksum==2)
$_SESSION['umfragezwei'] = '2';
if($checksum==3)
$_SESSION['umfragezwei'] = '3';
if($checksum==4)
$_SESSION['umfragezwei'] = '4';
if($checksum==5)
$_SESSION['umfragezwei'] = '5';
if($checksum==6)
$_SESSION['umfragezwei'] = '6';
?>

...
etc. pp.
...

Datei 12:
PHP:
<?php $checksum = $_POST["firma"];
$checksum = $_POST["name"];
$checksum = $_POST["tel"];
$checksum = $_POST["mail"];

$email = "****@****.de";
$text = "Allgemein:
****?: $q1 von 6
****?: $q2 von 6
****?: $q3 von 6
****?: $q4 von 6
****?: $q5
****?: $q6
****?: $q8
****?: $q9
****?: $q10
****?: $q11
****?: $q12

Vertrieb:
****?: $qv1 von 6
****?: $qv2
****?: $qv3 von 10
****?: $qv4 von 10
****?: $qv5 von 10
****?: $qv6 von 10
****?: $qv7 von 10

Technik:
****?: $qt1 von 10
****?: $qt2 von 10
****?: $qt3 von 10
****?: $qt4 von 10
****?: $qt5 von 10
****?: $qt6 von 10
****?: $qt7 von 10

Kontakt:
****: $firma
****: $name
****: $tel
****: $mail";

$message = "$text";
$to      = "****@****.de";
$subject = "Umfrage-Ergebnisse";
$xtra    = "From: $email ($sender)\r\n";
$xtra   .= "Content-Type: text/text\r\nContent-Transfer-Encoding: 8bit\r\n";
$xtra   .= "X-Mailer: PHP ". phpversion();
mail($to, $subject, $message, $xtra); 
session_kill(); ?>

Ich kann von meiner Seite aus keinen Fehler erkennen, vor allem nicht warum ich trotz richtiger variable keine SID bekomme
 
Zuletzt bearbeitet:
Jetzt lädst du mal diese Datei hoch:
PHP:
<?php
session_start();
if (isset($_SESSION["abc"])) {
echo 'Session schon vorhanden, Session wird nun wieder gelöscht. <a href="'.$_SERVER['PHP_SELF'].'"> Klicken, um zur Startseite zu gelangen </a>';
session_destroy();
} else {
echo 'Session wurde angelegt. <a href="'.$_SERVER['PHP_SELF'].'"> Klicken zum neuladen, dann sollte was anderes angezeigt werden</a>';
$_SESSION["abc"] = "ja";
}
?>
Und berichtest, was passiert. Normalerweise solltest der angezeigte Text bei jedem mal neuladen zwischen Text 1 und Text 2 wechseln.

BTW: In deiner Datei "12.php" sind alle Variablen garnicht definiert (q1, q2 usw).
Da wird wohl der Haupt-Fehler sein.
 
session_start(); muss in jeder Datei stehen, die direkt per Browser aufgerufen wird.
Es wird dann nämlich die aktuelle Session wieder geladen.
session_start(); bedeutet im Grunde: Lade aktuelle Session und wenns keine gibt, erstelle eine neue.
Daher muss es in jede Datei rein, die direkt aufgerufen wird.


Datei 12:

Hier speicherst du alle Daten in die Variable checksum und überschreibst diese jedesmal wieder, so dass am Ende nur Mail drin stehen bleibt:
PHP:
<?php $checksum = $_POST["firma"];
$checksum = $_POST["name"];   //Firma wird überschrieben (Also in $name etc. ändern)
$checksum = $_POST["tel"];     //Name wird überschrieben
$checksum = $_POST["mail"];    //Tel wird überschrieben

//UND dann müssen noch die einzelnen Fragen wieder geladen werden:

$q1 = $_SESSION['umfrageeins'];
$q2 = $_SESSION['umfragezwei'];
$q3 = $_SESSION['umfragedrei'];

//Der Rest sollte dann stimmen.

$email = "****@****.de";
$text = "Allgemein:
****?: $q1 von 6
****?: $q2 von 6
****?: $q3 von 6
****?: $q4 von 6
****?: $q5
****?: $q6
****?: $q8
****?: $q9
****?: $q10
****?: $q11
****?: $q12

Vertrieb:
****?: $qv1 von 6
****?: $qv2
****?: $qv3 von 10
****?: $qv4 von 10
****?: $qv5 von 10
****?: $qv6 von 10
****?: $qv7 von 10

Technik:
****?: $qt1 von 10
****?: $qt2 von 10
****?: $qt3 von 10
****?: $qt4 von 10
****?: $qt5 von 10
****?: $qt6 von 10
****?: $qt7 von 10

Kontakt:
****: $firma
****: $name
****: $tel
****: $mail";

$message = "$text";
$to      = "****@****.de";
$subject = "Umfrage-Ergebnisse";
$xtra    = "From: $email ($sender)\r\n";
$xtra   .= "Content-Type: text/text\r\nContent-Transfer-Encoding: 8bit\r\n";
$xtra   .= "X-Mailer: PHP ". phpversion();
mail($to, $subject, $message, $xtra); 
session_kill(); ?>
 
Zuletzt bearbeitet:
@michi12
Stimmt, der Text ändert sich bei jedem neuen Laden.

@Ack
Ah ok wusste ich nicht, ich ging davon aus das der session_start befehl nur am Anfang steht und dann einfach im Hintergrund "mit läuft".
Was das checksum angeht:

Also meinst du das Ungefähr so?
PHP:
$firma = $_POST["firma"];
$name = $_POST["name"];

Werd es mal ausprobieren, danke soweit schonmal :)

**edit**
Ok, neuer Stand der Dinge: Unverändert
Ich habe nun in jeder Datei einen session start:
PHP:
<?php session_start();

$q1 = $_POST["q1"];

if($q1==1)
$_SESSION['umfrageeins'] = '1';
if($q1==2)
$_SESSION['umfrageeins'] = '2';
if($q1==3)
$_SESSION['umfrageeins'] = '3';
if($q1==4)
$_SESSION['umfrageeins'] = '4';
if($q1==5)
$_SESSION['umfrageeins'] = '5';
if($q1==6)
$_SESSION['umfrageeins'] = '6';
?>
etc.

und in der letzten Datei in der auch die Mail verschickt wird steht nun folgendes:
PHP:
<?php session_start();

$firma = $_POST["firma"];
$name = $_POST["name"];
$tel = $_POST["tel"];
$mail = $_POST["mail"];

$q1 = $_SESSION['umfrageeins'];
$q2 = $_SESSION['umfragezwei'];
$q3 = $_SESSION['umfragedrei'];
$q4 = $_SESSION['umfragevier'];
$q5 = $_SESSION['umfragefuenf'];
$q6 = $_SESSION['umfragesechs'];
$q7 = $_SESSION['umfragesieben'];
$q8 = $_SESSION['umfrageacht'];
$q9 = $_SESSION['umfrageneun'];
$q10 = $_SESSION['umfragezehn'];
$q11 = $_SESSION['umfrageelf'];
$q12 = $_SESSION['umfragezwoelf'];
$q13 = $_SESSION['umfragedzehn'];
$q14 = $_SESSION['umfragevzehn'];
$qt1 = $_SESSION['umfrageteins'];
$qt2 = $_SESSION['umfragetzwei'];
$qt3 = $_SESSION['umfragetdrei'];
$qt4 = $_SESSION['umfragetvier'];
$qt5 = $_SESSION['umfragetfuenf'];
$qt6 = $_SESSION['umfragetsechs'];
$qt7 = $_SESSION['umfragetsieben'];
$qv1 = $_SESSION['umfrageveins'];
$qv2 = $_SESSION['umfragevzwei'];
$qv3 = $_SESSION['umfragevdrei'];
$qv4 = $_SESSION['umfragevvier'];
$qv5 = $_SESSION['umfragevfuenf'];
$qv6 = $_SESSION['umfragevsechs'];
$qv7 = $_SESSION['umfragevsieben'];
$firma = $_SESSION['firma'];
$name = $_SESSION['name'];
$tel = $_SESSION['tel'];
$mail = $_SESSION['mail'];

$email = "****@****.de"; 
$text = "Allgemein: 
****?: $q1 von 6 
****?: $q2 von 6 
****?: $q3 von 6 
****?: $q4 von 6 
****?: $q5 
****?: $q6 
****?: $q8 
****?: $q9 
****?: $q10 
****?: $q11 
****?: $q12 

Vertrieb: 
****?: $qv1 von 6 
****?: $qv2 
****?: $qv3 von 10 
****?: $qv4 von 10 
****?: $qv5 von 10 
****?: $qv6 von 10 
****?: $qv7 von 10 

Technik: 
****?: $qt1 von 10 
****?: $qt2 von 10 
****?: $qt3 von 10 
****?: $qt4 von 10 
****?: $qt5 von 10 
****?: $qt6 von 10 
****?: $qt7 von 10 

Kontakt: 
****: $firma 
****: $name 
****: $tel 
****: $mail"; 

$message = "$text"; 
$to      = "****@****.de"; 
$subject = "Umfrage-Ergebnisse"; 
$xtra    = "From: $email ($sender)\r\n"; 
$xtra   .= "Content-Type: text/text\r\nContent-Transfer-Encoding: 8bit\r\n"; 
$xtra   .= "X-Mailer: PHP ". phpversion(); 
mail($to, $subject, $message, $xtra);  
session_kill(); ?>

Leider immernoch keine Spur von ausgeworfenen Ergebnissen und/oder einer SID

**edit2**
Habe nun mal 2 Simple datein erstellt die, meiner meinung nach, am ende ein ergebniss ausgeben müssten, leider tun sie das nicht.
Also irgendwo hängt es bei mir noch bei dem Thema :)

Test1.php:
PHP:
<?php session_start(); ?>
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<form action="test2.php" method="POST">
        <table style="text-align:right; width:100%;">
          <tr> 
            <td> 
              <div align="center">1 
                <input type="radio" name="q1" value="1" />
              </div>
            </td>
            <td> 
              <div align="center">2 
                <input type="radio" name="q1" value="2" />
              </div>
            </td>
            <td> 
              <div align="center">3 
                <input type="radio" name="q1" value="3" />
              </div>
            </td>
            <td> 
              <div align="center">4 
                <input type="radio" name="q1" value="4" />
              </div>
            </td>
            <td> 
              <div align="center">5 
                <input type="radio" name="q1" value="5" />
              </div>
            </td>
            <td> 
              <div align="center">6 
                <input type="radio" name="q1" value="6" />
              </div>
            </td>
          </tr>
        </table>
      </form>
	        <form action="test2.php" method="post">
        <div> 
          <input type="submit" name="Weiter" value="Weiter">
        </div>
      </form>
</html>

test2.php:
PHP:
<?php session_start();

$q1 = $_POST["q1"];

if($q1==1)
$_SESSION['umfrageeins'] = '1';
if($q1==2)
$_SESSION['umfrageeins'] = '2';
if($q1==3)
$_SESSION['umfrageeins'] = '3';
if($q1==4)
$_SESSION['umfrageeins'] = '4';
if($q1==5)
$_SESSION['umfrageeins'] = '5';
if($q1==6)
$_SESSION['umfrageeins'] = '6';

$q1 = $_SESSION['umfrageeins'];

echo $q1 ?>

Nun müsste doch auf seite 2 eine Zahl zwischen 1 und 6 ausgegeben werden? (Je nachdem was gewählt wurde)
Dies passiert leider nicht.

**edit3**
Ich denke, mein problem liegt an den "if" variablen, die, die Antwort ausgeben sollen.

Erstelle ich eine simple datei mit echo:
PHP:
<?php session_start();

$_SESSION['Sprache'] = 'PHP';

$q1 = $_SESSION['Sprache']; 

echo $q1?>
wird PHP ausgegeben.

Mache ich das Spiel über mehrer Seiten z.B. so:
PHP:
<?php session_start();

$_SESSION['Sprache'] = 'PHP';

?> 
<form action="test4.php" method="post">
  <div> 
    <input type="submit" name="Weiter" value="Weiter">
  </div>
</form>
PHP:
<?php session_start();

$q1 = $_SESSION['Sprache']; 

echo $q1 ?>

Wird "PHP" ausgegeben, so wie es sein soll.
Wo liegt dann der Wurm in meinem Formular?!
Nichts anderes mache ich doch dort auch.

Wenn ich datei 1 die Frage steht mit den möglichen Antworten/Wertden (z.B. q1 = 2)
muss ich diese doch, per post an die nächste Seite senden wo sie per
PHP:
$q1 = $_POST["q1"]; 

if($checksum==1) 
$_SESSION['umfrageeins'] = '1'; 
if($checksum==2) 
$_SESSION['umfrageeins'] = '2';
als eine "2" unter "umfrageeins" in die SID geschrieben werden müsste?
Oder ist genau da der fehler?
Andrerseits: Warum werden dann variablen, die keine auswertung per if enthalten auch nicht ausgegeben?
z.B. Datei1:
Hier sage ich dem Textfeld (qv2) es soll die Daten die eingegeben wurden an die nächste datei (uv3) senden

HTML:
<form action="/kzu/uv3.php" method="post">
        <div> 
          <textarea name="qv2" cols="100" rows="10" maxlenght="500"></textarea>
        </div>
      </form>

Nun werte ich dieses feld in uv3 so aus:
PHP:
<?php $qv2 = $_POST["qv2"];
?>

Und rufe sie in der letzten datei nochmals aufs:
PHP:
$qv2 = $_SESSION['umfragevzwei'];
bevor sie versendet wird

Nun sehe ich zwar den fehler, das in "uv3" nichts in die session geschrieben wird, weiss jedoch nicht wie ich es umschreiben muss.
Langsam bereitet mir das wirklich Kopfschmerzen
 
Zuletzt bearbeitet:
Dein beispiel in der Test1.php haut nicht hin, weil das
</form>
<form action="test2.php" method="post">
raus muss! Der fängt damit ja praktisch ein zweites neues Formular an bei dem dann nur "Weiter" übermittelt wird (kann man auch schön mit dem FirefoxPlugin LiveHTTPHeaders sehen!).
 
Stimmt, ist wohl in der Hektik passiert :)
Fakt ist jedoch, im original formular ist dieses <form></form> nicht doppelt und es funktioniert trotz alle dem nicht
 
Du musst natürlich beachten, dass alle Daten korrekt übergeben werden. $qv2 = $_POST["qv2"]; speichert ja nichts in der Session. Du müsstest das mit $_SESSION["qv2"]= $_POST["qv2"]; auch abspeichern.

Für weitere Fragen würde ich empfehlen, mal deinen ganzen Original-Code (und nicht nur Ausschnitte in denen evtl. gar nicht der Fehler liegt!) als Archiv bereitzustellen (evtl. auch per Mail). Vermutlich wird man dann den Fehler gleich sehen während diese ganzen Codeschnippsel und Tests hier doch eher verwirrend sind.
 
Ich habe schon ein paar mal den ganzen Quelltext aus ein paar Dateien geposted, alle 30 Seiten zu posten währe, wie ich finde, leicht übertrieben :)
Aber das mit dem $_SESSION["qv2"]= $_POST["qv2"]; scheint geholfen zu haben.
Bei einem testlauf ging eine Mail MIT Inhalt ein! :)

Ich schreibe jetzt nochmal das komplette Formular um und melde mich dann um zu sagen ob es funktioniert hat.

**edit**
Ok jetzt funktioniert es Wunderbar bis auf einen klitzekleinen Schönheitsfehler.
Ich bedanke mich bei allen Helfern die einen totalen PHP Anfänger wie mich so super... "angelernt" haben :)

Der Schönheitsfehler:
Radios werden super versendet, alles kein Problem nur bei einem Textfeld streikt es.
Dies tritt in 2 Fällen auf:

Fall 1:
HTML:
<?php session_start();

$checksum = $_POST["qv1"];

if($checksum==1)
$_SESSION['umfrageveins'] = '1';
if($checksum==2)
$_SESSION['umfrageveins'] = '2';
if($checksum==3)
$_SESSION['umfrageveins'] = '3';
if($checksum==4)
$_SESSION['umfrageveins'] = '4';
if($checksum==5)
$_SESSION['umfrageveins'] = '5';
if($checksum==6)
$_SESSION['umfrageveins'] = '6';
?>
<html>
<head>
<title>*** - Umfrageformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#000000" vlink="#666666" alink="#666666">
<h2 align="center"><font face="Arial, Helvetica, sans-serif" size="6"><b>Kundenzufriedenheitsumfrage</b></font></h2>
<table width="100%" border="1" cellspacing="15" cellpadding="10" bordercolor="#000000">
  <tr> 
    <td width="20%" align="center" valign="center" height="100%"> 
      <p align="center"><img src="/kzu/img/***.gif" width="190" height="176" usemap="#Map" border="0"></p>
      <p align="center"><img src="/kzu/img/***.gif" width="190" height="176" usemap="#Map2" border="0"></p>
    </td>
    <td width="58%" align="center" valign="center" height="100%" bgcolor="#FFFFFF"> 
      <p><font size="4" face="Arial, Helvetica, sans-serif"><b>Wenn nicht, was 
        k&ouml;nnen wir besser machen?<br>
        </b></font><font size="1" face="Arial, Helvetica, sans-serif">(Die Angabe 
        ist freiwillig, maximal 500 Zeichen.)<br>
        </font><font size="2" face="Arial, Helvetica, sans-serif"> </font> </p>
      <form action="/kzu/uv3.php" method="post">
        <div> 
          <textarea name="qv2" cols="50" rows="10" maxlenght="500"></textarea>
        </div>
      <p>&nbsp;</p>
        <div> 
          <input type="submit" name="Weiter" value="Weiter">
        </div>
      </form>
    </td>
    <td width="22%" align="center" valign="center" height="100%"> 
      <p><img src="/kzu/img/***.gif" width="190" height="176" usemap="#Map3" border="0"></p>
      <p><img src="/kzu/img/***.gif" width="190" height="176" usemap="#Map4" border="0"></p>
    </td>
  </tr>
</table>
<map name="Map"> 
  <area shape="rect" coords="26,13,164,155" href="http://***/company.html" target="_blank">
</map>
<map name="Map2"> 
  <area shape="rect" coords="26,13,163,155" href="http://www.***.de/company.html" target="_blank">
</map>
<map name="Map3"> 
  <area shape="rect" coords="26,13,164,155" href="http://www.***.de/company.html" target="_blank">
</map>
<map name="Map4"> 
  <area shape="rect" coords="26,13,164,155" href="http://www.***.de/company.html" target="_blank">
</map>
</body>
</html>

Wie werte ich diese textbox nun auf der 2. Seite aus und schreibe sie in die SID?
PHP:
<?php $qv2 = $_POST["qv2"];
$_SESSION['umfragevzwei']= $_POST["qv2"]; 
?>
funktioniert leider nicht

Fall 2:

Hier tritt einer Fehler mit <form> auf, den BerniG bereits in meinem Test angesprochen hat, ansich ja kein Problem diesen zusammen zu fassen, leider geht es nicht:

Ursprünglich:
HTML:
<?php session_start();
?>
<html>
<head>
<title>*** - Umfrageformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#000000" vlink="#666666" alink="#666666">
<h2 align="center"><font face="Arial, Helvetica, sans-serif" size="6"><b>umfrage</b></font></h2>
<table width="100%" border="1" cellspacing="15" cellpadding="10" bordercolor="#000000">
  <tr> 
    <td width="20%" align="center" valign="center" height="100%"> 
      <p align="center"><img src="/kzu/img/***.gif" width="190" height="176" border="0"></p>
      <p align="center"><img src="/kzu/img/***.gif" width="190" height="176" border="0"></p>
    </td>
    <td width="58%" align="center" valign="center" height="100%" bgcolor="#FFFFFF"> 
      <p><font size="4" face="Arial, Helvetica, sans-serif"><font size="3">
        <u>Alle Felder sind Freiwillig, es sollte zumindest Ihre Name sowie die 
        Telefonnummer Ihres Unternehmens angegeben werden!</u></font></p>
      <table valign="center" width="100%" border="0">
        <tr> 
          <td width="45%" height="10"> 
            <div align="right"><font face="Arial, Helvetica, sans-serif"><b>Firma:</b></font></div>
          </td>
          <td width="55%" height="10"> <br>
            <form action="/kzu/ue.php" method="post">
              <div> 
                <input type="text" name="firma" value="">
              </div>
            </form>
          </td>
        </tr>
        <tr> 
          <td width="45%" height="2"> 
            <div align="right"><font face="Arial, Helvetica, sans-serif"><b>Name:</b></font></div>
          </td>
          <td width="55%" height="2"> <br>
            <form action="/kzu/ue.php" method="post">
              <div> 
                <input type="text" name="name" value="">
              </div>
            </form>
          </td>
        </tr>
        <tr> 
          <td width="45%"> 
            <div align="right"><font face="Arial, Helvetica, sans-serif"><b>Telefon:</b></font></div>
          </td>
          <td width="55%"> <br>
            <form action="/kzu/ue.php" method="post">
              <div> 
                <input type="text" name="tel" value="">
              </div>
            </form>
          </td>
        </tr>
        <tr> 
          <td width="45%" height="2"> 
            <div align="right"><font face="Arial, Helvetica, sans-serif"><b>E-Mail:</b></font></div>
          </td>
          <td width="55%" height="2"> <br>
            <form action="/kzu/ue.php" method="post">
              <div> 
                <input type="text" name="mail" value="">
              </div>
            </form>
          </td>
        </tr>
      </table>
      <form action="/kzu/ue.php" method="post">
        <div> 
          <input type="submit" name="Abschicken" value="Abschicken">
        </div>
      </form>
    </td>
    <td width="22%" align="center" valign="center" height="100%"> 
      <p><img src="/kzu/img/***.gif" width="190" height="176" border="0"></p>
      <p><img src="/kzu/img/***.gif" width="190" height="176" border="0"></p>
    </td>
  </tr>
</table>
</body>
</html>

Zusammengefasst:
HTML:
<form action="/kzu/ue.php" method="post">
              <div> 
                <input type="text" name="firma" value="">
              </div>
          </td>
        </tr>
        <tr> 
          <td width="45%" height="2"> 
            <div align="right"><font face="Arial, Helvetica, sans-serif"><b>Name:</b></font></div>
          </td>
          <td width="55%" height="2"> <br>
              <div> 
                <input type="text" name="name" value="">
              </div>
          </td>
        </tr>
        <tr> 
          <td width="45%"> 
            <div align="right"><font face="Arial, Helvetica, sans-serif"><b>Telefon:</b></font></div>
          </td>
          <td width="55%"> <br>
              <div> 
                <input type="text" name="tel" value="">
              </div>
          </td>
        </tr>
        <tr> 
          <td width="45%" height="2"> 
            <div align="right"><font face="Arial, Helvetica, sans-serif"><b>E-Mail:</b></font></div>
          </td>
          <td width="55%" height="2"> <br>
              <div> 
                <input type="text" name="mail" value="">
              </div>
          </td>
        </tr>
      </table>
        <div> 
          <input type="submit" name="Abschicken" value="Abschicken">
        </div>
      </form>

Leider haut das so nicht hin :(
 
Zuletzt bearbeitet:
Im Fall1 fehlt session_start() im 2. Skript!
Du kannst dir in PHP übrigens auch immer die übermittelten Parameter ausgeben lassen mit print_r($_POST) bzw. auch alles auflisten lassen was in der Session ist mit print_r($_SESSION)

Im Fall2 passt so gesehen alles (Parameter werden korrekt übermittelt), der Fehler muss in der kzu/ue.php liegen.
 
Zurück
Oben