nochmaliges Schreiben in Datenbank funzt nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • nochmaliges Schreiben in Datenbank funzt nicht

    Hallo,

    ganz frisch in dem Forum stellt sich mir gleich eine wichtige Frage.

    Ich sitze gerade an einem Evaluationsprogramm für unseren Fachbereich.

    Ich prüfe über ein cgi skript den login und lasse mir per $_GET gewisse
    Variablenwerte übergenen. Jetzt startet mein php-skript. Ich evaluiere
    gewisse Fragen und habe die Möglichkeit mit einem Butten ( <input
    type="button" id="btnSend" name="btnSend" value="Beurteilung
    abschicken" class="boxbtn" onClick="validate()">) die Evaluation abzusenden.

    Nachdem ich dies tat, werden die vorher eingetragenen Werte in eine
    Datenbank eingetragen. Nachdem dies erfolgreich abgeschickt wurde und
    in die Datenbank eingetragen wurde, erscheint eine neue HTML-Seite,
    welche ein dankwort erscheinen läßt. Jetzt dachte ich baue ich in
    diesen "Dankescode" ein Button ein, womit mir möglich ist eine weitere
    Evaluation durchzuführen.


    Jetzt mein Problem:

    Nachdem ich die Seite Hauptseite der Evaluierung nach dem Dankesgruß
    aufrufe und wiederholt alles eintrage, kommt zwar die Danksagung erneut
    und alles scheint richtig funktioniert zu haben, jedoch kommt es zu keinem
    Datenbankeintrag.

    Was mache ich falsch?

    Ich habe keinen Plan warum dies so ist!

    Ich bin Dankbar für jeden Tip, da ich langsam verzweifle.

    Ist vielleicht daran was falsch "if(isset($_POST["q2"])){"?


    Gruß Jens


    Anbei der Code:

    Code:
    [PHP]
    <?php
    //check if form is submitted
    if(isset($_POST["q2"])){
    	
    	//check if form is already submitted once
    	if(!isset($_SESSION['submitted'])){
    	
    		//submitted for the first time, save to database
    		
    		// Connecting, selecting database
     		$link = mysql_connect('localhost', 'user-optimismus', '123fbi')
    	   or die('Could not connect: ' . mysql_error());
    
    		mysql_select_db('evaluation') or die('Could not select database');
    
    		// Performing SQL query after getting form vars
        if($_POST["q_1"]== NULL){$q_1=0000000;}else{$q_1=$_POST["q_1"];}
        if($_POST["q_2"]== NULL){$q_2=0000000;}else{$q_2=$_POST["q_2"];}
        if($_POST["q_3"]== NULL){$q_3=0000000;}else{$q_3=$_POST["q_3"];}
        $q2=$_POST["q2"];
        $q3=$_POST["q3"];
    		$q4=$_POST["q4"];
    		$q5=$_POST["q5"];
    		$q6=$_POST["q6"];
    		$q7=$_POST["q7"];
    		$q8=$_POST["q8"];
    		$q9=$_POST["q9"];
    		$q10=$_POST["q10"];
    		$q11=$_POST["q11"];
    		$q12=$_POST["q12"];
        if($_POST["q13"]== NULL){$q13=5;}else{$q13=$_POST["q13"];}
        if($_POST["q14"]== NULL){$q14=5;}else{$q14=$_POST["q14"];}
        if($_POST["q15"]== NULL){$q15=5;}else{$q15=$_POST["q15"];}
        if($_POST["q16"]== NULL){$q16=5;}else{$q16=$_POST["q16"];}
     		$q17=$_POST["q17"];
        if($_POST["q18"]== NULL){$q18=5;}else{$q18=$_POST["q18"];}
     		$q20=$_POST["txtgrund"];
     		$q21=$_POST["txtpositiv"];
     		$q22=$_POST["txtnegativ"];
        $q23=$_POST["txtverbess"];
        $q24=$_POST["txtName"];
        
    
    		$query1="INSERT INTO daten (q_1,q_2,q_3,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,q18, 
    txtgrund,txtpositiv,txtnegativ,txtverbess)	
      VALUES($q_1,$q_2,$q_3,'$q2',$q3,$q4,$q5,$q6,$q7,$q8,$q9,$q10,$q11,$q12,$q13,$q14,$q15,$q16,$q17,$q18,'$q20',
    '$q21','$q22','$q23')";
    		//echo($query1);
    		//echo("<br><br>");
    		
    		$result1 = mysql_query($query1) or die('Query failed1: ' . mysql_error());
    
    		$query2="INSERT INTO namen (q_1,q_2,q_3,q2,q3,txtName)	
      VALUES($q_1,$q_2,$q_3,'$q2',$q3,'$q24')";
    		//echo($query2);
    		//echo("<br><br>");
    		
    		$result2 = mysql_query($query2) or die('Query failed2: ' . mysql_error());
        
    		//close db connection
    		mysql_close($link);
    	}//end !isset($_SESSION['submitted'])
    
    	//set session var to prevent data submission multiple times	
    	$_SESSION['submitted']=1;	
    
      
      	//calculate feedback value	
    
    	$feedback="<br><br><br><br><table border=\"2\" align=\"center\" style=\"width:750px; border:1px solid black;\";
     bgcolor=\"#FFFF66\"><tr><td align=\"center\">
    <br><b>&nbsp;&nbsp;Vielen Dank, das Sie sich die Zeit genommen haben, den Beurteilungsbogen auszuf&uuml;llen.</b><br><br>
    <br>
    <p><input type=\"button\" name=\"Verweis\" value=\"eine weitere LV bewerten\"
    onClick=\"self.location.href='http://psylux.psych.tu-dresden.de/eval'\">
    </p><br>
    <p><input type=\"button\" name=\"Verweis\" value=\"Fachrichtung Psychologie\"
    onClick=\"self.location.href='http://psylux.psych.tu-dresden.de/'\">
    </p><br>
    ";
    
    	echo($feedback);	
    
    }else{
    $fname = $_GET["fname"];
    $vname = $_GET["vname"];
    $fs = $_GET["fs"];
    $sa = $_GET["sa"];
    $ps = $_GET["ps"];
    
    // ****************************** hier noch: Zeichen %&' aus Variablen entfernen und Prüfsumme überprüfen!!
    
      $grundwert=0;
      $ps_intern=0;
      $zaehler2=0;
    
      if($sa == "PsyGS"){$grundwert = 21;}else{$zaehler2+=1;}
      if($sa == "PsyHS"){$grundwert = 37;}else{$zaehler2+=1;}
    
      $ps_intern = $grundwert + ord(substr($fname,2,1)) + ord(substr($vname,1,1)) + (17 * (ord(substr($fs,0,1))));
    
      if($sa !=NULL && $zaehler2 == 13){$ps_intern = 0;}
    
      if($ps != $ps_intern)
      {
    	$feedback="<br><br><br><br><table border=\"2\" align=\"center\" style=\"width:750px; border:1px solid black;\";
     bgcolor=\"#FFFF66\"><tr><td align=\"center\">
    <br><b>&nbsp;&nbsp;Leider gl&uuml;ckte Ihr Login nicht!<br><br>Bei weiteren technischen Problemen:
     <a href=\"mailto:siegert@psychologie.tu-dresden.de\">Jens Siegert</a></b><br><br>
    <br>
    <p><input type=\"button\" name=\"Verweis\" value=\"Erneuter Loginversuch\"
    onClick=\"self.location.href='http://psylux.psych.tu-dresden.de/eval'\">
    </p><br>";
    
    	echo($feedback);	
       }
       else
       {
    
    ?>
    [/PHP]
    
    <table border="1" width="90%" bordercolor="#000000">
      <tr>
        <td height="100px">
        <form name="frmOpt" id="frmOpt" action="Evaluation.php" method="post">
        <br><h4>Fachrichtung Psychologie</h4><br><h1>Beurteilung der Lehrveranstaltungen im SS 2006</h1><br>
    
    
        <span class="error" id="txtError"></span>
        <input type="button" id="btnSend" name="btnSend" value="Beurteilung abschicken" class="boxbtn" onClick="validate()">
        <br><br>
           
        <!-- E-Mail bei technischen Problemen //-->
        <p>Optimiert f&uuml;r Internet Explorer 6.0, Aufl&ouml;sung: 1280x1024<br>Bei technischen Problemen:&nbsp
          <a href="mailto:siegert@psychologie.tu-dresden.de">Jens Siegert</a>
        </p>
     
        
    </form>
    
    [PHP]
    <?php 
    }
       };
    ?>
    [/PHP]
    </td></tr></table></body></html>
    Zuletzt geändert von Siggi75; 15.06.2006, 08:42.

  • #2
    Regeln lesen und Code entsprechend lesbar formatieren bitte.
    Dabei Umbrüche gegen Überbreite nicht vergessen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Zuletzt geändert von Siggi75; 15.06.2006, 08:39.

      Kommentar


      • #4
        *seufz*
        Dabei Umbrüche gegen Überbreite nicht vergessen.
        Bitte editiere dein Posting.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          neu Formatiert - die Frage bleibt trotzdem

          So jetzt habe ich es hoffentlich Leserfreudlicher gestaltet! Sorry.

          Die Frage stellt sich mir jedoch immer noch.

          Hat niemand eine Idee, die mich wenigstens ein Stückchen weiter bringen würde.


          Vielen Dank

          Gruß Jens

          Kommentar


          • #6
            if(!isset($_SESSION['submitted'])){

            //submitted for the first time, save to database

            Kommentar


            • #7
              danke für den Tipp - aber was meinst du genau damit.

              PHP-Code:
              if(!isset($_SESSION['submitted'])){ 
              steht doch bereits in dem Quellcode drin (gleich in zeile 5).

              Gruß Jens

              Kommentar


              • #8
                Was mache ich falsch?
                Machst deine Diplomarbeit vielleicht mit etwas einfacherem, wo es weniger logie braucht?

                Kommentar


                • #9
                  Danke für deine Hilfe.


                  Gruß Jens

                  Kommentar


                  • #10
                    Bitte, Du hast gefragt....

                    Kommentar


                    • #11
                      Re: nochmaliges Schreiben in Datenbank funzt nicht

                      Original geschrieben von Siggi75
                      Code:
                      [PHP]
                      <?php
                      //check if form is submitted
                      if(isset($_POST["q2"])){
                      	
                      	//check if form is already submitted once
                      	if(!isset($_SESSION['submitted'])){
                      	
                      [/PHP]
                      Wenn ich das richtig verstehe, dann wird nur beim ersten mal etwas in die DB geschrieben. Das wird über $_SESSION['submitted'] kontrolliert.

                      Es würde wahrscheinlich langen, auf der Dankesseite diese Variable zu löschen
                      Code:
                      [PHP]unset($_SESSION['submitted']);[/PHP]
                      .

                      Gruß,

                      ministry

                      PS: sorry, wenn ich euch den Spaß verderbe...
                      ich glaube

                      Kommentar


                      • #12
                        Danke ministry,

                        es funktioniert.

                        Jetzt kommt allerdings noch ne Sache hinzu.
                        Auf der Dankeseite sind zwei Buttons.
                        Einer davon soll ein erneutes evaluieren ermöglichen.
                        Dazu folgender code:



                        Code:
                        <input type=\"button\" name=\"Verweis\" value=\"eine weitere LV bewerten\"
                        onClick=\"self.location.href='http://psylux.psych.tu-dresden.de/eval'\">
                        Wenn ich jetzt an der Stelle wo bisher 'http://psych.tu-dresden.de/eval' steht die Variablen ($fname oder $vname etc.) einbinden möchte funktioniert das mit echo nicht.
                        Wie geht das?


                        1000 Dank

                        Gruß jens

                        Kommentar


                        • #13
                          Code:
                          <input type=\"button\" name=\"Verweis\" value=\"eine weitere LV bewerten\"
                          onClick=\"self.location.href='http://psylux.psych.tu-dresden.de/eval/index.php?fname=$fname'\">
                          ich glaube

                          Kommentar


                          • #14
                            Es funktioniert!

                            Danke du mein Retter!


                            Gruß Jens

                            Kommentar


                            • #15
                              Retterin ....

                              wenn schon, denn schon
                              ich glaube

                              Kommentar

                              Lädt...
                              X