Java Script Values nicht an Datenbank übergeben!

Steffen Giers

Erfahrenes Mitglied
Servus ich bins nochmal. Ich habe noch ne Frage bezüglich eines Formulars.

Folgendes Problem:

Ich habe ein Formular, mit dem ich mittels PHP eintragungen, in eine Datenbank vornehmen kann. Funktioniert alles Super.

Allerdings sind in dem Formular Values bereits vorgegeben. Im Feld: Vorname steht "Vorname" usw., beim Klick ins Feld verschwindet der Text und wenn keine Eingaben gemacht worden sind steht wieder "Vorname" drin. JS halt.

Wenn ich jetzt ,sei es Ausversehen oder mit Absicht, den Senden Button betätige überträgt er ja logischerweise die Vorgaben in die Datenbank. Und genau das soll er nicht.

Hier mal das PHP Script:

PHP:
<?php
// db zugangsdaten
$db_server  = 'localhost';
$db_user    = 'root';
$db_passwd  = '';
$db_name    = 'v157203';

// verbindung zur db herstellen
$db = mysql_connect ($db_server, $db_user, $db_passwd) or die (mysql_error());

// db auswählen
mysql_select_db ($db_name, $db);

$login = $_POST[username];

if (isset($eintragen)) {
   if (isset($vorname, $nachname, $username, $login, $pwd, $email)){
      mysql_query
      ("INSERT INTO users
         (vorname, nachname, username, login, pwd, email)
      VALUES (
         '$vorname',
         '$nachname',
         '$username',
         '$login',
         '$pwd',
         '$email')");
      $meldung ="User erfolgreich eingefügt!";   
   } else {
      $meldung = "Bitte alle Felder ausfüllen";
   }
}
?>


Und hier das Formular:

HTML:
<form   class="anmeldung" 
	action="<?=$_SERVER['PHP_SELF']?/>" 
	method="post">
<fieldset>
<label>Vorname</label>
<input  type="text"
	name="vorname"
	value="Vorname"
	onblur="if(this.value=='') this.value='Vorname';"
	onfocus="if(this.value=='Vorname') this.value='';" />
	
<label>Nachname</label>
<input 	type="text" 
	name="nachname" 
	value="Nachname" 
	onblur="if(this.value=='') this.value='Nachname';" 
	onfocus="if(this.value=='Nachname') this.value='';" />
	
<label>Username</label>
<input 	type="text" 
	name="username" 
	value="Username" 
	onblur="if(this.value=='') this.value='Username';" 
	onfocus="if(this.value=='Username') this.value='';" />
	
<label>Passwort</label>
<input 	type="text" 
	name="pwd" 
	value="Passwort" 
	onblur="if(this.value=='') this.value='Passwort';" 
	onfocus="if(this.value=='Passwort') this.value='';"/>
	
<label>Email</label>
<input 	type="text" 
	name="email" 
	value="Email" 
	onblur="if(this.value=='') this.value='Email';" 
	onfocus="if(this.value=='Email') this.value='';"/ >
	
<label>&nbsp;</label>
<input 	class="button" 
	name="eintragen" 
	type="submit" 
	value="Senden">
</fieldset>
</form>

Beides ist in einer Datei.


Ich könnte doch eigentlich im Script festlegen das wenn z.b. die Variable: $vorname = Vorname ist eine Fehlermeldung kommt à la : Bitte einen Vornamen angeben.

So würde ich jetzt an die Sache rangehen.

Beste Grüße
Steffen
 
Zuletzt bearbeitet:
Du könntest auch ein Hidden Feld einführen in das JS true schreibt wenn der Benutzer sich durch dein ganzes Formular geklickt hat, oder Du lässt js gleich überprüfen ob der Benutzer das Feld überhaupt geändert hat. Also ob in dem input immernoch Vorname drinsteht.

bei der ersten Methode kannste halt ned sichersein ob ers wirklich geändert hat.
bei der zweiten schon. :-) Natürlich kannst Du die Überprüfung auch in PHP durchführen. kommt ja am ende aufs selbe raus, nur das Du davon unabhängig bist das der Benutzer JS überhaupt an hat.

PHP:
function isValid($valid,$toCompare){
if($valid==$toCompare){
return true;
}else{
return false;
}

oder mittels der Funktion in php da übergibst du einfach den einen String und den Wert der den String haben soll :-)
kannst es natürlich auch gleich so prüfen :-)
 
Zuletzt bearbeitet:
PHP:
$vorgabe_vorname = "Jürgen";

if (isset ($_POST['vorname']) && !empty ($_POST['vorname']) && $_POST['vorname'] != $vorgabe_vorname) {
  echo 'Supi';
}
else {
  echo '... <input type="text" name="vorname" value="'.$vorgabe_vorname.'">...';
}
So würd ich es machen - hab nämlich mal von so Leuten gehört die kein JS haben / es nicht benutzen :eek:
 
Also JS fällt definitiv, aus dem genannten Grund, aus. Wenn JS deaktiviert ist und keine Values drin stehen kann ich damit Leben. ;)

@_voodoo

Ja so ähnlich dachte ich mir das auch. Das könnte man doch auch in ein Array packen um alle Felder zu prüfen, oder besser ich setzt die Values in ne Variable und lass prüfen ob ein Wert der Variable zutrifft oder nicht...
 
Dann brauchst es aber auch nich überprüfen wenns aus ist ;-)
wenns an ist haste ja dan die Values aber dann haste auch 100% Sicherheit das dus ab hast :-) dann kannst es auch überprüfen
 
*rofl* Da hast du natürlich auch Recht. Soweit hab ich gar nicht gedacht. Na ja wer keine Arbeit hat... ;) Thx für die Hilfe!
 
Zurück