kostenloser Webspace werbefrei: lima-city


Senden_von_input

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    swissminecraftserver

    Kostenloser Webspace von swissminecraftserver

    swissminecraftserver hat kostenlosen Webspace.

    Moin

    Ich habe da ein kleine Problem,
    ich nehme als Beispiel ein Kleines Formular:
    <html>
    
    <header>
    
    
    </header>
    
    
    <body>
    <form method="post" action="die andere website.lima-city.de">
    
    <input type="text" name="p" value="">
    <input type="text" name="u" value="">
    <input type="submit" value="Senden">
    
    </body>
    </html>


    So nun ist das auf einer anderen Website und das andere was die Daten empfängt nicht auf der gleichen Website.
    Wie kann ich jetzt machen das das die andere Website auch bekommt?
    Geht das evt. mit get???


    Lg swissmcs





    Beitrag zuletzt geändert: 10.7.2012 23:30:16 von swissminecraftserver
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Verstehe das grad nicht ganz aber ich Versuch mal zu helfen.

    - Wenn du auf dieserWebseite.html ein Formular hast, welches die method='GET', action='andereWebseite.php' und deine inputs.
    - Angenommen du sendest die Daten (submit), dann rufst du lediglich in deinem Browser auf '[...]andereWebseite.php?p=value&u=value.
    - andereWebseite.php kann diese Daten dann natürlich einfach GETen.

    Ob dies so einfach mir POST funktioniert kann ich dir atm leider nicht sagen..

    Beitrag zuletzt geändert: 10.7.2012 23:37:48 von copynpaste
  4. Autor dieses Themas

    swissminecraftserver

    Kostenloser Webspace von swissminecraftserver

    swissminecraftserver hat kostenlosen Webspace.

    Also es ist eine völlig andere Website nicht bei lima.city...
    Könntest du mal den Code posten?
    Weiss nicht wie das mit dem "Get'en" geht


    Vielen dank
  5. method="POST"
    Bedeutet. dass die Daten im Header übergeben werden (im Prinzip beim normalen Surfen nicht sichtbar, aber kann aber ganz einfach ausgelesen werden, bringt also nicht ein bischen Sicherheit!!)

    method="GET"
    Bedeutet dass die Daten im URL übergeben werden (beginnend nach dem Fragezeichen, als Beispiel: url.de?p=wert1&u=wert2)

    Nun zu deinem Code (wir bleiben bei POST und ja auch POST ist über 2 Seiten möglich..):

    Dokument1:
    <form method="post" action="die andere website.lima-city.de">
    
    <input type="text" name="p" value="">
    <input type="text" name="u" value="">
    <input type="submit" value="Senden">
    </form> <!-- hast du vergessen -->


    Dokument2 (die andere Website..):
    <?php
    
    // Für .. method="POST" ..
    echo $_POST['p']."<br>
              ".$_POST['u'];
    
    
    // Für .. method="GET" ..
    echo $_GET['p']."<br>
              ".$_GET['u'];
    ?>



    Ich hoffe ich konnte helfen!

    Gute Nacht :sleep:


    // Edit:
    Es gibt viele Sicherheitsrisiken bei solchen Eingaben. Zum Beispiel könnte bei diesem einfachem Formular ein HTML-Code eingebaut werden oder soga Javascript, dieser könnte (z.B. in einem Gästebuch, ohne Sicherung) deine komplette Seite verändern, lahm legen usw.

    htmlspecialchars($_POST['name']); // verhindert das benutzen von HTML, bzw. Scripteinbindungen
    mysql_real_escape_string($_POST['name']); /* dies brauchst du bei Datenbanken, nur so als kleiner Tipp, 
    damit du (wenn es soweit ist, danach mal googlest. Ist echt wichtig!!! */


    Beitrag zuletzt geändert: 11.7.2012 0:13:06 von fabi755
  6. Hallo

    würde auf der Seite, die empfangen soll noch prüfen, ob überhaupt Eingabe erfolgt ist
    bzw. ob das Formular (bzw einzelne Felder) leer (ohne Eingabe) abgesendet wurde

    einfaches Beispiel
    <?php
    
    if ( !empty($_POST['p']) && !empty($_POST['u']) ) { 
    
    // ---- je nach Bedarf die Eingabe-Strings escapen / filtern / säubern ---- 
    $data_p = trim(chop($_POST['p'])); 
    $data_p = strip_tags($data_p); 
    $data_p = stripslashes($data_p); 
    $data_p = htmlspecialchars($data_p); 
    
    $data_u = trim(chop($_POST['u'])); 
    $data_u = strip_tags($data_u); 
    $data_u = stripslashes($data_u); 
    $data_u = htmlspecialchars($data_u); 
    
    $ausgabe = "<br /> Feld p hat den Inhalt: ".$data_p." und Feld u hat den Inhalt: ".$data_u."\n"; 
    }
    else { 
    // ---- wenn min. eines der beiden Eingabe-Felder leer war ---- 
    $ausgabe = "<br /> Bitte alle Felder im Formular ausf&uuml;llen ...  <a href=\"javascript:history.back()\">zur&uuml;ck</a> \n"; 
    }
    
    echo $ausgabe; 
    
    ?>


    das geht auch noch differenzierter, also einzeln prüfen, welches Feld jetzt "leer" war
    oder auch ob der Eingabe-String bestimmte Bedingungen erfüllt (z.B. nur Zahlen erlauben, etc)

    aber als einfaches Beispiel sollte es so genügen. Es soll ja nur zeigen,
    dass man die POST oder GET Variablen möglichst vor der weiter-Verarbeitung
    prüfen und filtern (escapen / säubern) soll, damit man nur mit "sinnvollen" EIngaben weiter macht

    besonders wenn man die Daten dann auch speichern will, ist escapen (säubern) wichtig,

    und wie fabi755 schon gesagt hat
    vor Speichern in MySQL sollte man User-Eingaben immer mit mysql_real_escape_string() filtern
    dazu sollte aber die DB-Vernindung schon bestehen, damit mysql_real_escape_string richtig funktioniert
    also damit gleich im richtigen Zeichensatz escaped wird.

    aber auch beim Speichern in Datei kann es sein, dass bestimmte Zeichen Probleme machen,
    wenn es z.B. im CSV Format gespeichert werden soll, dann vorher Zeilenumbrüche raus-filtern
    und ggf auch das Spalten-Trenner-Zeichen, wenn Spalten ohne Enclosure gespeichert werden
    oder enclosure-Zeichen aus String filtern, wenn mit Enclosure gespeichert werden soll.

  7. Autor dieses Themas

    swissminecraftserver

    Kostenloser Webspace von swissminecraftserver

    swissminecraftserver hat kostenlosen Webspace.

    Als wenn ich es mit "GET" benutze muss ich dann bei <form method="post"... <form method="get"....<input type="text" name="p" value=""> reinschreiben?
    Und dann bein URL:
    blabla.de?p=wert1&u=wert2

    oder muss ich da:
    echo $_GET['p']."<br>
    ".$_GET['u'];
    ?>


    lg swissmcs
  8. form.html:
    <form action='andereSeite.php' method='GET'>


    (= http://....andereSeite.php?p=value&u=value)

    andereSeite.php:
    echo $_GET['u']." ".$_GET['p'];
  9. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    copynpaste schrieb:
    andereSeite.php:
    echo $_GET['u']." ".$_GET['p'];
    Und so sollte man es nicht machen...

    So würde es gehören:
    echo(htmlentities("{$_GET['u']} {$_GET['p']}"));
    Ansonsten ist das nicht gegen Cross-Site-Scripting geschützt.


    tags schrieb:
    // ---- je nach Bedarf die Eingabe-Strings escapen / filtern / säubern ---- 
    $data_p = trim(chop($_POST['p'])); 
    $data_p = strip_tags($data_p); 
    $data_p = stripslashes($data_p); 
    $data_p = htmlspecialchars($data_p);
    Noch mehr Mist kann ja schon gar nicht erzählt werden...

    strip_tags kannst du dir sparen, da htmlspecialchars sowieso schon veranlasst, dass Tags ausgegeben werden ohne ausgeführt zu werden.

    stripslashes ist sogar gefährlich, da nicht immer Magic Quotes (die längst schon veraltet sind) aktiviert sind und wenn sie nicht aktiviert sind lassen sich damit alle anderen Prüfungen bis dort hin umgehen!

    tags schrieb:
    aber auch beim Speichern in Datei kann es sein, dass bestimmte Zeichen Probleme machen,
    wenn es z.B. im CSV Format gespeichert werden soll, dann vorher Zeilenumbrüche raus-filtern
    und ggf auch das Spalten-Trenner-Zeichen, wenn Spalten ohne Enclosure gespeichert werden
    oder enclosure-Zeichen aus String filtern, wenn mit Enclosure gespeichert werden soll.
    Schon vergessen wie CSV funktioniert? Es gibt kaum ein Zeichen das nicht erlaubt ist.... denn selbst
    "
    und Zeilenumbrüche können gespeichert werden.
    Wenn du es nicht glaubst: mach dir mit Excel eine Tabelle mit Zeilenumbrüchen, Anführungszeichen und sonst was und speicher es als CSV. Dann betrachtest du dieses und merkst dir das Ergebnis!
    Wenn also CSV richtig gespeichert wird müssen sowieso die Daten "formatiert" werden, und dabei sollten sie nicht vorher schon durch sinnlose "Filterung" "verpfuscht" worden sein.

    @TE:
    GET wird übrigens niemals für Passwörter o.ä. verwendet, da die sonst in der Adresszeile des Browsers zu finden wären...
  10. hackyourlife schrieb:
    Und so sollte man es nicht machen...


    - Weiß ich.
    - Warum soll ich wiederholen, was andere vorher schon erklärt haben, zusammenführen sollte der TE selber können.
    - Hab nur kurz und knapp auf seine letzte Frage geantwortet, weil er verwirrt war.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!