kostenloser Webspace werbefrei: lima-city


Weiß nicht wo ich meine Definitionen reinsetzen soll

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    whiteninja92

    Kostenloser Webspace von whiteninja92, auf Homepage erstellen warten

    whiteninja92 hat kostenlosen Webspace.

    hallo,

    ich habe (mal wieder) ein Problem mit meinem Ausleih-Formular.

    ich poste euch erstmal den Code, unten gehts dann weiter mit dem schreiben:

    <html>
    <body background=\"http://localhost/bg.bmp\">
    <?php
      mysql_connect(\"localhost\",
      \"root\",\"\")or die
      (\"Keine Verbindung moeglich\");  
        mysql_select_db(\"testtesttesttesttest\") or die
      (\"Die Datenbank existiert nicht\");
      mysql_select_db(\"testtesttesttesttest\") or die
      (\"Die Datenbank existiert nicht\");
      ?>
       
    <head>
    <title>Buchung</title>
    </head>
    <body>
    <h1>Formular f&uuml;r die Ger&auml;tereservierung</h1>
     
    <?php
      $abfrage2 = \"SELECT Geraet FROM geräte\";
      $ergebnis2 = mysql_query($abfrage2);
      ?>
     <form action=\"Buchung.php\" method=\"post\" target=\"_self\">
          Name:&nbsp;&nbsp;&nbsp;&nbsp;
         <input name=\"Name\" type=\"text\" size=\"30\" maxlength=\"30\">
         <br>
          vom:
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
          von:
    	 <br>
          Datum:
           &nbsp;&nbsp;
         <input name=\"Datum1\" type=\"text\" size=\"7\" maxlength=\"12\">
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          Zeit:
           &nbsp;&nbsp;
         <input name=\"Zeit1\" type=\"text\" size=\"7\" maxlength=\"12\">
         <br>
    	  bis:
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bis:<br>
          Datum:
           &nbsp;&nbsp;
         <input name=\"Datum2\" type=\"text\" size=\"7\" maxlength=\"12\">
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          Zeit:
           &nbsp;&nbsp;
         <input name=\"Zeit2\" type=\"text\" size=\"7\" maxlength=\"12\">
         <br>
         <br>
          Gerät:
    	   &nbsp;&nbsp;&nbsp;&nbsp;
        <select name=\"Geraet\" size=\"1\">
         <option>&nbsp;&nbsp;...bitte wählen Sie ein Gerät&nbsp;&nbsp;&nbsp;</option>
          <?php
           while($row = mysql_fetch_object($ergebnis2))
          {
    	    echo \"<option>\"; 
    	    echo $row->Geraet.\"</option>\";
    	  }
           ?>
        </select>
          <br>
          <br>						
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          <input type=\"submit\" value=\" Absenden \">
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          <input type=\"reset\" value=\" Abbrechen\">
    	  <input type=\"hidden\" name=\"hiddenvalue\" value=\"kaese\">
     </form>
    <br><br><br><br>
    
    <?php
      $Name = $_POST[\"Name\"];
      $Datum1 = $_POST[\"Datum1\"];
      list ($tag1, $monat1, $jahr1) = split (\'[,.-]\', $Datum1);
      $Zeit1 = $_POST[\"Zeit1\"];
      list ($stunde1, $minute1,) = split (\'[:]\', $Zeit1);
      $Datum2 = $_POST[\"Datum2\"];
      list ($tag2, $monat2, $jahr2) = split (\'[,.-]\', $Datum2);
      $Zeit2 = $_POST[\"Zeit2\"];
      list ($stunde2, $minute2) = split (\'[:]\', $Zeit2);
      $Geraet = $_POST[\"Geraet\"];
      
      if($_POST[\'hiddenvalue\']==\"kaese\") //sind Postdaten vorhanden
       {         
    		 if ($Name == \"\") //ist gesendetes Feld \"Gerät\" leer
    	    {
    		 echo \'Bitte geben Sie einen Namen ein!\';
    	    }
    			elseif ($Datum1 == \"\" || $tag1 > \"31\" || $monat1 > \"12\" || $jahr1 < date(\"Y\")) //wenn das Feld \"Name\" nicht leer ist,  abfrage ist Datum1 korrekt angegeben.
    			{ 
    			 echo \"Bitte füllen sie das Ausleihdatum korrekt aus ( TT.MM.JJJJ )\";
    			}
    				elseif ($Zeit1 == \"\" || $stunde > \"23\" || $minute > \"60\")  //wenn das Feld \"Datum1\" nicht leer ist,  abfrage ist Zeit1 korrekt angegeben.
    				{ 
    				 echo \"Bitte füllen sie die Ausleihzeit korrekt aus ( hh:mm )\";
    				}
    					elseif ($Datum2 == \"\" || $tag2 > \"31\" || $monat2 > \"12\" || $jahr2 < date(\"Y\"))  //wenn das Feld \"Name\" nicht leer ist,  abfrage ist Datum2 korrekt angegeben.
    					{ 
    					 echo \"Bitte füllen sie das Abgabedatum korrekt aus ( TT.MM.JJJJ )\";
    					} 
    						elseif ($Zeit1 == \"\" || $stunde > \"24\" || $minute > \"60\")  //wenn das Feld \"Datum2\" nicht leer ist,  abfrage ist Zeit2 korrekt angegeben.
    						{ 
    						 echo \"Bitte füllen sie die Abgabezeit korrekt aus ( hh:mm )\";
    						}
    							elseif ($Geraet == \"...bitte wählen Sie ein Gerät\")  //wenn das Feld \"Zeit2\" nicht leer ist,  abfrage ist etwas bei Geraet eingegeben.
    							{ 
    							 echo \"Bitte füllen sie das Gerät aus\";
    							}
    								elseif ($timestamp1 > $timestamp2); //wenn alle Felder ausgefüllt sind checke timestamps
    								{
    								 echo \"Bitte überprüfen Sie nochmal Ihren Ausleihtermin und Ihren Abgabetermin\";
    								}
    									else //eintrag der Postdaten in die Datenbank
    									{
    									 $eintrag = \"INSERT INTO buchung (Name, vomts, bists, Geraet) 
    									 VALUES (\'$Name\', \'$timestamp1\', \'$timestamp2\', \'$Geraet\')\";
    									 $eintragen = mysql_query($eintrag);
    								    }
    	}
    
     $timestamp1 = mktime($stunde1,$minute1,0,$monat1,$tag1,$jahr1);
     $timestamp2 = mktime($stunde2,$minute2,0,$monat2,$tag2,$jahr2);
    ?>
     <table border=\"1\">
      <tr>
       <th>Name</th> 
       <th>vom</th>
       <th>um</th>
       <th>bis</th>
       <th>um</th>
       <th>Ger&auml;t</th>
      </tr>
      
      <tr>
       <td>
       <?php
         $abfrage = \"SELECT * FROM buchung ORDER BY `buchung`.`Datum1` ASC\";
         $ergebnis = mysql_query($abfrage);
         while($row = mysql_fetch_object($ergebnis))
         {
          echo \"<tr><td>\";
    	  echo $row->Name.\"</td><td>\";
    	  echo date(\"d.m.Y\",$row->vomts).\"</td><td>\";
    	  echo date(\"H:i\",$row->vomts).\"</td><td>\";
    	  echo date(\"d.m.Y\",$row->bists).\"</td><td>\";
    	  echo date(\"H:i\",$row->bists).\"</td><td>\";
    	  echo $row->Geraet;
    	  echo \"</td></tr>\";
    	 }
    	?>
     </table>
      <br>


    Ab Reihe 72 fängt mein Problem ungefähr an. Kurz nachdem ich meine Variablen definiert habe, fange ich mit einer überprüfung an, also die gannzen if und elseif\'s dort, in Reihe 110 möchte ich nun überprüfen lassen, ob der erste timestamp (Ausleihtermin) größer ist als der zweite timestamp (Abgabetermin). Es ist klar das der Fehler jetzt daran liegt, dass meine Definition für
    $timespamp1 und
    $timestapm2 erst zu spät kommen. ( Definitionen stehen in Zeile 122,123 )

    Aber wenn ich sie vor den ganzen if\'s und elseif\'s schreibe also dort, wo ich meine ganzen anderen Variablen definiert habe, gibt er ein Fehler aus, wenn man bei datum1,2 und zeit1,2 nichts eingibt( weil er ja keine Zeit erstellen kann, wenn es die Tags dat1,2[0,1,2] und time1,2[0,1] nicht gibt.

    Meine Frage an euch ist jetzt: Wie kriege ich die Definitionen für $timestamp1 und 2 in meine ganzen if und elseif\'s Befehle rein, OHNE den Verlauf der Überprüfung zu stören.

    Und noch ne bitte: versucht es bitte einfach zu erklären, da das meine erste Arbeit mit PHP ist.

    danke schon mal :angel:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du könntest deine mktime(); Aufrufe einfach dort in die if anweisung schreiben.
  4. Autor dieses Themas

    whiteninja92

    Kostenloser Webspace von whiteninja92, auf Homepage erstellen warten

    whiteninja92 hat kostenlosen Webspace.


    Du könntest deine mktime(); Aufrufe einfach dort in die if anweisung schreiben.


    wo GENAU? wenn ich die beiden ich kann die ja nur unter ein else reinschreiben aber dann würde ich ja den Überprüfungsverlauf abbrechen, so denk ich mir das. Aber wenn jemand ne idee hat wie ichs da rein tun kann OHNE den Überprüfungsverlauf zu unterbrechen, dann erklärts mir wie und in welcher Zeile bitte.

    danke :biggrin:
  5. bratwurstmitkruste

    Kostenloser Webspace von bratwurstmitkruste, auf Homepage erstellen warten

    bratwurstmitkruste hat kostenlosen Webspace.



    Du könntest deine mktime(); Aufrufe einfach dort in die if anweisung schreiben.


    wo GENAU? wenn ich die beiden ich kann die ja nur unter ein else reinschreiben aber dann würde ich ja den Überprüfungsverlauf abbrechen, so denk ich mir das. Aber wenn jemand ne idee hat wie ichs da rein tun kann OHNE den Überprüfungsverlauf zu unterbrechen, dann erklärts mir wie und in welcher Zeile bitte.

    danke :biggrin:



    ICh bin nicht viel besser als du in PHP denk ich ma aber wie wärs wenn du ein neues IF anfängst?

    Wen total falsch ist sorry xD :lol:
  6. Autor dieses Themas

    whiteninja92

    Kostenloser Webspace von whiteninja92, auf Homepage erstellen warten

    whiteninja92 hat kostenlosen Webspace.




    Du könntest deine mktime(); Aufrufe einfach dort in die if anweisung schreiben.


    wo GENAU? wenn ich die beiden ich kann die ja nur unter ein else reinschreiben aber dann würde ich ja den Überprüfungsverlauf abbrechen, so denk ich mir das. Aber wenn jemand ne idee hat wie ichs da rein tun kann OHNE den Überprüfungsverlauf zu unterbrechen, dann erklärts mir wie und in welcher Zeile bitte.

    danke :biggrin:



    ICh bin nicht viel besser als du in PHP denk ich ma aber wie wärs wenn du ein neues IF anfängst?

    Wen total falsch ist sorry xD :lol:


    wie schon gesagt, wenn ihr mir Vorschläge postet, dann gibt mir bitte die Zeile an und was da rein soll. weil wenn du mir einfach sagst ich soll ein neues IF anfangen, wo denn am anfang gehts nicht da muss meine abfrage fürs hiddenfeld bleiben, in der Mitte gehts auch nicht, weil ich sonst mein Überprüfungsverlauf unterbrechen würde und am Ende wäre bereits zu spät, weil ich ja schon vorher die Definition brauche .
    HILFE :mad:
  7. bratwurstmitkruste

    Kostenloser Webspace von bratwurstmitkruste, auf Homepage erstellen warten

    bratwurstmitkruste hat kostenlosen Webspace.

    Im grunde genommen brauchst du kein neues IF du machst nur bei dem IF so ab Zeile 84 bis 113 irgendwo wenn die Klammer zu ist ANSTATT EIN NEUES ECHO ANZUFANGEN einfach den Befehl dazwischen, so brauchst du kein neues IF


    Hoffe das hilft dir ich kenn mich auch noch nicht so gut aus :lol:

  8. Autor dieses Themas

    whiteninja92

    Kostenloser Webspace von whiteninja92, auf Homepage erstellen warten

    whiteninja92 hat kostenlosen Webspace.


    Im grunde genommen brauchst du kein neues IF du machst nur bei dem IF so ab Zeile 84 bis 113 irgendwo wenn die Klammer zu ist ANSTATT EIN NEUES ECHO ANZUFANGEN einfach den Befehl dazwischen, so brauchst du kein neues IF


    Hoffe das hilft dir ich kenn mich auch noch nicht so gut aus :lol:



    dann werden die Variablen aber nur definiert, wenn die beim if stehende Varaible leer ist, anstatt das ne Fehlermeldung ausgegeben wird.

    kann mir denn keiner helfen !? =(
  9. bratwurstmitkruste

    Kostenloser Webspace von bratwurstmitkruste, auf Homepage erstellen warten

    bratwurstmitkruste hat kostenlosen Webspace.

    Oh stimmt.. hast dus schonmal mit dem Befehl \"include\" um das reinzumachen versucht?

    Hier der Befehl:
    <?php 
    include \"Dateiname\"; 
    ?>


    Mach also ne neue .php Datei und schreib den Befehl darein und mversuch ihn mit Include in den SCript einzubauen.

    Vllt hilfts ja :biggrin:
  10. Autor dieses Themas

    whiteninja92

    Kostenloser Webspace von whiteninja92, auf Homepage erstellen warten

    whiteninja92 hat kostenlosen Webspace.


    Oh stimmt.. hast dus schonmal mit dem Befehl \"include\" um das reinzumachen versucht?

    Hier der Befehl:
    <?php 
    include \"Dateiname\"; 
    ?>


    Mach also ne neue .php Datei und schreib den Befehl darein und mversuch ihn mit Include in den SCript einzubauen.

    Vllt hilfts ja :biggrin:


    das wäre doch das selbe wie wenn ich den code einfach so reinschreibe :lol:
  11. bratwurstmitkruste

    Kostenloser Webspace von bratwurstmitkruste, auf Homepage erstellen warten

    bratwurstmitkruste hat kostenlosen Webspace.

    Naja ich habs versucht :lol:

    Weiter kann ich dir nicht helfen :confused:
  12. Ich würde die beiden Timestamps einfach schon ganz am Anfang (also irgendwo nach $Geraet=$_POST[\'Geraet\']) definieren. Wenn keine Postdaten übertragen wurden oder irgendwas mit dem Format nicht stimmt, dann ist das auch egal, weil es nie zum Vergleich der beiden Timestamps kommt.

    Beitrag geändert: 15.4.2008 13:59:23 von tct
  13. Autor dieses Themas

    whiteninja92

    Kostenloser Webspace von whiteninja92, auf Homepage erstellen warten

    whiteninja92 hat kostenlosen Webspace.

    @tct das würde ja eigentlich gehen, aber in Zeile 90 mach ich ne Datumsabfrage in der er auch die tags prüft. Aber diese tags sind ja nicht vorhanden, wenn man nix für datum1 eingegeben hat. Also kann dann der Befehl mktime nicht richtig funktionieren und ich da ich ihn ja nach deinem Vorschlag ganz nach vorne machen würde, würde er dann einen Fehler ausgeben so in etwa:

    Warning: mktime() expects parameter 1 to be long, string given in C:\\xampp\\htdocs\\Buchung.php on line 123

    Warning: mktime() expects parameter 1 to be long, string given in C:\\xampp\\htdocs\\Buchung.php on line 124
  14. Ist zwar nicht ganz so elegant, aber du kannst vor mktime() einfach ein @ setzen, dann werden eventuelle Fehlermeldungen unterdrückt.
  15. Autor dieses Themas

    whiteninja92

    Kostenloser Webspace von whiteninja92, auf Homepage erstellen warten

    whiteninja92 hat kostenlosen Webspace.

    cool, ich wusste gar nicht das es diese Funktion gibt, ich hab mir schon gedacht das
    elseif ($Datum1 == \"\" || $tag1 > \"31\" || $monat1 > \"12\" || $jahr1 < date(\"Y\")) //wenn das Feld \"Name\" nicht leer ist,  abfrage ist Datum1 korrekt angegeben.
    			{ 
    			 echo \"Bitte füllen sie das Ausleihdatum korrekt aus ( TT.MM.JJJJ )\";
    			}


    so zu machen
    elseif ($Datum1 == \"\")
    			{ 
    			 echo \"Bitte füllen sie das Ausleihdatum korrekt aus ( TT.MM.JJJJ )\";
    			}
                elseif ($tag1 > \"31\" || $monat1 > \"12\" || $jahr1 < date(\"Y\"))
    			{ 
    			 echo \"Bitte füllen sie das Ausleihdatum korrekt aus ( TT.MM.JJJJ )\";
    			}


    aber das mit @ ist viel einfacher, aber noch ne frage du meintest nicht so elegant, heißt das, dass da irgendwie was negatives am @ dran ist?


  16. aber das mit @ ist viel einfacher, aber noch ne frage du meintest nicht so elegant, heißt das, dass da irgendwie was negatives am @ dran ist?

    Wenn nun durch mktime() ein anderer Fehler hervorgerufen wird (keine Ahnung was, aber kann ja passieren), dann wird der natürlich auch nicht ausgegeben. Ist fürs Debugging nicht so toll, wenn das Script jedoch so funktioniert, wie es soll, bzw. fertig entwickelt ist, kann man das @ ohne Probleme verweden.
  17. Autor dieses Themas

    whiteninja92

    Kostenloser Webspace von whiteninja92, auf Homepage erstellen warten

    whiteninja92 hat kostenlosen Webspace.

    achso ich verstehe, aber ich glaub nicht das ich noch was anderes einbauen werde, was irgednwie mit mktime verknüpft ist, also ist mir das @ genug. Aber falls doch würde der code wie ich ihn in meinem letzen Post beschrieben habe, funktionieren oder?

    also nochmal vielen dank tct! :biggrin:
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!