Hallo zusammen
Ich bin echt am verzweifeln.. ich bin PHP neuling, aber habe Erfahrungen mit anderen Objektorientierten Programmiersprachen (C#).
Mein Problem.. ich bin daran eine Umfrage in PHP zu programmieren... Die User müssen sich anmelden. Username und PW werden verschlüsselt in einer Textdatei abgelegt (Das will ich so!). Die User können dann Verschiedene Fragen mit Radiobuttons beantworten. In einer Textdatei werden der Benutzername (verschlüsselt), die Fragekategorie und ihre Antworten abgespeichert. Die Antwortdatei sieht z.b. so aus:
Die Einträge sind mit einem "|" voneinander getrennt.
Jetzt stehe ich vor dem Problem: Die User sollen am Ende der Umfrage ihre Ergebnisse sehen.. dazu muss ich einen "Filter" auf die Einträge setzen, damit sie nur die Antworten mit ihrem Username sehen.
ich hab folgenden Code dazu programmiert:
Leider scheint er ein Problem zu haben mit dem Array "ArrUserAntw" - denn wenn ich das Script ausführe bekomme ich vom webserver folgende Fehlermeldung:
Ich hab schon den Überblick verlohren und komme einfach nicht weiter.... villeicht mache ich es auch zu kompliziert?
Ich möchte, dass die Antwortdatei eingelesen wird.. dann wird über die Session den aktuellen Benutzername mit md5 verschlüsselt und mit dem 1. Eintrag der jeweilgen Zeile verglichen. Falls das übereinstimmt, werden die restlichen Einträge der Zeile in das Array gespeichert und schliesselich unten ausgegeben.
Mfg
Ich bin echt am verzweifeln.. ich bin PHP neuling, aber habe Erfahrungen mit anderen Objektorientierten Programmiersprachen (C#).
Mein Problem.. ich bin daran eine Umfrage in PHP zu programmieren... Die User müssen sich anmelden. Username und PW werden verschlüsselt in einer Textdatei abgelegt (Das will ich so!). Die User können dann Verschiedene Fragen mit Radiobuttons beantworten. In einer Textdatei werden der Benutzername (verschlüsselt), die Fragekategorie und ihre Antworten abgespeichert. Die Antwortdatei sieht z.b. so aus:
Code:
098f6bcd4621d373cade4e832627b4f6|Schule|Gar nicht|Gar nicht
098f6bcd4621d373cade4e832627b4f6|Schule|Neutral|Neutral
098f6bcd4621d373cade4e832627b4f6|Schule|Gar nicht|Weniger
098f6bcd4621d373cade4e832627b4f6|Schule|Gar nicht|Weniger
098f6bcd4621d373cade4e832627b4f6|Schule|Weniger|Gar nicht
098f6bcd4621d373cade4e832627b4f6|Schule|Gar nicht|Gar nicht
098f6bcd4621d373cade4e832627b4f6|Schule|Gar nicht|Gar nicht
Die Einträge sind mit einem "|" voneinander getrennt.
Jetzt stehe ich vor dem Problem: Die User sollen am Ende der Umfrage ihre Ergebnisse sehen.. dazu muss ich einen "Filter" auf die Einträge setzen, damit sie nur die Antworten mit ihrem Username sehen.
ich hab folgenden Code dazu programmiert:
Code:
<?php//Session starten
session_start();
//Sessionvariable "berechtigt" auslesen und in lokale Variable $auth schreiben
$auth = $_SESSION["berechtigt"];
//Aktuellen User aus Session lesen und in variable $username speichern
if(isset($_SESSION["username"])) {
$username = md5($_SESSION["username"]);
}
else {
echo "Die Sesssion konnte nicht überprüft werden. Sind sie angemeldet?";
}
//überprüfen ob User ein gültiges Login hat, falls nicht auf Startseite umleiten
if ($auth != "1") {
//header("location:index.php");
echo "Die variable auth enthält nicht 1";
}
//Antwortdatei öffnen und Antworten vom eingeloggten Benutzer anzeigen
$antwortdatei = fopen ("antworten/antworten.txt","r");
$ArrUserAntw = "Platzhalter";
while (!feof($antwortdatei))
{
$zeile = fgets($antwortdatei,500);
$zwischenAntw = explode("|", $zeile);
if ($username == $zwischenAntw[0]) {
echo "Username in Antworten gefunden!";
//Index: 1: Kategorie, 2: Antwort 1, 3: Antwort 2
$ArrUserAntw = array ($zwischenAntw[1], $zwischenAntw[2], $zwischenAntw[3]);
}
else {
echo "Du hast da nen Fehler... username nicht in Antworten gefunden oder so..";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="css/umfrage_style.css" rel="stylesheet" type="text/css" />
<title>Ergebnisse</title>
</head>
<body>
<div id="ergebnisse" class="content">
Sie haben folgende Antworten hinterlassen:
<table border="1">
<tr>
<td>
Kategorie: <?php echo $ArrUserAntw[0];?>
</td>
<td>
Antwort 1: <?php echo $ArrUserAntw[1];?>
</td>
<td>
Antwort 2: <?php echo $ArrUserAntw[2];?>
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
</div>
</body>
</html>
Leider scheint er ein Problem zu haben mit dem Array "ArrUserAntw" - denn wenn ich das Script ausführe bekomme ich vom webserver folgende Fehlermeldung:
Code:
Kategorie:
Notice: Undefined variable: ArrUserAntw in C:\xampp\htdocs\Umfrage\ergebnisse.php on line 56
Antwort 1:
Notice: Undefined variable: ArrUserAntw in C:\xampp\htdocs\Umfrage\ergebnisse.php on line 59
Antwort 2:
Notice: Undefined variable: ArrUserAntw in C:\xampp\htdocs\Umfrage\ergebnisse.php on line 62
Ich hab schon den Überblick verlohren und komme einfach nicht weiter.... villeicht mache ich es auch zu kompliziert?
Ich möchte, dass die Antwortdatei eingelesen wird.. dann wird über die Session den aktuellen Benutzername mit md5 verschlüsselt und mit dem 1. Eintrag der jeweilgen Zeile verglichen. Falls das übereinstimmt, werden die restlichen Einträge der Zeile in das Array gespeichert und schliesselich unten ausgegeben.
Mfg