PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : was ist falsch



robiotor
04-07-2003, 17:45
was ist da dran falsch


$preise = array('Artikel 1' => '2,50','Artikel 2' => '3,50','Artikel 3' => '7,50','Artikel 4' => '10,50');



Preis: $preise[$_POST['Bestellung']]

Gaert
04-07-2003, 18:03
Ich kann so eigentlich keinen Fehler entdecken... wäre nett wenn du mal den kompletten code ausschnitt posten würdest.

robiotor
04-07-2003, 19:06
das hier steckt vor der mail() funktion

$preise = array('Artikel 1' => '2,50','Artikel 2' => '3,50','Artikel 3' => '7,50','Artikel 4' => '10,50');


das hier steckt in der mail() funktion

Preis: $preise[$_POST['Bestellung']]

und das ist der fehler

Parse error: parse error, expecting `']'' in /bla/bla line 210


und line 210 ist Preis: $preise[$_POST['Bestellung']]

Gaert
04-07-2003, 20:36
Hi!

Schon besser aber immer noch nicht aussagekräftig... mit codeausschnitt meine ich eigentlich auch den teil vor und nach der Fehlermeldung!

Preis: $preise[$_POST['Bestellung']]

Ist kein PHP Code - sicher dass es so dasteht und nicht etwa so:

echo "Preis: " . $preise[$_POST['Bestellung']];

So würde es nämlich funktionieren.

robiotor
04-07-2003, 21:36
Original geschrieben von Gaert
Hi!

Schon besser aber immer noch nicht aussagekräftig... mit codeausschnitt meine ich eigentlich auch den teil vor und nach der Fehlermeldung!

Preis: $preise[$_POST['Bestellung']]

Ist kein PHP Code - sicher dass es so dasteht und nicht etwa so:

echo "Preis: " . $preise[$_POST['Bestellung']];

So würde es nämlich funktionieren.


doch doch das steht so da wie ich sagte. die genaue fehlermeldung lautet Parse error: parse error, expecting `']'' in /var/www/blabla on line 211 und line 211 ist Preis: $preise[$_POST['Bestellung']]

vieleicht erkläre ich was ich damit will, vieleicht ist das auch der falsche weg.

ich habe ein bestellformular gebaut. da ist ein feld ein dropdown menue, sagt man so denke ich :) wo man verschiedene sachen auswählen kann.

das was ausgewählt wurde wird mit mail() an den admin und an den besteller versendet. nun haben die artikel feste preise. artikel 1 = 1 euro artikel 2 = 2 euro usw.

ich möchte auch per mail() den preis des artikels kennzeichnen damit der kunde informiert ist auch per mail.


ach warum schickt mir das board hier keine mail bei neue nachricht, habe es ausgewählt aber

Gaert
04-07-2003, 21:58
Der Ansatz ist sicherlich ok, aber bitte poste mal einen größeren Teil des Skripts, mit der einen Zeile und der Fehlermeldung alleine kann ich nicht viel anfangen.

Btw: Hast du ne eigene Funktion geschrieben die mail heisst?
Wenn ja benenne sie lieber um.

robiotor
04-07-2003, 22:09
....

if(!isset($_POST['AGB'])){
$warn[] = 'Sie muessen unsere AGB`s akzteptieren';
}

$AGB_Gelesen = (isset($AGB) ? "Ja" : "Nein");
$Rechnung_Post = (isset($Rechnung) ? "Ja" : "Nein");

if(count($warn) != 0){
// Fehler sind aufgetreten!
}
else{
// Alle Daten sind da!

$preise = array('artikel 1' => '1','artikel 2' => '2','artikel 3' => '3','artikel 4' => '4');

#$preise = array('Farbe' => 'rot'
# ,'Geschmack' => 'süß'
# ,'Form' => 'rund'
# ,'Name' => 'Apfel'
# ,4 // Schlüssel ist 0
# );
#Preis: $preise[$_POST['Bestellung']]



#############################################
# E-mail an Administartor
#############################################
mail("e@mail.adresse",
"Neue Bestellung\n",
"Es wurde eine Neue Bestellung aufgegeben:
------------------------------------------------\n


Hallo $_Post[Name],

Sie haben bei uns folgendes bestellt.

Bestellung: $_POST

der gewünschte artikel kostet
[B]und hier will ich den preis einbauen"
From: e@mail.de");

und das geht nicht so wie ich geschrieben habe die fehlermeldung ist nach wie vor

Parse error: parse error, expecting `']'' in /var/www/bestellung.php on line 211 und wie gesagt line 211 ist Preis: $preise[$_POST['Bestellung']];

Gaert
04-07-2003, 22:44
So... jetzt isses klar was der Fehler ist:
Lass einfach die einachen Anführungszeichen vor und nach "Bestellung" weg und schon funktioniert es!

robiotor
05-07-2003, 07:00
ich habe alles probiert

Preis: $preise[$_POST['Bestellung']]

Preis: $preise[$_POST[Bestellung]]

Preis: $preise[$_POST["Bestellung"]]

nichts geht, und es kommt immer der gleiche fehler

jwebworks
05-07-2003, 07:48
kann mir jemand erklären, warum diese
zeile (ohne Kommentar) funktionieren soll?
ohne echo und strichpunkt?


Preis: $preise[$_POST['Bestellung']]

anstatt


echo "Preis:" . $preise[$_POST['Bestellung']];

und hier


Hallo $_Post[Name],

gibt es die Variable $Post wirklich?

und da


der gewünschte artikel kostet
und hier will ich den preis einbauen"
From: e@mail.de");
fehlt ein Komma nach '...einbauen"' und
'From: @mail.de...'


Ist es wirklich möglich, einfach so Text
über mehrere Zeilen hinweg hinzutippen?

wie wäre es mit:



$mailtext = "Erste Zeile\n";
$mailtext .= "Zweite Zeile\n";
$mailtext .= "Preis" . $POST[sonstwas] . "\n";
$mailtext .= "nächste Zeile\n";

mail ( "bla", "bla", $mailtext, ...)

Pingu
05-07-2003, 08:28
Ich denke mal, daß das nicht gehen wird, da komplexe Strukturen beim parsing so nicht unterstützt werden, siehe http://www.php.net/manual/de/language.types.string.php#language.types.string.pa rsing

Vielleicht mal so probieren:
Preis: {$preise[$_POST['Bestellung']]}


Original geschrieben von jwebworks
Ist es wirklich möglich, einfach so Text
über mehrere Zeilen hinweg hinzutippen?

Kann es vielleicht sein, daß das alles in einer Zeile steht und nur dein Editor das ganze zur Anzeige umbricht? emacs z.B. macht das so und zeigt bei jedem Umbruch ein '\\' an.

Pingu

robiotor
05-07-2003, 09:31
Original geschrieben von jwebworks
kann mir jemand erklären, warum diese
zeile (ohne Kommentar) funktionieren soll?
ohne echo und strichpunkt?

also ich kann es nicht erklären aber es funktioniert. ich schätze mal weil es in mail() steht aber ich kann es nicht 100%ig sagen


Preis: $preise[$_POST['Bestellung']]

anstatt


echo "Preis:" . $preise[$_POST['Bestellung']];

und hier


Hallo $_Post[Name],

gibt es die Variable $Post wirklich?

nein die variable $Post gibt es nicht, es wird per $_POST gesendet.

und da


der gewünschte artikel kostet
und hier will ich den preis einbauen"
From: e@mail.de");
fehlt ein Komma nach '...einbauen"' und
'From: @mail.de...'


Ist es wirklich möglich, einfach so Text
über mehrere Zeilen hinweg hinzutippen?


ja das ist möglich.

wie wäre es mit:



$mailtext = "Erste Zeile\n";
$mailtext .= "Zweite Zeile\n";
$mailtext .= "Preis" . $POST[sonstwas] . "\n";
$mailtext .= "nächste Zeile\n";

mail ( "bla", "bla", $mailtext, ...)


auch nicht schlecht aber warum so umständlich ?


und ich habe das nun gelöst.


also


Preis: $preise[$_POST['Bestellung']]; funktioniert nicht so in mail() direkt. ich habe das in einer variable gespeichert und dann diese variable in mail() abgerufen.

nun klapt es 1a

robiotor
05-07-2003, 09:33
ach ich habe mich verschrieben, das Hallo $_Post[Name], heist $_POST[Name]