• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Problem php+js!

Chuky

New member
Ein wunderschönen guten tach :)

Mein Problem ist folgendes:
ich habe ein Formular per php erzeugt namens index.php und es mit der connect.php verbunden, in der steht der mysql zugriff usw.
Jetzt wollte ich per JS das der User alle Felder ausfüllen und die Radiobuttons auswählen muss, nur wenn ich jetzt ein Feld frei lasse kommt kein "alert" mehr von JS und er geht sofort zur connect.php....

hier die index.php:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>New Document</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">
function chkFormular () {
  if (document.Formular.NutzerVM.value == "") {
    alert("Bitte Ihren Namen eingeben!");
    document.Formular.NutzerVM.focus();
    return false;
  }
  if (document.Formular.TechVer.value == "") {
    alert("Bitte geben Sie einen technischen Verantwortlichen ein!");
    document.Formular.TechVer.focus();
    return false;
  }
if ((document.Formular.System[0].checked == false) && (document.Formular.System[1].checked == false))
{
alert ("wähl ma nen system aus!!!");
return false;
} 
  if (document.Formular.Festplattenspeicher.value == "") {
    alert("Bitte geben Sie die Größe des Festplattenspeichers an!");
    document.Formular.Festplattenspeicher.focus();
    return false;
  }
    var chkZ = 1;
  for (i = 0; i < document.Formular.Festplattenspeicher.value.length; ++i)
    if (document.Formular.Festplattenspeicher.value.charAt(i) < "0" ||
        document.Formular.Festplattenspeicher.value.charAt(i) > "9")
      chkZ = -1;
  if (chkZ == -1) {
    alert("Die Eingabe war keine Zahl!");
    document.Formular.Festplattenspeicher.focus();
    return false;
  }
  if ((document.Formular.ram[0].checked == false) && (document.Formular.ram[1].checked == false))
{
alert ("wähl ma nen RAM aus!!!");
return false;
} 
  if ((document.Formular.cpu[0].checked == false) && (document.Formular.cpu[1].checked == false))
{
alert ("wähl ma nen CPU aus!!!");
return false;
} 
if(document.Formular.startdatum.value.match(/\y\y\y\y\.\m\m\.\d\d\/))
{}else{
alert ("Datumseingabe war nicht korrekt!");
}

  if ((document.Formular.Backupzeiten[0].checked == false) && (document.Formular.Backupzeiten[1].checked == false) && (document.Formular.Backupzeiten[2].checked == false))
{
alert ("wähl ma ne Backupzeit aus!!!");
return false;
} 

}
</script>
  </head>
  <body>

<body>
<div width:500px;>
<form name="Formular" action="connect.php" method="post" onsubmit="return chkFormular()">
<table border="0" cellpadding="3" cellspacing="0">
       <tr>
        <td align="right" valign="top">ID:</td>
      </tr>
      <tr>
      <td align="right">Nutzer*:</td>
      <td>
      <input name="NutzerVM" type="text" class="Feld" size="30" maxlength="30">
      </td>
    </tr>
    <tr>
      <td align="right">Techn.Verantwortliche*:</td>
      <td>
      <input name="TechVer" type="text" class="Feld" size="30" maxlength="40">
      </td>
    </tr>
    <tr>
      <td align="right" valign="top">DNS_Name:</td>
      <td>
<input type="text" name="Dnsname"  value="" size="30" maxlength="40"/>
      </td>
    </tr>
    <tr>
      <td align="right" valign="top">System*:</td>
      <td>
        <input type="radio" class="Radio" name="System" value="W2K3 R2 32Bit"> W2K3 R2 32Bit<br>
        <input type="radio" class="Radio" name="System" value="SuSE Ent. 11 32Bit"> SuSE Ent. 11 32Bit
      </td>
    </tr>
    <tr>
      <td align="right" valign="top">Festplattenspeicher*:</td>
      <td><input name="Festplattenspeicher" type="text" size="3" maxlength="4" color="red">GB</td>
    </tr>
    <tr>
      <td align="right" valign="top">Arbeitsspeicher*:</td>
      <td>
        <input type="radio" class="Radio" name="ram" value="2Gb"> 2Gb<br>
        <input type="radio" class="Radio" name="ram" value="4GB"> 4GB
      </td>
    </tr>
    <tr>
      <td align="right" valign="top">Prozessor*:</td>
      <td>
        <input type="radio" class="Radio" name="cpu" value="1vCPU"> 1vCPU<br>
        <input type="radio" class="Radio" name="cpu" value="2vCPUs"> 2vCPUs
      </td>
    </tr>
    <tr>
      <td align="right" valign="top">Startdatum*:</td>
     <td>
        <input type="text" name="startdatum" size="15" maxlength="10px" border-width="1px"/> (yyyy-mm-dd)
     </td>
    </tr>
    <tr>
      <td align="right" valign="top">Backupzeiten*:</td>
      <td>
        <input type="radio" class="Radio" name="Backupzeiten" value="Wöchentlich"> Wöchentlich<br>
        <input type="radio" class="Radio" name="Backupzeiten" value="Monatlich"> Monatlich<br>
        <input type="radio" class="Radio" name="Backupzeiten" value="Jährlich"> Jährlich
      </td>
    </tr>
        <tr>
      <td align="right" valign="top">Ablaufdatum*:</td>
      <td>
        <input type="text" name="ablaufdatum" size="15" maxlength="10px" border-width="1px"/> (yyyy-mm-dd)
      </td>
    </tr>
    <tr>
      <td align="right" valign="top"></td>
      <td>
        <input type="submit" name\"ok" value="Abschicken">
        <input type="reset" name="abbr_btn" value="Abbrechen">
      </td>
    </tr>
    <tr>
      <td align="right">* - sind Pflichtfelder!</td>
      </td>
    </tr>
</table>
</form>
</div>
</body>

  </body>
</html>

hier die connect.php:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>New Document</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  </head>
  <body>

<?php
$dbname="########"; 
$dbhost="########";
$dbuser="#########";
$dbpass="##########"; 

    $dbconnection = mysql_connect($dbhost, $dbuser, $dbpass);
    if($dbconnection) {
      echo "<p>Die Verbindung mit $dbhost ist hergestellt!</p>\n";
      }else{
      echo"fail";}

$dbname_sel = mysql_select_db($dbname);

$nutzerVM = (isset($_POST['NutzerVM'])) ? $_POST['NutzerVM'] : '';

$TechVer = (isset($_POST['TechVer'])) ? $_POST['TechVer'] : '';

$dns = (isset($_POST['Dnsname'])) ? $_POST['Dnsname'] : '';

$System = (isset($_POST['System'])) ? $_POST['System'] : '';

$hdd = (isset($_POST['Festplattenspeicher'])) ? $_POST['Festplattenspeicher'] : '';

$ram = (isset($_POST['ram'])) ? $_POST['ram'] : '';

$cpu = (isset($_POST['cpu'])) ? $_POST['cpu'] : '';

$Startdatum = (isset($_POST['startdatum'])) ? $_POST['startdatum'] : '';
$startdatum = strtotime($Startdatum);

$backup = (isset($_POST['Backupzeiten'])) ? $_POST['Backupzeiten'] : '';

$Ablaufdatum = (isset($_POST['ablaufdatum'])) ? $_POST['ablaufdatum'] : '';
$ablaufdatum = strtotime($Ablaufdatum);
        
echo "'nutzer: '$nutzerVM ";
echo "'techv ist: '$TechVer ";
echo "'dns: $dns";
echo "'system: '$System";
echo"'hdd: $hdd GB'";
echo "'ram: '$ram ";
echo "'cpu: '$cpu ";
echo "'datum start: '";
echo date('d/m/Y', $startdatum);
echo "'backupzeiten: '$backup";
echo "'datum ende'";
echo date('d/m/Y', $ablaufdatum);
if($startdatum < $ablaufdatum)
{
echo"JOOO";
}else{
echo"NÄÄÄ";
}

 
echo $dbname_sel;
$sql_befehl ="INSERT INTO antrag (NutzerVM, TechVer, DNSname, System, Festplattenspeicher, RAM, CPU, Startdatum, Backupzeiten ,Ablaufdatum) VALUES('$_POST[NutzerVM]','$_POST[TechVer]','$_POST[Dnsname]','$_POST[System]','$_POST[Festplattenspeicher]','$_POST[ram]','$_POST[cpu]','$_POST[startdatum]','$_POST[Backupzeiten]','$_POST[ablaufdatum]')";

if (!mysql_query($sql_befehl,$dbconnection))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added \n";

mysql_close($dbconnection);
#192.168.3.61

$mail_empfaenger="#######";
$mail_absender="#######";
$betreff="Eine Testmail";
$text="Nutzer : $nutzerVM\n";
$text.="TechVer ist : $TechVer\n";
$text="DNS : $dns\n";
$text="System : $System\n";
$text="Festplattenspeicher : $hdd\n";
$text="Arbeitsspeicher : $ram\n";
$text="CPU : $cpu\n";
$text="Startdatum : $Startdatum\n";
$text="Backupintervall : $backup\n";
$text="Ablaufdatum : $Ablaufdatum\n";
if(@mail($mail_empfaenger, $betreff, $text,"from:$mail_absender"))
{echo"email-fehler!!!";}else{echo"mail versendet\r\n";}
echo"<input type=\"submit\" name=\"ok\" value=\"zurück\" onClick=\"top.location.href='index.html'\">";

?>  

  </body>
</html>

greetz Chuky
 
Der letzte Backslash "\" ist dort zu viel, aber das hätte dier auch die Fehlerkonsole gesagt.
Des weiteren steht in deinem Formular die Vorgabe yyyy-mm-dd, aber du prüfst auf yyyy.mm.dd!
Auch ist dein regulärer Ausdruck falsch. Welche Option soll denn "\y" sein?
Falls die Datumseingabe falsch ist liefert der else-Zweig kein return false;!
Du prüfst zwar das Startdatum auf Eingabe, jedoch nicht das Ablaufdatum, obwohl in deinem Formular als Pflichtfeld gekennzeichnet!
Die Datumsprüfung kannst du auch verkürzen, siehe unten.
Code:
if(document.Formular.startdatum.value.match(/\y\y\y\y\.\m\m\.\d\d[B][COLOR="Red"]\[/COLOR][/B]/))
{}else{
alert ("Datumseingabe war nicht korrekt!");
}


So sollte es funktionieren (ungetestet):
Code:
if(!document.Formular.startdatum.value.match(/\d\d\d\d\-\d\d\-\d\d/))
{
alert ("Datumseingabe war nicht korrekt!");
return false;
}
 
Zuletzt bearbeitet:
Ich nehme an du hast einen Fehler in deiner Javascript-Syntax. Ersetze mal

Code:
if(document.Formular.startdatum.value.match(/\y\y\y\y\.\m\m\.\d\d\/))

durch

Code:
if(document.Formular.startdatum.value.match(/test/))

Ansonsten öffne die Seite mit Firefox und drücke die Tastenkombination Control+Shift+j
In diesem Fenster sollten deine Fehler angezeigt werden.

Freundliche Grüsse
 
Danke euch hat mir sehr geholfen soweit funzt es...jetzt nur noch die verlinkung mit der connect.php dann bin ich fertig ;)
danke euch

greetz chuky
 
Code:
/\d\d\d\d\-\d\d\-\d\d/
würde ich ja
Code:
/^\d{4}-\d{2}-\d{2}$/
schreiben (ist etwas kürzer, übersichtlicher und lässt keinen Mist wie "och da schreib ich was davor 2011-03-28 oder dahinter" zu).
Außerdem wird hier nicht geprüft, ob die Datum auch valide ist - 2011-99-99 ist ja z.B. kein valides Datum.
Das kann man hiermit überprüfen:
Code:
function isValidDate(dateStr){
	var m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(dateStr);
	if (m){
		var date = new Date(m[1], m[2] - 1, m[3]);
		return !isNaN(date.getTime());
	}
	return false;
}
 
Zurück
Oben