Mit PHP in ein Textfeld eines HTML-Eingabeformular schreiben

Alles, was PHP betrifft, kann hier besprochen werden.

Mit PHP in ein Textfeld eines HTML-Eingabeformular schreiben

Postby Bänne » 07. February 2006 17:23

Howdy *.*,

Newby in PHP und gleich ein Prob.:
Ich ermittle mit PHP die IP-Adresse eines Besuchers OK, aber wie schreibe ich nun die IP-Adresse in ein Textfeld eines HTML-Eingabeformulars, damit wenn der Besucher auf "Bestellen" klickt ich u.a. seine IP-Adresse per eMail erhalte? Dank im Voraus :)

MfG Bänne
Bänne
 
Posts: 3
Joined: 07. February 2006 17:14

Postby KingCrunch » 07. February 2006 18:27

In ein Textfeld, damit er die IP auch gleich ändern kann ;)
Besser wäre es, wenn du die mail um die IP-Adresse ergänzt, wenn der Nutzer auf "abschicken" klickt. Ansonsten:
Code: Select all
<input type="text" value="<?php echo $ip; ?>">

So, oder so ähnlich, je nachdem, wie du dein script aufgebaut hast.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Bänne » 07. February 2006 19:20

Danke KingCrunch,

Das Textfeld ist natürlich "hidden". Werd es gleich mal ausprobieren :)

MfG Bänne
Bänne
 
Posts: 3
Joined: 07. February 2006 17:14

Postby KingCrunch » 07. February 2006 19:22

Das es "hidden" ist, interessiert eher zweitrangig, weil der potentielle Angreifer trotzdem sehr schnell durch Manipulationen des Quelltextes den Eintrag fälschen kann.
Geht ziemlich einfach:
- Seite lokal speichern
- "rumfuschen"
- aufrufen
- abschicken

Also, wenn du damit ein ernsthaften Shop aufmachen willst, dann rat ich dir von derartigen Flickwerk unbedingt ab.

Also grobe Richtlinie kann man sagen: Je weniger Daten du vom Client erhälst, desto weniger Daten musst du prüfen, desto sicherer. Oder wie mein alter Informatiklehrer zu sagen pflegte: Alles, was von aussen kommt, ist erstmal unsicher und fälschbar ;)
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Bänne » 08. February 2006 13:41

Danke für den Hinweis :) ich habe das gerade nachgestellt, es wird immer nur das HTML der Framesseite angezeigt und nicht das HTML der Bestellseite in welcher der PHP-Code sitzt. Ich werde aber die Bestellseite zum Schutz verschlüsseln.
Im übrigen funzt jetzt alles zu meiner Zufriedenheit. Ich zeige dem Kunden momentan noch seine IP-Adresse an, überleg mir aber gerade "Was man nicht weiß, macht einen nicht heiß".

MfG Bänne
Bänne
 
Posts: 3
Joined: 07. February 2006 17:14

Postby KingCrunch » 08. February 2006 15:00

ich habe das gerade nachgestellt, es wird immer nur das HTML der Framesseite angezeigt und nicht das HTML der Bestellseite in welcher der PHP-Code sitzt.

Der php-Code sitzt so oder so in keiner übertragenen html-seite :p Und frames lassen sich auch sehr schnell auflösen: FireFox->RechteMausTaste->Frames->Nur diesen Frame zeigen (oder so)... Also das ist kein Garant.
Ich werde aber die Bestellseite zum Schutz verschlüsseln.

Sie wird aber unverschlüsselt beim Client angezeigt ;) sonst wirdse garnich angezeigt.

Also, wie gesagt: Unliebsamen Besuchern öffnest du damit Tür und Tor.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Kev » 08. February 2006 16:39

KingCrunch wrote:
Code: Select all
<input type="text" value="<?php echo $ip; ?>">

-Viel zu umständlich. :lol:


So is bessa:
Code: Select all
<input type="text" value="<?=$ip;?>">
User avatar
Kev
 
Posts: 269
Joined: 09. October 2004 13:25
Location: NRW/Hamm

Postby KingCrunch » 08. February 2006 22:38

So is genau das gleiche :p
Wobei letztes nichma sicher gestellt ist.
Zudem müsste es laut Manual so heißen
Code: Select all
<input type="text" value="<%=$ip;%>">

Und zudem müssen dafür aps_tags aktiviert sein, was auch nich immer so ist, bzw immer so gewünscht wird ;)

Im Großen und Ganzen würd ich eher immer bei einem Stil bleiben und das wäre
Code: Select all
<?php ... ?>
, da dieser immer verfügbar und immer korrekt ist und letzten Endes am wenigstens zu Verwirrung führt, wenn man bei einem Stil bleibt ;)
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby M3g4Star » 10. February 2006 11:49

*jupp* ... ich mach's auch immer so

Code: Select all
<?php ..... ?>
User avatar
M3g4Star
 
Posts: 145
Joined: 25. January 2006 07:46
Location: München

Postby Knight1 » 14. February 2006 10:36

Wenn bei Deiner LAMPP-Installation die Superglobalen Variablen aktiviert sind gibt es noch die Möglichkeit mit der Variable $_SERVER['REMOTE-ADRESS'] zu arbeiten. Diese kannst Du in jeder Script-Datei neu abfragen ohne die IP-Adresse per HIDDEN-Feld übergeben zu müssen.

Wie schon KingCrunsh sinngemäß sagte/schrieb: Um so weniger Du an Clientdaten über das Formular abfragst/bekommst, um so besser.


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby Quäntchen » 17. March 2006 22:37

Speicher die Ip-Adresse doch einfach in einer Session. Dann kann der Besucher die Seite nicht mehr lokal bearbeiten und rumfuschen, weil die IP des Besuchers unter den temporären Dateien deines Servers gespeichert wird. ;)

Code: Select all
<?php
session_start();
//es wird eine Variable '$ip' erstellt, bis jetzt ist sie noch leer
session_register(ip);
//nun wird die Variable initialisiert
$ip = $_SERVER['REMOTE_ADDR'];
?>
<html>
<head>
...
?>


Dann sieht die Datei, in der Daten für die Mail benötigt werden, so aus:

Code: Select all
<?php
session_start();
//als Beispiel, dass die Variable existiert
echo $ip;
//und am Ende zerstoerst du die Session
session_destroy();
?>



Man braucht also die Variable in der zweiten Datei gar nich erst neu initialisieren.
Quäntchen
 
Posts: 27
Joined: 27. December 2005 10:02


Return to PHP

Who is online

Users browsing this forum: No registered users and 2 guests