• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

QUIZ mit PHP+SQL bitte helft mir ;-)

Status
Für weitere Antworten geschlossen.

fly

Neues Mitglied
Hallo,
ich bin leider etwas verzweifelt, ich kenne mich mit Variablendeklarationen ob nun Global oder Superglobal etc. leider nicht so richtig aus, ich scheine das noch nicht richtig zu begreifen... Mein Problem ist folgendes:

Ich habe ein Formular in das die Benutzer ihren Namen, ihr Alter und den Statdbezirk aus dem sie kommen eintragen sollen. (Formular ist vorhanden)

Die Eingabe eines Namens ist dabei zwingend sonst wird man erst gar nicht zu dem Quiz weitergeleitet. (funktioniert)

Die Informationen werden mit einem $_GET an die URL übergeben und erscheinen dort auch alle vollständig.

Mein Problem

Ich möchte nach dem beenden des Quiz alles wieder auslesen können Name Alter und Stadtbezirk. Bisher habe ich es nur zuwege gebracht den Namen auszulesen, natürlich auch das Ergbnis des Quiz das war unproblematisch.

Ich verstehe nicht was ich machen muß damit in den beiden Formularfeldern für das Alter und den Stadbezirk die jeweilige Variable an die nächste PHP Seite so übergeben wird das man diese dann in ein Textdokument zur Auswertung ohne Probleme schreiben kann.

Hier mal meine beiden php Seiten um die es sich handelt:

diese nennt sich fragantw.php

PHP:
<html>
  <head>
    <title>Quiz Fragen</title>
  </head>
<body>
<?php
 if(!isset($_GET['name'])):
$alter = "alter";
$stadt = "stadtbezirk";
?>
<font size="6">Willkommen beim München Quiz <br></b></font>
<p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>"method="get">
<br><br><b><label><legend align="center"><font size="4">Gib bitte 

deinen Vornamen <br> und Nachnamen an:<br></legend></b></font>
<br>
<p>
<input type="text" name="name" size=25></label><br>
<br><br><b><label><legend align="center"><font size="4">Gib bitte dein 

Alter an:<br></legend></b></font>
<br>
<input type="text" name="alter" size=2></label><br>
<br><br><b><label><legend align="center"><font size="4">Gib bitte 

deinen Stadtbezirk an wo du wohnst:<br></legend></b></font>
<br>
<p>
<input type="text" name="stadtbezirk" size=15></label><br>
<input type="submit" value="zum Quiz"><br></b></font>
</form>
<link rel="stylesheet" type="text/css" href="main.css">
<style type="text/css">

<?php else:?>

<h1>Münchenquiz</h1>

<?php

   // Datei mit den bisherigen Zugriffszahlen lesen
   $nfile = fopen ("counter.txt", "r");
   $besucher = fgets ($nfile, 10);
   fclose ($nfile);
   // Wert um 1 erhöhen
   $besucher++;
   // Ausgabe
   echo("<b>Ihre Teilnehmernummer lautet:   $besucher  <br>!! Bitte 

merken falls Doppelnamen vorkommen !!</b>");
   // Neuen Wert in der Textdatei speichern
   $nfile = fopen ("counter.txt", "w");
   // Eine Sperre erwerben, um die Datei zu blockieren
   flock ($nfile, 2);
   // Den neuen Wert schreiben
   fputs ($nfile, $besucher);
   // Die Sperre aufheben
   flock ($nfile, 3);
   fclose ($nfile);

?>
    <form action="auswert.php?name=<?php echo 

urlencode($_GET['name']);?>" method="post">
<form action="auswert.php?name=<?php echo urlencode($_GET['alter']);?>" 

method="post">
    <ol>
<?php
   
     // Datenbankparameter (bitte anpassen!)
      
   $host = "xxx";
   $user = "xxx";
   $db = "xxx_db";
   
   // Datenbankverbindung und -auswahl
   $connID = mysql_connect ($host, $user);
   mysql_select_db ($db) or die("Auswahl der Datenbank 

fehlgeschlagen");
   
   // Die Fragen und Antworten lesen und anzeigen
   $result = mysql_query ("SELECT * FROM Fragen");
   while ($row = mysql_fetch_array ($result)) {
      $nr = $row['Nr'];
      $frage = $row['frage'];
      echo ("<li><b>$frage</b></li>\n");
      echo ("<ol type=\"A\">\n");
      for ($i = 1; $i <= 3; $i++) {
         $antfeld = "antw$i";
         $antw = $row[$antfeld];
         echo ("<li><input type=\"radio\" name=\"f$nr\" value=\"a$i\" 

/>$antw</li>\n");
      }
      echo ("</ol>\n");
   }

?>
      </ol>
      <input type="submit" value="Auswerten" />
    </form>
<link rel="stylesheet" type="text/css" href="main.css">
<style type="text/css">

  
<?php
      $jetzt = time();
      $datum = date ("d.m.Y", $jetzt);
      $zeit = date ("h:i", $jetzt);

$fp=fopen("dauer.txt","a");
 fwrite($fp, "\nBesucherNr:$besucher hat am $datum um $zeit das Quiz 

aufgerufen \n");
 fclose($fp);

?>


<?php endif;?>
  </body>
</html>


Hier nun die 2te PHP Seite:

auswert.php
PHP:
<html>
  <head>

    <title>MuenchenQuiz - Auswertung</title>
  </head>

   <h1>Quiz-Auswertung</h1>
<br><br>

<?php

   // Datenbankparameter (bitte anpassen!)
   $host = "xxx";
   $user = "xxx";
   $db = "xxx_db";
   
   // Datenbankverbindung und -auswahl
   $connID = mysql_connect ($host, $user);
   mysql_select_db ($db);
   
   // Anzahl der Fragen lesen
   $result = mysql_query ("SELECT COUNT(Nr) FROM Fragen");
   $fraganzahl = mysql_fetch_row($result);
   $fraganzahl = $fraganzahl[0]; // Wert statt Array.
   // Antworten in ein Array packen
   for ($i = 1; $i <= $fraganzahl; $i++) {
      $varname = "f$i";
      $antw[$i] = $_POST[$varname];
   }
   // Richtige Antworten aus der Datenbank holen
   $result = mysql_query ("SELECT korrekt FROM Fragen");
   // Annahme: Keine Antwort richtig.
   $richtig = 0;
   // In einer Schleife Werte vergleichen:
   for ($i = 1; $i <= $fraganzahl; $i++) {
      $row = mysql_fetch_row ($result);
      $ra = $row[0];
      if ($antw[$i] == "a$ra") {
         $richtig++;
      }
   }
echo ("Du hast $richtig von $fraganzahl Fragen richtig beantwortet!\n");
?>

<link rel="stylesheet" type="text/css" href="main.css">
<style type="text/css">
<?php

if ($richtig=='15')
 {
$fp=fopen("highscore.txt","a");
fwrite($fp, "\n$name $alter $stadt hat volle Punktezahl erreicht!!!\n");
fclose($fp);
}
else
 {
$fp=fopen("highscore.txt","a");
 fwrite($fp, "\n$name $alter $stadt hat $richtig von $fraganzahl Fragen richtig beantwortet!\n");
 fclose($fp);
      $jetzt = time();
      $datum = date ("d.m.Y", $jetzt);
      $zeit = date ("h:i", $jetzt);

$fp=fopen("besucher.txt","a");
 fwrite($fp, "\n$name hat am $datum um $zeit das Quiz beendet \n");
 fclose($fp);
}

?>
  </body>
</html>
<noscript><plaintext><noscript></noscript>
</pre></xmp></noscript>

Falls sich jemand dies hier antut und mir ein wenig helfen könnte wäre ich sehr dankbar.

Lg
Fly

Mod-Edit:
PHP:
-Tags hinzugefügt [/b] ([url=http://www.html.de/member.php?u=2277]flapo[/url])
 
Zuletzt bearbeitet von einem Moderator:
Hallo erstmal und herzlich willkommen in unserer Community fly!
Eins nach dem anderen.. Warum trägste die Daten nich in die Datenbank ein und liest sie daraus aus? Sorry, aber is für mich noch nich so ganz verständlich! :(
Gruß, Fredmonster!
 
Hallo,

Oh entschuldigt das ich noch keine php-tags benutzte, danke an den Moderator mit der offensichtlich großen Langweile 8)

@Fredmonster

Also ich hatte eben zuerst einmal diese zugegeben sehr dilletantische Lösung zur Speicherung der Userdaten sprich schreiben in txt Dokumente, erfolgreich einfügen können, deswegen blieb ich eben dabei.

Dein Vorschlag es einfach in eine SQL Datenbank einzutragen ist sicherlich der einfachste und logischste Weg das Problem vom Tisch zu bekommen, jedoch würde es mich seehr interessieren wie ich mit diesem Code es schaffen könnte eben die Userdaten komplett auszulesen und in txt Dateien zu schreiben.

Sprich was ist grundfalsch, bin eben noch ein Neuling, ich fang erst an mit dem ganzem und mir würde einfach eine Erklärung helfen wie ich mit diesen beiden PHP Skripts das auf diesem Wege regeln könnte.

Wenn es klappt setze ich übrigens einen Link hier rein dann darf jeder mal der Lust hat mein kleines Quiz machen ;-)

Lg
fly


EDIT:

Hallo nochmal an alle, damit meine Frage nochmal kurz knapp und übersichtlich gestellt ist folgendes:

Wenn ich also das Formular, besser gesagt der Benutzer des Quizes das Formular abschickt, soll es nicht nur die Variable $name weiter an auswert.php schicken sondern auch 2 andere Variablen $alter und $stadtbezirk wie müsste ich das schreiben in diesem PHP Code damit das klappt ????

Damit übergebe ich erfolgreich $name:

PHP:
<form action="auswert.php?name=<?php echo urlencode($_POST['name']);?>"method ="post">
Schonmal danke für eure Hilfe !


Moderator-Edit - Aktion: Doppelpost zusammengefügt - Grund: Die Editierfunktion benutzen (Artemis)
 
Zuletzt bearbeitet von einem Moderator:
Ich weiß nicht, ob ich deine frage richtig verstanden habe, aber:




Verschs mal mit <hidden>!
Weißt du wie das funktioniert?
 
datei1.php
PHP:
<form action="datei2.php" method="post">
Alter: <input type="text" name="alter" />
<inout type="submit" name="submit" value="abschicken"/>
datei2.php
PHP:
<?php echo $POST['alter']; ?>
Gruß, Fredmonster!
 
Danke FredMonster das klappt, hattest nur einen Tippfehler dabei muss heißen: $_POST nicht $POST, sobald ich fertig bin gibts dann wie versprochen einen Link zu meinem Quiz mit 15 Fragen rund um München.

LG
fly
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben