Problem mit der Datumausgabe

aleks

Mitglied
Hallo Zusammen,
ich habe jetzt ein kleines Problem: ich hab drei Pulldown-Menues mit Tag, Monat und Jahr, diese sind in ein Formular integriert. Ich möchte einfach, daß nach dem drücken des Subbutton er es ausgibt. Bloß er macht es nicht. Was mache ich falsche?:confused: Hier mein Quelltext:
PHP:
    <php?

    if(isset($_POST['ueberpruefung'])) 
      {
       
     $allesok=1;
      
    }
    if($allesok)
    {
     $timestamp=mktime(0,0,0,$_POST['tag'],$_POST['monat'],$_POST['jahr']);
     
     $$timestamp=date(d.m.Y);
    echo $$timestamp;
      }
      
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <link href="css/formular_table.css" rel="STYLESHEET" type="TEXT/CSS" />
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Webstandards-Projekt - Beipiele</title>



    </head>
    <body>
    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
     <select name="tag">
            <?php
             for($i = 1; $i <= 31; $i++) 
             {
                echo "<option value=\"".$i."\">".$i."</option>"; 
         
             }
     ?>
     </select> Montat
     <select name="monat">
     <?php
     for($i = 1; $i <= 12; $i++) 
     {
     echo "<option value=\"".$i."\">".$i."</option>"; 
        
     }
    ?>
     </select>Jahr
      <select name="jahr">
     <?php

     $Jahr=date("Y")+1;
     $EndJahr=$Jahr-110;
          while($Jahr >$EndJahr)
         {
           $Jahr--;
            echo "<option value=\"".$Jahr."\">".$Jahr."</option>"; 

        }
    ?>
     </select>
     <input type="hidden" name="ueberpruefung" value="1">
      <input type="submit" name="Anmeldung" value="Absenden">
      </form>
      

    </body>
    </html>
Bitte helft mir denn ich habe nicht so richtigen Plan wie ich das machen soll.
Danke schon mal
 
Huhu, mir sind zwei Sachen im folgenden Codefragment aufgefallen:
PHP:
<php?

    if(isset($_POST['ueberpruefung'])) 
      {
       
     $allesok=1;
      
    }
    if($allesok)
    {
     $timestamp=mktime(0,0,0,$_POST['tag'],$_POST['monat'],$_POST['jahr']);
     
     $$timestamp=date(d.m.Y);
    echo $$timestamp;
      }
      
    ?>
Am ersten "<php" hast du, wahrscheinlich aus versehen, die reihenfolge verwechselt (? und php). Richtig heisst es "<?php" oder einfach "<?".

Außerdem das $$timestamp=date(d.m.Y); echo $$timestamp;
Hab da zwar neulich was drüber gelesen, aber warum nicht einfach $timestamp? Außerdem würde ich die Formatierung der Ausgabe des Datums in ' setzen, also $timestamp = date( 'd.m.Y' );
 
Erst einmal danke für die schnelle Antwort:)
Tschuldigung war ein versehen. Zusätzlich habe jetzt bei mktime tag und monat vertauscht. So wenn man jetzt die Seite aufruft bekommt zusätzlich zum Menue das Aktuelle Datum in Form von :28022006 angezeigt. Aber wenn jetzt was in den Pulldown-Menue einstellt und den Subbutton drückt wird nicht zuvor eingestellte Datum ausgeben. Was muß ich da noch machen damit mir angezeigt wird? :confused:
 
Probier mal Folgendes:
PHP:
<?php

	header('Content-Type: application/xhtml+xml; charset=iso-8859-1');

	$allesok = false;
	if( isset($_POST['ueberpruefung']) ) {
		$allesok = true;
	}
	if( $allesok ) {
		$timestamp = mktime(0, 0, 0, $_POST['monat'], $_POST['tag'], $_POST['jahr']);
		$timestamp = date('d.m.Y');
	}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
	<title>Webstandards-Projekt - Beipiele</title>
	<link rel="stylesheet" type="text/css" href="css/formular_table.css" />
</head>

<body>
	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
		<input type="hidden" name="ueberpruefung" value="1" /> 		<p><select name="tag">
<?php
	for( $i=1; $i<=31; $i++ ) {
		echo '<option value="'.$i.'">'.$i.'</option>';
	}
?>
		</select> Montat
		<select name="monat">
<?php
	for( $i=1; $i<=12; $i++ ) {
		echo '<option value="'.$i.'">'.$i.'</option>';
	}
?>
		</select> Jahr
		<select name="jahr">
<?php
	$aktuellesJahr = date('Y');
	for( $i=$aktuellesJahr-110; $i<=$aktuellesjahr+1; $i++ ) {
		echo '<option value="'.$i.'">'.$i.'</option>';
	}
?>
		</select>	</p>
		<p><input type="submit" name="Anmeldung" value="Absenden" /></p>
	</form>
</body>
</html>
 
Ersteinmal danke für das Beispiel:)
Bloß bekomme ich dann XML Fehlermeldung: XML-Verarbeitungsfehler: nicht wohlgeformt
Adresse: http://localhost/beispiel.php
Zeile Nr. 1, Spalte 11:28.02.2006<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
----------^
Was paßt den Parser den nicht sieht konform aus?:confused: Hat Jemand eine Idee?
Bitte um Hielfe.Kann mich denn nicht einer mal aufklären?:confused:
 
Zuletzt bearbeitet:
Hab ihr mich vergessen?
Jedenfalls ich weis nicht darum als ich heute mein Script aufrief da sah ich zumindestens die Seite mit den Pulldown-Menues, bloß das Jahr Menue wurde nicht angezeigt. Aber als ich es dann durch dies ersetzte:
PHP:
 <select name="jahr">
 <?php

 $Jahr=date("Y")+1;
 $EndJahr=$Jahr-110;
      while($Jahr >$EndJahr)
     {
       $Jahr--;
    	echo "<option value=\"".$Jahr."\">".$Jahr."</option>"; 

    }
?>
 </select>
war es ok. So aber wenn man Absendenbutton bestätigt bekommt man folgende Fehlerfeldung:XML-Verarbeitungsfehler: nicht wohlgeformt
Adresse: http://localhost/beispiel.php
Zeile Nr. 1, Spalte 11:28.02.2006<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
----------^
Kann mir nicht Jemand einen Tipp geben wie ich diesen Fehler beheben soll. Wäre sehr wichtig für mich. Wie möchte entlich mal Wissen wie man etwas macht:) Dank schon dafür das ihr euch Gedanken macht.
 
Der Doctype kommt mir sehr seltsam vor. Immer die aktuellste HTML-Verson zu verwenden ist nicht unbedingt optimal da sie meist noch nicht ausgereift sind. XHTML 1.0 hat mit bis jetzt noch keine Fehlermeldungen gebracht. Hier mal der Code von Gumbo ohne das Headerzeugs mit PHP:

PHP:
<?php
    $allesok = false;
    if( isset($_POST['ueberpruefung']) ) {
        $allesok = true;
    }
    if( $allesok ) {
        $timestamp = mktime(0, 0, 0, $_POST['tag'], $_POST['monat'], $_POST['jahr']);
        $timestamp = date('d.m.Y');
        echo $timestamp;
    }

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Datum per Formular</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="ueberpruefung" value="1" />
<select name="tag">
<?php
    for( $i=1; $i<=31; $i++ ) {
	if($_POST['tag'] == $i) {
        	echo '<option value="'.$i.'" selected>'.$i.'</option>';
	}
	else {
        	echo '<option value="'.$i.'">'.$i.'</option>';
	}
    }
?>
</select>
Tag
&nbsp; 

<select name="monat">
<?php
    for( $i=1; $i<=12; $i++ ) {
	if($_POST['monat'] == $i) {
        	echo '<option value="'.$i.'" selected>'.$i.'</option>';
	}
	else {
        	echo '<option value="'.$i.'">'.$i.'</option>';
	}
    }
?>
</select> 
Monat
&nbsp;

<select name="jahr">
<?php
    $aktuellesJahr = date('Y');
    for($i=($aktuellesJahr - 110); $i<=$aktuellesJahr+1; $i++ ) {
	if($_POST['jahr'] == $i) {
        	echo '<option value="'.$i.'" selected>'.$i.'</option>';
	}
	else {
        	echo '<option value="'.$i.'">'.$i.'</option>';
	}
    }
?>
</select>    
Jahr
<br />
<input type="submit" name="Anmeldung" value="Absenden" />
</form>
</body>
</html>

~getestet und funktioniert in der Ausführung~
(ob das gewünschte Datum rauskommt weiß ich nicht da ich nicht ganz mitbekommen habe wofür das ganze dient)

gruß daniel
 
Erst einmal danke danielku. So lange ich ein Datum einstelle nach dem 1.1.1970 ist alles ok... aber wenn ich Datum davor einstelle bekomme ich folgende Fehlermeldung:Warning: mktime() [function.mktime]: Windows does not support negative values for this function in C:\Programme\xampp\xampp\htdocs\beispiel.php on line 7

Mir ist schon bekannt das mktime keine Datums verarbeit vor 1970. Aber wie wird denn so was gelöst.:(
Könnte mir nicht noch einen Tipp geben. Danke
 
Ja, ja hab ich schon geändert in :
PHP:
 $timestamp = mktime(0, 0, 0, $_POST['monat'], $_POST['tag'], $_POST['jahr']);
kommt aber die selbe Fehlermeldung.:(
Liegt das vielleicht daran das Server bei mir unter Windows läuft.(!) Oder gibt da eine andere Erklärung?
Ich hoffe ich nerve ich mit meiner Fragerei. Bin wie gesagt auf diesen Gebiet noch ohne Erfahrung:)
 
Zurück