# Wie kann ich ein Textfeld in PHP erzeugen



## chelzyfire (6. Januar 2005)

Also ich habe mir eine PHP page gemacht, die ein Registerierungsformular darstellen soll. Das Problem ist nur, damit die vom User einegeben Daten an meine Datenbank gesendet werden können, muss ich die Textfelder mit Variablen belegen. Leider weiß ich nur, wie man textfelder in html erzeugt und nicht in PHP.
Kann mir einer Helfen?

Hier mal eine Übersicht:


```
<? include("register_sql.php"); ?>
<html>
<head>
       <title>Registrieren</title>
</head>
<body>
   <?php
      $nickname=TEXTFELD;
      $kennwort=PASSWORT TEXTFELD;
      $nachname=TEXTFELD;
      $vorname=TEXTFELD;
   ?>
</body>
</html>
```


----------



## chpa (6. Januar 2005)

Genauso wie mit HTML...

Nur das vor den Anführungszeichen immer ein Backslash stehen muss.

Also so:

\"


----------



## Blaubmania (6. Januar 2005)

Kannst auch in deinem PHP Code einfach mit echo html code ausgeben dieser muss dann in hochkomma stehen siehe unten:


```
echo ' html-code ' ;
```


----------



## Kerwin (6. Januar 2005)

Ganz genauso wie auch in html.

```
<?
echo'<input type="text" name="username">';
?>
```
Du kannst das Formular aber auch in ganz normalen HTML schreiben und dann an ein PHP Script schicken

[edit]
gleich so viele auf einmal^^

@chpa
Das ist nicht ganz richtig, es kommt darauf an wie du den String beginnst, entweder mit einem einfachen Anführungszeichen oder mit einem doppelten. Ich persöhnlich bevorzuge immer den einfachen damit ich \" nicht machen muss wie man an meinem codeschnipsel sieht


----------



## snadra (6. Januar 2005)

Hallo,

Du mußt das Textfeld auch als HTML erzeugen. Schließlich wird PHP Serverseitig ausgeführt. Der Client (Dein Browser) empfängt nur das HTML/JavaScript etc.
So frägst Du ein Formular ab:


forumlar.Php:<?php

$ausgabe = 'Es wurde noch kein Formular mit Textfeld abgeschickt<br>Aber fülle es doch aus:<br>';
// Hier sehen wir nach ob ein Feld (oder textarea oder was auch immer)
// mit dem Namen 'textfeld' über POST versandt wurde
if ($_POST['textfeld']) {
$ausgabe = "Das wurde abgeschickt. Im Textfeld stand:<br>$_POST['textfeld']";
}
?>
<html>
<head>
<title>Dein Formular mit Textfeld</title>
</head>
<body>
<?php echo $ausgabe; ?>
<form action='formular.php' method='post'>
<textarea name='textfeld' rows='5' cols='40'></textarea>
<input type='submit' value='abschicken'>
</form>
</body>
</html>
​Mehr Infos auf http://www.php.net


----------



## chelzyfire (6. Januar 2005)

hmm...dat mit dem textfeld klappt schon, aber wenn ich das als variable definiere:


```
<?php
      $nickname = echo'<input type="text" name="nickname">';
      $kennwort = echo'<input type="password" name="kennwort">';
      $nachname = echo'<input type="text" name="nachname">';
      $vorname = echo'<input type="text" name="vorname">';
   ?>
```

Dann bekomme ich immer den Error:

Parse error: parse error, unexpected T_ECHO in....on line....


----------



## Blaubmania (6. Januar 2005)

das geht ja auch nicht ^^ du musst erst mal ein Formular mit echo erstellen dann wenn derjenige auf den OK Button klickt kannst du mit $_POST oder $_GET den Wert der im Textfeld steht in der Variablen speichern.


```
echo '<form name="form1" action="index.php" method="post">
<input type="text" name="nickname">
</form>';
$nickname=$_POST['nickname']
```
 
so z.B. hatte jetzt keine Lust alles vorzuschreiben ^^


----------



## Kerwin (6. Januar 2005)

chelzyfire hat gesagt.:
			
		

> hmm...dat mit dem textfeld klappt schon, aber wenn ich das als variable definiere:
> 
> 
> ```
> ...



Was willst du denn machen? Du kannst einer Variable doch keine echo Anweisung zuweisen. Schaue dir doch mal den Text von snadra an. Das ist eine möglichkeit wie das funktioniert


----------



## redlama (6. Januar 2005)

Das muss auch so heißen:
	
	
	



```
<?php 
  $nickname = echo'<input type=\"text\" name=\"nickname\">'; 
  $kennwort = echo'<input type=\"password\" name=\"kennwort\">'; 
  $nachname = echo'<input type=\"text\" name=\"nachname\">'; 
  $vorname = echo'<input type=\"text\" name=\"vorname\">'; 
?>
```

redlama


----------



## Kerwin (6. Januar 2005)

redlama hat gesagt.:
			
		

> Das muss auch so heißen:
> 
> 
> 
> ...



Was soll das denn werden? ^^
2 Fehler drin.

1. Du kannst kein echo einer Variable zuweisen

und 2. Nein, du brauchst keine \" setzten wenn du es nur mit normalen ' machst. Wenn du das machst, hast du nachher in der html ausgabe das zu stehen

```
<html>
  <body>
    ......
    <input type=\"text\" name=\"nachname\">   
  </body>
</html>
```


----------



## chelzyfire (6. Januar 2005)

Also...es soll am Ende eine Registrierung darstellen. Die Daten, die der User in den textfeldern eingetragen hat, sollen nachher in eine SQL datenbank eingetragen werden.

@snadra:
Wie soll ich denn dann das formular.php machen, sodass die daten an die datenbank gesendet werden


----------



## redlama (6. Januar 2005)

@Kerwin: Da hast Du recht. Da hatte ich wohl eben einen ziemlichen Knoten im Gehirn, ... ;-)
Ok, dann muss es halt nur so heißen:
	
	
	



```
<form name="form" action="speichern.php" method="post">
<?php
  echo'<input type="text" name="nickname">';
  echo'<input type="password" name="kennwort">';
  echo'<input type="text" name="nachname">';
  echo'<input type="text" name="vorname">';
  echo'<input type="submit" name="senden" value="speichern">';
?>
</form>
```
Und wenn dann die Daten gespeichert werden sollen (Das macht sicher ein anderes Script), dann brauchst Du nur noch die Werte aus $_POST["nickname"] & Co. in die Datenbank zu speichern.

redlama


----------



## chelzyfire (6. Januar 2005)

ja...thx...das klappt schonmal...

Nur wie sage ich, dass die einzelnen angaben auch nachher in der Datenbank gespeichert werden? irgendwie muss ich doch dann die textfelder als variablen machne oder


----------



## Kerwin (6. Januar 2005)

@redlama , hat jeder mal



			
				chelzyfire hat gesagt.:
			
		

> ja...thx...das klappt schonmal...
> 
> Nur wie sage ich, dass die einzelnen angaben auch nachher in der Datenbank gespeichert werden? irgendwie muss ich doch dann die textfelder als variablen machne oder



Ließt du dir denn die Posts nicht richtig durch? 
Wenn du auf OK klickst, wird das formular von redlama an das script speichern.php geschickt. 
In diesem Script brauchst du dann nur noch echo $_POST['nickname'] machen und du hast eine ausgabe. Du brauchst die Variablen nicht extra neu deklarieren. Schau dir doch mal den Post von snadra an, da steht doch eigentlich schon alles drin wie man mit den Daten weiter arbeitet. Jetzt machst du noch ne DB und knallst die da rein. Vielleicht solltest du dir mal ein Tutorial durchlesen bevor wir jetzt hier alles auseinandernehmen.


Ein Schönes Tutorial findest du hier
http://www.schattenbaum.net/php/


----------



## redlama (6. Januar 2005)

Nein, musst Du nicht. Im meinem Beispiel würdest Du ein Formular habe, in dem Du die Daten eingibst. Diese werden dann an die "speichern.php" übergeben und da machst Du dann einfach Dein Insert bzw. Update Befehl für die Datenbank. Bsp.:
	
	
	



```
"insert into tabelle set nickname='".$_POST["nickname"]."', passwort='".$_POST["kennwort"]."', ...
```

redlama


----------



## chelzyfire (6. Januar 2005)

Danke Leuz

Dank euren tollen Hilfe hab ich es hinbekommen 

Thx for all


----------

