kostenloser Webspace werbefrei: lima-city


Method POST mit mehr als 5 Variablen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    niemon

    niemon hat kostenlosen Webspace.

    Hallo...

    habe gerade ein Formular kreiert und wollte, das es bei klick auf Absenden Button alle 12 Felder, bzw Variablen, an eine andere php datei übergibt. Diese php-datei soll mir dann eine Email schicken, mit den eingegebenen Daten.. Klappt soweit auch alles... AUßER, dass immer nur 5 Variablen übergeben werden. die restlichen existieren dann nicht in der zielphp. Kann man mit diesem method="post" nur maximal 5 variablen übergeben??

    Gibt es vielleicht ne andere Variante, mit der das geht?


    MfG Matthias
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Nein, man kann mit POST definitiv mehr als 5 Variablen übergeben.

    Vielleicht postest du mal den Code von Start- und Zieldatei.
  4. worldwhiterabbit

    Kostenloser Webspace von worldwhiterabbit

    worldwhiterabbit hat kostenlosen Webspace.

    Übergeb es doch als Array

    gib deinen elementen im form den "name=form[name]"
    ...
    also :
    $form['name']
    $form['tele']
    $form['etc']


    im Script wertest du dann nur noch $form aus *
    somit ists egal wieviele formularelemente du übergibts !
  5. worldwhiterabbit schrieb: Übergeb es doch als Array
    somit ists egal wieviele formularelemente du übergibts !

    Das ist es immer.


    Achte auf Groß-/Kleinschreibung. Füge diesen Code ein, um das Post-Array zu betrachten:
    print_r($_POST);
  6. Autor dieses Themas

    niemon

    niemon hat kostenlosen Webspace.

    hier der code der 2 dateien:

    test1.php:

    <form action="test2.php" method="post">
      <table border="5" cellpadding="5" cellspacing="4">
    
    <tr><td align="right">Anzahl Karten</td><td><input name="anzahl" type="text" size="1" maxlength="1"></td></tr>
    <tr><td align="right">Email</td><td><input name="mail" type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">Passwort</td><td><input name="passwort" type="text" size="10" maxlength="110"></td></tr>
    <tr><td align="right">Anrede</td><td><input name="anrede" type="text" size="1" maxlength="1"></td></tr>
    <tr><td align="right">Vorname</td><td><input name="vorname" type="text" size="15" maxlength="15"></td></tr>
    <tr><td align="right">Nachname</td><td><input name ="name" type="text" size="15" maxlength="15"></td></tr>
    <tr><td align="right">Straße/Nr</td><td><input name: ="str" type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">PLZ/Ort</td><td><input name: ="plz" type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">Geburtstag</td><td><input name: ="tag" type="text" size="12" maxlength="12"></td></tr>


    und test2.php:

    <?php
    $empfaenger = "max@mustermann.de";
      $betreff = "Neuer Kunde";
      $text = "
    	Anzahl Karten:	$anzahl
    	Email:		$mail
    	passwort:	$passwort
    	Anrede:		$anrede
    	Vorname:	$vorname
    	Name:		$name 
    	Adresse: 	$str
    	             $plz
    	Geburtstag:	$tag
               ";
      mail($empfaenger, $betreff, $text,
           "From:blablabla <$sendermail>");
     ?>
  7. @world: Nein. Nicht überall gibt es register_global und zudem ist es ein äußerst dreckiger und unsicherer Stil!

    @niemon: Code...

    €dit: @world: Ja, so ist besser. Dennoch gibt es keinen Sinn ein Array zu erstellen ;)

    @niemon: := sollte zu = werden im HTML-Code ;)

    €dit_again: @niemon: Nutze bitte $_POST und nicht register_globals.

    Beitrag zuletzt geändert: 5.10.2009 19:56:08 von nikic
  8. Zudem sollte man sich angewöhnen, die Variablennamen sorgfältig zu wählen. $name kann gegebenenfalls auch ein Schlüsselwort in einer Programmiersprache sein und deshalb schon mal nicht funktionieren.

    Ich habe mir angewöhnt einen Präfix zu verwenden:

    $var_name
    $var_strasse
    usw...


    Ansonsten siehe nikic!!!

    Beitrag zuletzt geändert: 5.10.2009 20:04:14 von karpfen
  9. Autor dieses Themas

    niemon

    niemon hat kostenlosen Webspace.

    auch wenns jetzt wieder schläge hagelt, aber hab das noch nie gemacht mit diesem $_post.
    gibts da nen leicht verständliches Beispiel?

    JAAAAA... ich bin noch am lernen :)
  10. Erstmal korrigierter HTML-Code:
    <form action="test2.php" method="post">
      <table border="5" cellpadding="5" cellspacing="4">
    
    <tr><td align="right">Anzahl Karten</td><td><input name="anzahl" type="text" size="1" maxlength="1"></td></tr>
    <tr><td align="right">Email</td><td><input name="mail" type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">Passwort</td><td><input name="passwort" type="text" size="10" maxlength="110"></td></tr>
    <tr><td align="right">Anrede</td><td><input name="anrede" type="text" size="1" maxlength="1"></td></tr>
    <tr><td align="right">Vorname</td><td><input name="vorname" type="text" size="15" maxlength="15"></td></tr>
    <tr><td align="right">Nachname</td><td><input name="name" type="text" size="15" maxlength="15"></td></tr>
    <tr><td align="right">Straße/Nr</td><td><input name="str" type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">PLZ/Ort</td><td><input name="plz" type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">Geburtstag</td><td><input name="tag" type="text" size="12" maxlength="12"></td></tr>


    Zum Thema Post: Statt $anzahl nutzt du $_POST['anzahl']. Sieht umständlicher aus, ist es auch, aber es ist sicherer.
  11. niemon schrieb:
    auch wenns jetzt wieder schläge hagelt, aber hab das noch nie gemacht mit diesem $_post.
    gibts da nen leicht verständliches Beispiel?

    JAAAAA... ich bin noch am lernen :)

    Peeeeep! Da ist schon das erste Problem. Niemals "$_post" schreiben! Immer "$_POST". Die Anfühungszeichen sind in dem Fall nur für die Textgestaltung, nicht für die Anführungszeichen in PHP.

    Also, wenn du per post (da kann man es klein schreiben, solange kein Dollar-Zeichen davor ist) Informationen überträgst, dann landen diese Informationen in den Array $_POST. Der Schlüssel ist der selbe, wie im Formular das name= angegeben ist, der Inhalt ist der, den der User eingegeben hat.


    Weist du, was ein Array ist?



    mfg drafed-map
  12. Autor dieses Themas

    niemon

    niemon hat kostenlosen Webspace.

    was ein array ist, weiß ich schon.....

    habs jetzt eingearbeitet, aber nun krieg ich in meiner zielphp den fehler:

    "...unexpected $end ..."
  13. Und nochmal bitte diesen Code posten. Hellsehen kann nur ich und auch nur, wenn ich meine Glaskugel zur Hand habe :biggrin:
  14. aldistammkunde

    Kostenloser Webspace von aldistammkunde, auf Homepage erstellen warten

    aldistammkunde hat kostenlosen Webspace.

    niemon schrieb:
    was ein array ist, weiß ich schon.....

    habs jetzt eingearbeitet, aber nun krieg ich in meiner zielphp den fehler:

    "...unexpected $end ..."

    hi,

    generell kann man sagen, dass bei diesem (und inhaltsähnlichen, sehr viel mit "unexpected") Fehler oft eine fehlende, *schließende geschweifte Klammer* oder ein fehlendes Semikolon schuld ist; Mittlerweile gibt es genug Editoren, die dir automatisch zu einer öffnenden die passende schließende im Quelltext suchen und umgekehrt - das kann beim finden solcher Fehler sehr helfen!

    Gruß,

    Beitrag zuletzt geändert: 5.10.2009 20:44:53 von aldistammkunde
  15. Autor dieses Themas

    niemon

    niemon hat kostenlosen Webspace.

    <tr><td align="right">Anzahl Karten</td><td><input name=$_POST['anzahl'] type="text" size="1" maxlength="1"></td></tr>
    <tr><td align="right">Email</td><td><input name=$_POST['mail'] type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">Passwort</td><td><input name=$_POST['passwort'] type="text" size="10" maxlength="110"></td></tr>


    $text = "
    	Anzahl Karten:	".$_POST['anzahl']."
    	Email:		".$_POST['mail']."
    	passwort:	".$_POST['passwort']."
    	Anrede:		".$_POST['anrede']."
    	Vorname:	".$_POST['vorname']."
    	Name:		".$_POST['varname']."
    	Adresse: 	".$_POST['str']."
    			".$_POST['plz']."
  16. Scheint ein fehlendes Semikolon ; am Ende nach dem " zu sein.
  17. Autor dieses Themas

    niemon

    niemon hat kostenlosen Webspace.

    ok. thx. den neuen fehler hab ich gefunden.... war nen " zu viel irgendwo

    das nur 5 übertragen wurden, lag an den doppelpunkten (hab dann irgendwie immer "name:=" da stehen gehabt)

    aber nun hab ich nen neues altes problem:

    wenn ich aber nun folgenden code in der 2. datei hab, sind die variablen aber dann in der mail wieder leer, obwohl sie übergeben wurden.. das sehe ich ja indem ich "print_r($_POST);" nutze.
    $text = "
    	Anzahl Karten:	".$_POST['anzahl']."
    	Email:		".$_POST['mail']."
    	passwort:	".$_POST['passwort']."
    	Anrede:		".$_POST['anrede']."
    	Vorname:	".$_POST['vorname']."
    	Name:		".$_POST['varname']."
    	Adresse: 	".$_POST['str']."
    			".$_POST['plz']."
  18. aldistammkunde

    Kostenloser Webspace von aldistammkunde, auf Homepage erstellen warten

    aldistammkunde hat kostenlosen Webspace.

    niemon schrieb:
    <tr><td align="right">Anzahl Karten</td><td><input name=$_POST['anzahl'] type="text" size="1" maxlength="1"></td></tr>
    <tr><td align="right">Email</td><td><input name=$_POST['mail'] type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">Passwort</td><td><input name=$_POST['passwort'] type="text" size="10" maxlength="110"></td></tr>


    hier vergisst du überhaupt erst einmal die Variablen mit PHP-echo auszugeben - für HTML sind die Variablennamen nur beliebige Zeichenketten; generell sehe ich nicht den sinn, warum man Formularfelder mit POST-werten benennen sollte?! verwechselst du evtl. name="foo" & value="foo"?
    niemon schrieb:
    $text = "
    	Anzahl Karten:	".$_POST['anzahl']."
    	Email:		".$_POST['mail']."
    	passwort:	".$_POST['passwort']."
    	Anrede:		".$_POST['anrede']."
    	Vorname:	".$_POST['vorname']."
    	Name:		".$_POST['varname']."
    	Adresse: 	".$_POST['str']."
    			".$_POST['plz']."


    karpfen schrieb: Scheint ein fehlendes Semikolon ; am Ende nach dem " zu sein.

    naja, nicht ganz; wohl eher ein Semikolon statt des letzten
    ."
    also

    $text = "
    	Anzahl Karten:	".$_POST['anzahl']."
    	Email:		".$_POST['mail']."
    	passwort:	".$_POST['passwort']."
    	Anrede:		".$_POST['anrede']."
    	Vorname:	".$_POST['vorname']."
    	Name:		".$_POST['varname']."
    	Adresse: 	".$_POST['str']."
    			".$_POST['plz'];
  19. Autor dieses Themas

    niemon

    niemon hat kostenlosen Webspace.

    @aldi. versteh nich worauf du hinaus willst :(

    $text = "
    	Anzahl Karten:	".$_POST['anzahl']."
    	Email:		".$_POST['mail']."
    	passwort:	".$_POST['passwort']."
    	Anrede:		".$_POST['anrede']."
    	Vorname:	".$_POST['vorname']."
    	Name:		".$_POST['varname']."
    	Adresse: 	".$_POST['str']."
    			".$_POST['plz'];

    das stimmt ja jetzt.. aber irgendwie steht dann in der $text nur der Text der vorgegeben ist und nicht die Werte. aber wieso, wenn ich hier das print_r($_POST); abrufe gehts doch auch...... kapier ich nich
  20. karlsve

    Moderator Kostenloser Webspace von karlsve

    karlsve hat kostenlosen Webspace.

    niemon schrieb:
    <tr><td align="right">Anzahl Karten</td><td><input name=$_POST['anzahl'] type="text" size="1" maxlength="1"></td></tr>
    <tr><td align="right">Email</td><td><input name=$_POST['mail'] type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">Passwort</td><td><input name=$_POST['passwort'] type="text" size="10" maxlength="110"></td></tr>


    $text = "
    	Anzahl Karten:	".$_POST['anzahl']."
    	Email:		".$_POST['mail']."
    	passwort:	".$_POST['passwort']."
    	Anrede:		".$_POST['anrede']."
    	Vorname:	".$_POST['vorname']."
    	Name:		".$_POST['varname']."
    	Adresse: 	".$_POST['str']."
    			".$_POST['plz'].";



    Du hast glaube ich was falsch verstanden:
    Den $_POST teil brauchst du nur bei der Abfrage der übergebenen Daten.
    Also nicht in deinem Formular direkt.

    also nochmal der korrekte Formularcode:
    form action="test2.php" method="post">
      <table border="5" cellpadding="5" cellspacing="4">
    
    <tr><td align="right">Anzahl Karten</td><td><input name="anzahl" type="text" size="1" maxlength="1"></td></tr>
    <tr><td align="right">Email</td><td><input name="mail" type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">Passwort</td><td><input name="passwort" type="text" size="10" maxlength="110"></td></tr>
    <tr><td align="right">Anrede</td><td><input name="anrede" type="text" size="1" maxlength="1"></td></tr>
    <tr><td align="right">Vorname</td><td><input name="vorname" type="text" size="15" maxlength="15"></td></tr>
    <tr><td align="right">Nachname</td><td><input name="name" type="text" size="15" maxlength="15"></td></tr>
    <tr><td align="right">Straße/Nr</td><td><input name="str" type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">PLZ/Ort</td><td><input name="plz" type="text" size="30" maxlength="30"></td></tr>
    <tr><td align="right">Geburtstag</td><td><input name="tag" type="text" size="12" maxlength="12"></td></tr>


    Und der PHP code war schon richtig:
    $text = "
    	Anzahl Karten:	".$_POST['anzahl']."
    	Email:		".$_POST['mail']."
    	passwort:	".$_POST['passwort']."
    	Anrede:		".$_POST['anrede']."
    	Vorname:	".$_POST['vorname']."
    	Name:		".$_POST['varname']."
    	Adresse: 	".$_POST['str']."
    			".$_POST['plz'].";



    Ich hoffe das behebt das Problem.

    MfG
    karlsve

    Edit:
    Schon blöde wenn man erstmal selber die Semikolon vergisst obwohl doch grade darüber gesprochen wurde:D
    Aber egal ist jetzt ja korrigiert.

    Beitrag zuletzt geändert: 5.10.2009 21:59:43 von karlsve
  21. Autor dieses Themas

    niemon

    niemon hat kostenlosen Webspace.

    vieeeeeeeeeeelen dank.. es funktioniert...

    ich entschuldige mich in aller form für meine Anfängerfragen. :)

    echt gutes Forum.. hab noch nie in nem Forum so schnell Antworten bekommen. Kann euch nur weiter empfehlen.

    Fettes Danke an alle die mit geholfen haben....


    gruß matthias
  22. 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!