Url-problem

es liegt also doch dran ob ich enter drück oder nicht. denn mit Enter wirds an die Url übergeben
Ohne kommt leeres Ergebnis ausser ihr macht was anders als ich ^^
ich wills halt gern komplett ohne tastendruck versteht ihr?
 
In dem Moment wo du Enter drückst, ist das als ob du von Hand "www.tutorials.de" oder "www.irgendwas.de" in den Browser ein gibst und die Eingabetaste drückst.
Beim Submit wird das Formular/die Seite so erneut aufgerufen wie sie ursprünglich geladen wurde.

Hier mal eine 1 Seiten Lösung, aber wie gesagt dein Tool muss die komplette URL mit allen Werten aufrufen:

PHP:
<html>
<head>
</head>
<body>
<form action="" method="GET" name="form1">
<div align="right"/>
<?php
if (isset($_GET["Userid"])){
    $Userid = $_GET["Userid"];
} else $fehler = 1;

if (isset($_GET["Firma"])){
    $Firma = $_GET["Firma"];
} else $fehler = 1;

if (isset($_GET["Nachname"])){
    $Nachname = $_GET["Nachname"];
} else $fehler = 1;

if (isset($_GET["Vorname"])){
    $Vorname = $_GET["Vorname"];
} else $fehler = 1;

if (isset($_GET["dpSrn"])){
    $Seriennummer = $_GET["dpSrn"];
} else $fehler = 1;

if (isset($_GET["DatumAktiv"])){
    $DatumAktiv = $_GET["DatumAktiv"];
} else $fehler = 1;

if (isset($_GET["DatumEndAktiv"])){
    $DatumEnd = $_GET["DatumEndAktiv"];
} else $fehler = 1;

if (isset($_GET["Lizenz"])){
    $Lizenz = $_GET["Lizenz"];
} else $fehler = 1;

if ($fehler == 0) {
	$host="localhost";
	$username="david";
	$password="a";
	$dbname="ABMC-Datenbank";
	$tbl_name="Kunden";
	mysql_connect("$host","$username","$password");
	mysql_select_db($dbname);
	$sql = "INSERT INTO $tbl_name (UserID, Firma, Nachname,Vorname, Seriennummer, DatumAktiv, DatumEndAktiv, Lizenz) VALUES ('$Userid','$Firma','$Nachname','$Vorname','$Seriennummer','$DatumAktiv','$DatumEnd','$Lizenz')";
	mysql_query($sql);
	echo mysql_errno() . ": " . mysql_error(). "\n";
	mysql_close();
} elseif ($fehler == 1) {
	echo "<div align='center'><b>Seitenaufruf ung&uuml;ltig. Ein oder mehrere Parameter fehlen!</b></div>";
}
?>
Userid <input type="text" name="Userid" value="<?php echo $Userid; ?>" readonly><br>
Firma <input type="text" name="Firma" value="<?php echo $Firma; ?>" readonly ><br>
Nachname <input type="text" name="Nachname" value="<?php echo $Nachname; ?>" readonly ><br>
Vorname<input type="text" name="Vorname" value="<?php echo $Vorname; ?>" readonly ><br>
Seriennummer <input type="text" name="dpSrn" value="<?php echo $Seriennummer; ?>" readonly><br>
Datum Aktiv <input type="text" name="DatumAktiv" value="<?php echo $DatumAktiv; ?>" readonly ><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv" value="<?php echo $DatumEnd; ?>" readonly ><br>
Lizenz PC <input type="text" name="Lizenz" value="<?php echo $Lizenz; ?>" readonly ><br>
</div>
</form>
</body>
</html>

So muss die Seite aufgerufen werden (sofern ich mich nicht verschrieben habe):

Code:
localhost/formular.php?Userid=123&Firma=Firmenname&Nachname=Müller&Vorname=Martin&Lizenz=Freeware&dpSrn=0815&DatumAktiv=30.11.2010&DatumEndAktiv=01.12.2010
 
Zuletzt bearbeitet:
So pünktlich zum Feierabend hier noch was ganz anderes.
Bei dieser Lösung wird beim Aufruf der Seite geprüft ob alle Felder mit Werten belegt sind oder nicht.
Ist ein Feld leer, so ist der Schreibschutz aufgehoben (damit man was eingeben kann), es wird ein Fehler angezeigt und die Seite lädt sich neu.
In dem Moment wo alle Felder ausgefüllt sind, werden die Daten gespeichert und die Seite bleibt stehen.

Bei mir hat das ohne Enter oder sonst einen Tastendruck (außer in den Textfeldern) geklappt.

PHP:
<html>
<head>
</head>
<body>

<form action="formular.php" method="GET" name="form1">
<div align="right"/>
<?php
if (!isset($_GET["Userid"]) or trim($_GET['Userid']) == ""){
    $fehler = 1;
} else $Userid = $_GET["Userid"];

if (!isset($_GET["Firma"]) or trim($_GET['Firma']) == ""){
    $fehler = 1;
} else $Firma = $_GET["Firma"];

if (!isset($_GET["Nachname"]) or trim($_GET['Nachname']) == ""){
    $fehler = 1;
} else $Nachname = $_GET["Nachname"];

if (!isset($_GET["Vorname"])or trim($_GET['Vorname']) == ""){
    $fehler = 1;
} else $Vorname = $_GET["Vorname"];

if (!isset($_GET["dpSrn"]) or trim($_GET['dpSrn']) == ""){
    $fehler = 1;
} else $Seriennummer = $_GET["dpSrn"];

if (!isset($_GET["DatumAktiv"])or trim($_GET['DatumAktiv']) == ""){
    $fehler = 1;
} else $DatumAktiv = $_GET["DatumAktiv"];

if (!isset($_GET["DatumEndAktiv"]) or trim($_GET['DatumEndAktiv']) == ""){
    $fehler = 1;
} else $DatumEnd = $_GET["DatumEndAktiv"];

if (!isset($_GET["Lizenz"]) or trim($_GET['Lizenz']) == ""){
    $fehler = 1;
} else $Lizenz = $_GET["Lizenz"];

if ($fehler == 0) {
	$host="localhost";
	$username="david";
	$password="a";
	$dbname="ABMC-Datenbank";
	$tbl_name="Kunden";
	mysql_connect("$host","$username","$password");
	mysql_select_db($dbname);
	$sql = "INSERT INTO $tbl_name (UserID, Firma, Nachname,Vorname, Seriennummer, DatumAktiv, DatumEndAktiv, Lizenz) VALUES ('$Userid','$Firma','$Nachname','$Vorname','$Seriennummer','$DatumAktiv','$DatumEnd','$Lizenz')";
	mysql_query($sql);
	echo mysql_errno() . ": " . mysql_error(). "\n";
	mysql_close();
} elseif ($fehler == 1) {
	echo "<div align='center'><b>Seitenaufruf ung&uuml;ltig. Ein oder mehrere Parameter fehlen!</b></div>";
?>
<script language="javascript">
<!--
 function Abschicken()
 {
  document.form1.submit();
 }
 window.setTimeout("Abschicken()",2500);
//-->
</script>
<?php
}
?>
Userid <input type="text" name="Userid" value="<?php echo $Userid; ?>"<?php echo $Userid ? 'readonly':'' ?>><br>
Firma <input type="text" name="Firma" value="<?php echo $Firma; ?>"<?php echo $Firma ? 'readonly':'' ?>><br>
Nachname <input type="text" name="Nachname" value="<?php echo $Nachname; ?>"<?php echo $Nachname ? 'readonly':'' ?>><br>
Vorname<input type="text" name="Vorname" value="<?php echo $Vorname; ?>"<?php echo $Vorname ? 'readonly':'' ?>><br>
Seriennummer <input type="text" name="dpSrn" value="<?php echo $Seriennummer; ?>"<?php echo $Seriennummer ? 'readonly':'' ?>><br>
Datum Aktiv <input type="text" name="DatumAktiv" value="<?php echo $DatumAktiv; ?>"<?php echo $DatumAktiv ? 'readonly':'' ?>><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv" value="<?php echo $DatumEnd; ?>"<?php echo $DatumEnd ? 'readonly':'' ?>><br>
Lizenz PC <input type="text" name="Lizenz" value="<?php echo $Lizenz; ?>"<?php echo $Lizenz ? 'readonly':'' ?>><br>
</div>
</form>
</body>
</html>
 
Also hab nochmal Drüber nachgedacht, will die Seite aufrufen und Parameter selber übergeben.
Das heisst ich such einfach ne Lösung die selber abschickt ohne Tastendruck wer eine Idee hat ob das so auch funktioniert oder nicht der könnte mir einen Tipp geben Danke Tombe für deine Skripts. Nur meinem Chef passt das nicht :/
 
Ja, ja die Chefs.

Die Angaben in die Adresszeile des Browsers eingeben geht definitiv nicht! Beim Absenden des Formulars werden immer die Daten gesendet die im Formular selber stehen. Das ist auch der Grund warum bei dir immer alles gelöscht/überschrieben wurde.

Es gibt eigentlich 3 Lösungen (zumindest fallen mir nicht mehr ein):

1) Das Toll ruft die Seite mit allen erforderlichen Paramteren auf. Vor dem Aufruf der Seite könnte dann bereits das Toll die Vollständigkeit der Angaben prüfen.

2) Die Seite wird mit einigen oder auch keinen Parameter aufgerufen. Die Textfelder sind nicht gesperrt und fehlende Angaben können noch gemacht werden. Da hier nicht sicher ist wann die Eingabe fertig ist, würde ich hierbei eine Checkbox ins Formular aufnehmen und die Seite ruft sich dann so lange selber auf bis durch markieren dieser Checkbox bestätigt wird das die Eingabe abgeschlossen ist. (Beispiel folgt gleich)

3) Das Tool übermittelt die Daten direkt an die Datenbank. Es gibt im Netz auch einen ODBC Treiber für VB.net und mysql.
 
So, der nächste Versuch.

Jetzt wird beim Aufruf der Seite zunächst geprüft ob alle Angaben vorhanden sind, wenn nicht wird ein entsprechender Fehlertext ausgegeben.
Die Felder sind freigegeben und können noch gefüllt oder verbessert werden. Sind alle Angaben erfasst klickt man die Checkbox an und die Daten werden gespeichert. Das erneute Aufrufen der Seite ist ab da beendet und die Felder sind gesperrt.

PHP:
<html>
<head>
</head>
<body>
<form action="formular.php" method="GET" name="form1">
<div align="right"/>
<?php
if (!isset($_GET["Userid"]) or trim($_GET['Userid']) == ""){
    $fehler = 1;
} else $Userid = $_GET["Userid"];

if (!isset($_GET["Firma"]) or trim($_GET['Firma']) == ""){
    $fehler = 1;
} else $Firma = $_GET["Firma"];

if (!isset($_GET["Nachname"]) or trim($_GET['Nachname']) == ""){
    $fehler = 1;
} else $Nachname = $_GET["Nachname"];

if (!isset($_GET["Vorname"])or trim($_GET['Vorname']) == ""){
    $fehler = 1;
} else $Vorname = $_GET["Vorname"];

if (!isset($_GET["dpSrn"]) or trim($_GET['dpSrn']) == ""){
    $fehler = 1;
} else $Seriennummer = $_GET["dpSrn"];

if (!isset($_GET["DatumAktiv"])or trim($_GET['DatumAktiv']) == ""){
    $fehler = 1;
} else $DatumAktiv = $_GET["DatumAktiv"];

if (!isset($_GET["DatumEndAktiv"]) or trim($_GET['DatumEndAktiv']) == ""){
    $fehler = 1;
} else $DatumEnd = $_GET["DatumEndAktiv"];

if (!isset($_GET["Lizenz"]) or trim($_GET['Lizenz']) == ""){
    $fehler = 1;
} else $Lizenz = $_GET["Lizenz"];

if ($fehler == 0) {
    $host="localhost";
    $username="david";
    $password="a";
    $dbname="ABMC-Datenbank";
    $tbl_name="Kunden";
    mysql_connect("$host","$username","$password");
    mysql_select_db($dbname);
    $sql = "INSERT INTO $tbl_name (UserID, Firma, Nachname,Vorname, Seriennummer, DatumAktiv, DatumEndAktiv, Lizenz) VALUES ('$Userid','$Firma','$Nachname','$Vorname','$Seriennummer','$DatumAktiv','$DatumEnd','$Lizenz')";
    mysql_query($sql);
    echo mysql_errno() . ": " . mysql_error(). "\n";
    mysql_close();
} elseif ($fehler == 1) {
    echo "<div align='center'><b>Seitenaufruf ung&uuml;ltig. Ein oder mehrere Parameter fehlen!</b></div>";
}
if (!isset($_GET['AngabenVorhanden'])) {
?>
<script language="javascript">
<!--
 function Abschicken()
 {
  document.form1.submit();
 }
 window.setTimeout("Abschicken()",2500);
//-->
</script>
<?php
} else {
	$Userid = $_GET["Userid"];
	$Firma = $_GET["Firma"];
	$Nachname = $_GET["Nachname"];
	$Vorname = $_GET["Vorname"];
	$Seriennummer = $_GET["dpSrn"];
	$DatumAktiv = $_GET["DatumAktiv"];
	$DatumEnd = $_GET["DatumEndAktiv"];
	$Lizenz = $_GET["Lizenz"];

	$host="localhost";
	$username="david";
	$password="a";
	$dbname="ABMC-Datenbank";
	$tbl_name="Kunden";
	mysql_connect("$host","$username","$password");
	mysql_select_db($dbname);
	$sql = "INSERT INTO $tbl_name (UserID, Firma, Nachname,Vorname, Seriennummer, DatumAktiv, DatumEndAktiv, Lizenz) VALUES ('$Userid','$Firma','$Nachname','$Vorname','$Seriennummer','$DatumAktiv','$DatumEnd','$Lizenz')";
	mysql_query($sql);
	echo mysql_errno() . ": " . mysql_error(). "\n";
	mysql_close();
}
?>
Userid <input type="text" name="Userid" value="<?php echo $Userid; ?>"<?php echo @$_GET["AngabenVorhanden"]; ?>><br>
Firma <input type="text" name="Firma" value="<?php echo $Firma; ?>"<?php echo @$_GET["AngabenVorhanden"]; ?>><br>
Nachname <input type="text" name="Nachname" value="<?php echo $Nachname; ?>"<?php echo @$_GET["AngabenVorhanden"]; ?>><br>
Vorname<input type="text" name="Vorname" value="<?php echo $Vorname; ?>"<?php echo @$_GET["AngabenVorhanden"]; ?>><br>
Seriennummer <input type="text" name="dpSrn" value="<?php echo $Seriennummer; ?>"<?php echo @$_GET["AngabenVorhanden"]; ?>><br>
Datum Aktiv <input type="text" name="DatumAktiv" value="<?php echo $DatumAktiv; ?>"<?php echo @$_GET["AngabenVorhanden"]; ?>><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv" value="<?php echo $DatumEnd; ?>"<?php echo @$_GET["AngabenVorhanden"]; ?>><br>
Lizenz PC <input type="text" name="Lizenz" value="<?php echo $Lizenz; ?>"<?php echo @$_GET["AngabenVorhanden"]; ?>><br>
Alle Angaben vorhanden <input type="checkbox" name="AngabenVorhanden" value="readonly"<? echo ($_GET['AngabenVorhanden'] == "readonly") ? 'checked':''?>/>
</div>
</form>
</body>
</html>
 
Na dann schau ob dir die obige Lösung gefällt.

Wobei ich eigentlich sagen muss das die ODBC Lösung die bessere wäre. Natürlich vorausgesetzt die Datenbank befindet sich bei dir auf dem Rechner.
Wenn die DB im Netz steht, dann ist der Aufruf über den Browser natürlich pflicht.
 
Die db bleibt bei mir :) Vielen Dank ich schau mir jetz noch die dritte Lösung an die Zweite hab ich gesehn und hab da gleich noch was ausgebessert
nach <?php gleich mal
Code:
 $Userid ="";
$Firma = "";
$Nachname = "";
$Vorname = "";
$Seriennummer = "";
$DatumAktiv = "";
$DatumEnd = "";
$Lizenz = "";
Damit das undefinierte Variable gleich weg ist ;)
Ansonsten google ich ma und gugg was ich darüber noch so Rausfinde Vielen Dank erstmal Tombe du hast mir sehr geholfen. :)
 
Zurück