Textformatierung in PHP

Einfach mit: $text=$HTTP_POST_VARS[text] ?
 
Jepp! Elegant geht auch noch

if ($HTTP_POST_VARS[text])
$text=$HTTP_POST_VARS[text];
else
$text="Default" // oder $text="" oder unset($text) jenach dem!
 
du kannst den kram auch in einer schleife zuweisen

PHP:
foreach ($HTTP_POST_VARS as $key => $value){
  $form[$key] = $value;
}

zugreifen kannst du dann über $form['hier den namen der var... z.B. text']
 
Vielen Dank für eure Hilfe! Ihr habt mir sehr geholfen. Wie gesagt werde ich morgen erst wieder dazukommen weiterzumachen. Melde mich sobald es wieder was Neues gibt! :)
 
Also ich verstehe gerade mal wieder nur Bahnhof. Zuerst einmal habe ich versucht die Zuordnung der Variablen mit der Schleife von "catvarlog" durchzuführen. Bei mir sieht das dann so aus:

PHP:
	foreach ($HTTP_POST_VARS as $key => $value){ 
		$form[$key] = $value; 
		}

Gleich in der zweiten Zeile bringt er mir dann wieder den schon bekannten Fehler. Natürlich habe ich mir dann gedacht, dass ich euch nicht schon wieder nerven kann und es folgendermaßen versucht:

PHP:
		$form['email']=$HTTP_POST_VARS[email]
		$form['name']=$HTTP_POST_VARS[name]
		$form['firma']=$HTTP_POST_VARS[firma]
		$form['strasse']=$HTTP_POST_VARS[strasse]
		$form['plz']=$HTTP_POST_VARS[plz]
		$form['ort']=$HTTP_POST_VARS[ort]
		$form['telefon']=$HTTP_POST_VARS[telefon]
		$form['fax']=$HTTP_POST_VARS[fax]
		$form['betreff']=$HTTP_POST_VARS[betreff]
		$form['text']$HTTP_POST_VARS[text]

Aber auch hier brachte er mir gleich in der zweiten Zeile den bekannten Fehler.

Wie habt ihr euch eigentlich PHP beigebracht? Gibt es da irgendwelche Bücher, die empfehlenswert sind oder habt ihe euch einfach durchgewühlt?

Gruß chris_9_11
 
Gibt es den Fehler auch wenn Deine Datei schlicht so aussieht:
PHP:
<?
foreach ($HTTP_POST_VARS as $key => $value)
{ 
        $form[$key] = $value; 
} 
?>
 
Zu Deiner anderen Frage ich habe es mir vor sechs Jahren selbst beigebracht (PHP 3.04). Aber PHP ist nicht viel anders als andere Sprachen auch! Man muß nur die Mechanismen mal an einer Sprache lernen. Schau Dich doch mal nach einem PHP-Forum um!
 
Hi Chris,

ist das Absicht oder Versehen, dass in deinem 2. Quelltextauszug deines letzten Postings die ganzen Strichpunkte fehlen?

Ich muss erst nochmal nachlesen, wie der Thread verlaufen ist. Die foreach-Schleife sieht aber Syntaktisch korrekt aus - nur wirst du sehr viele Werte / Variablen bekommen, die du da garnicht (drin) haben willst (,die aber im HTTP_POST_VARS-Array stehen).

[...]

_________
greetings
 
Also wenn ich die Schleife nackt einfüge, dann bringt er den Fehler immernoch. Liegt es dann daran, dass meine Daten aus dem Formular fehlerhaft sind?

Das mit den Strichpunkten habe ich übersehen und korrigiert. Jetzt funktioniert es immerhin auf diese Art und Weise.

Meine nächste Problemstelle ist folgende:

PHP:
	if ($form['name'] == "") { 
***		$fehlermeldung .= "Bitte geben Sie Ihren Namen ein!<br />";
		$error = TRUE;
		}

Hier bringt er in der zweiten Zeile einen Fehler. "wegus", du hattest ja vorgeschlagen, dass ich das Leerzeichen hinter der Variablen entfernen soll, aber das hat leider auch nichts gebracht.
 
@chris:

(1) PHP nimmt definitiv das Leerzeichen übel!

(2) Das von mir angegebene Skript funktioniert unter meinem Apache auch nicht, schlicht weil HTTP_POST_VARS leer ist, obwohl dem nicht so sein sollte! Ich habe bei der Gelegenheit auch mal gemerkt, das $HTTP_POST_VARS deprecated ist und durch $_POST ersetzt werden soll. Damit klappts dann auch! Hier zwei einfache getestete Skripte:

in.php:
PHP:
<?
print '<form action="out.php" method="post">';
print '<input type="hidden" name="horst" value="1">';
print '<input type="hidden" name="herman" value="2">';
print '<input type="hidden" name="egon" value="3">';
print '<input type="hidden" name="willi" value="4">';
print '<input type="submit" value="checkitout">';
print '</form>';
?>


out.php:
PHP:
<?
foreach ($_POST as $key => $value)
{
        $form[$key]=$value;
        print "<ul>";
                print "<li>".$value."</li>";
        print "</ul>";
}

print "<hr>READY";

?>

Warum HTTP_POST_VARS leer ist weiß ich auch nicht, liegt bestimmt an einem php.ini Eintrag...

Manche PHP-Versionen quittieren foreach auf leere Arrays mit Fehlern, war es das?
 
Zuletzt bearbeitet:
Ich frage mich gerade, ob meine ganzen Probleme vielleicht von meinem Eingabeformular ausgehen. Es wurde nämlich ganz simpel in Dreamweaver zusammengebastelt. Oder ist das egal?

Also "wegus", wenn ich $HTTP_POST_VARS durch $_POST ersetze läuft mein Script durch bis zum ersten Zuweisungsoperatoren (.=), bei dem dann wieder die übliche Fehlermeldung erscheint, obwohl ich alle Leerzeichen in dieser Zeile gelöscht habe. Ich habe den Auschnitt nochmal eingefügt, in der zweiten Zeile bringt er den Fehler. Probehalber habe ich mal in meinem Formular alle Angaben eingegeben, weil er ja dann eigentlich die Funktion gar nicht ausführen dürfte, oder? Er bringt mir trotzdem den Fehler in der zweiten Zeile.

PHP:
	if ($form['name']==""){ 
***		$fehlermeldung.="Bitte geben Sie Ihren Namen ein!<br/>";
		$error=TRUE;
		}

Ich wollte dann aber noch die Schleife testen und habe folgendes Script laufen lassen:

PHP:
	foreach ($_POST as $key => $value){ 
		$form[$key] = $value; 
		}
		echo "$form['name']"

Daraufhin ist der folgende mir bisher unbekannte Fehler angezeigt worden. Ist das dein Fortschritt?! :) Oder habe ich es mir zu einfach gemacht?

Fehler: Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /homepages/2/d11726925/htdocs/Test/kontaktsend.php on line 15

Ich bin euch sehr dankbar für eure Hilfe!

Gruß chris_9_11
 
kannst du datei mal als attachment hier uploaden oder irgendwo zum download hinterlegen? das würde helfen. wichtig: nicht als php-code hier ins forum pasten - sollte 1:1 deine datei sein.
PS: "whitespaces" heißt leerzeichen. entweder hast du da irgendwo eins zu viel oder eins zu wenig. .= ohne leerzeichen links und rechts sieht m.E. verdächtig aus. keine ahnung ob das syntaktisch richtig ist - ich würde das allerdings immer mit leerzeichen notieren.
 
PHP:
	foreach ($_POST as $key => $value){ 
		$form[$key] = $value; 
		}
		echo "$form['name']"

da fehlt das semikolon am ende
muss sein

echo "$form['name']";
 
Hier steht ständig was vom HTTP_POST_VARS -Array - gibt's dafür 'nen bestimmten Grud? Warum verwendet ihr nicht einfach das $_POST[] -Array? Das ist bestimmt nicht leer, wenn method="post" im Form-Tag steht...

Was sollen denn die drei Sternchen *** in Zeile zwei? dient das der Verdeutlichung der Fehlerposition? Ansonnsten müsste das die Fehlerquelle sein. Das ist jedenfalls meines Wissens nach keine PHP Sprachkonstrukt...


Ach ja, und noch ne Frage:
warum überhaupt die Anführungszeichen bei der Ausgabe der Variablen? Statt:

echo "$form['name']";

schreibt doch der Sauberkeit halber bitte:

echo $form["name"]; // oder mit Bezeichnung so:...
echo "Variable Xy = " . $form["name"];


Leerzeichen und Zeilenumbrüche zwischen Anweisungen machen im übrigen gar nichts aus. Sie dienen nur der übersichtlichen Gestaltung des Codes.

Leerzeichen zwischen = und Variablennamen oder einem String "Variab....", dem Punkt . (zur verkettung) und der Variable (hier $form["name"]) etc. ändert deshalb nichts sondern sind gestalterische Freiheit und Geschmackssache. ;)
 
Zuletzt bearbeitet:
@netrob:

Erst lesen, dann posten ;)

Die Sterne markieren die Fehlerzeile und $_POST habe ich weiter oben auch empfohlen!
 
@wegus

yup, sry - hast ja recht. ;)

@chris

Stimmt - kann durchaus sein, dass wenn die Variable $fehlermeldung noch nicht existiert und du dann mit .= was dranhängen willst, der besagte Fehler auftritt.
 
Zuletzt bearbeitet:
Also die Schleife funktioniert. Ich habe mir alle Variablen ($form[...]) mit echo ausgeben lassen. Lag wie erwähnt an dem vergessenen Semikolon.
Hier mal der Link zur PHP-Datei.
 
Zuletzt bearbeitet von einem Moderator:
der link hilft nicht weiter - es geht doch um den quelltext (siehe oben). dort ist der fehler.
 
Du kannst doch das Ziel speichern (bei Win ist es die rechte Maustaste, beim Mac müßte es die Steuerungstaste sein), oder? Wie soll ich es sonst machen? Ich weiß nämlich nicht wie ich es sonst zum Download anbieten kann.
 
Das bringt ja nichts, weil da der Code bereits durch PHP interpretiert und ausgeführt wurde.

Kopiere die Datei im Finder, benenne sie in kontaktsend.txt um und lade sie hoch.

PHP findet bei dir in Codeteilen, die in deinen Beiträgen hier syntaktisch korrekt aussehen, während der Parsingphase Syntaxfehler.

Ich tippe darauf, daß der von dir benutzte Editor den Code verhackstückt. In der kontaktsend.txt kann man dann sehen, was letztlich wirklich in der Datei steht.
 
Zurück
Oben Unten