Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Variablen innerhalb Echo-Anweisung

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
kaisen
PostRank 6
PostRank 6
Beiträge: 462
Registriert: 29.11.2005, 10:16

Beitrag von kaisen » 08.03.2006, 21:09

Ich weiß ist eine schreckliche blöde Frage. Aber ich mach das irgendwie mal so mal so und daher wollt ich mal fragen wie es denn richtig ist.

Also Situation:
Ich habe eine ehco anweisung in der eine Variable vorkommt.

Beispiele:

PHP-Code:
echo "<img src=\"$bildurl\">";

PHP-Code:
echo "<img src=\"" .$bildurl. "\">";


Also welche der beiden Lösungen ist nun richtig? Funktionieren tun beide... Aber meine mal gehört zu haben die zwiete sei die elegantere von beiden...

Danke

Grüße
Kai

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Anonymous

Beitrag von Anonymous » 08.03.2006, 21:15

jo... beide richtig...

die version mit ".$var." ist die übersichtlichere und fehler sind unwahrscheinlicher...

wenn man z.B. mehrere variabeln ohne leerzeichen dazwischen ausgeben möchte, könnte

echo "Variabeln: $var1$var2$var3";

zu Problemen führen, oder wenn direkt hinter der var ein text ausgegeben werden soll, hier bei wird ggf der Varname verändert:

echo "Variabeln $var1TEXTTEXT"

also besser immer:

echo "Variabeln: ".$var1.$var2.$var3;
echo "Variabeln ".$var1."TEXTTEXT";

kaisen
PostRank 6
PostRank 6
Beiträge: 462
Registriert: 29.11.2005, 10:16

Beitrag von kaisen » 08.03.2006, 21:18

ok, also die version, die die echo anweisung unterbricht und dann die variablen zwischen zwei punkte setzt.

ok ist notiert. danke...
ist wahrscheinlich auch von der server-seite her besser zu verarbeiten

Anonymous

Beitrag von Anonymous » 08.03.2006, 21:25

dem server ist es egal.....

die echoanweisung wird ja nicht unterbrochen... nur der auszugebende String wird zusammengesetzt, das ist alles... der . fügt ja nur 2 strings zu einem zusammen, kannst ja auch

echo "hallo"." "."du da...";

schreiben....

aber wo wir gerade dabei sind...

echo 'Hallo $var1';

echo 'Hallo '.$var1;

macht einen großen Unterschied.... wenn du vars immer durch .$var. einfügst vermeidest du Fehler z.B. auch in obigen Fall....

kaisen
PostRank 6
PostRank 6
Beiträge: 462
Registriert: 29.11.2005, 10:16

Beitrag von kaisen » 08.03.2006, 21:30

ok danke.

und wo ich gerade bei essentiellen fragen bin, fällt mir gerade noch eine ein, wo ich nicht so rehct weiß.

Wenn man variablen als parameter übergibt und dann im aktuellen dokument verwenden will...

ist es überhaupt noch nötig vorher immer schön

$var = $_GET['var'];

die Variable einzuholen?

Danke
Kai

Graccem
PostRank 4
PostRank 4
Beiträge: 115
Registriert: 16.12.2004, 12:57
Wohnort: Berlin

Beitrag von Graccem » 08.03.2006, 21:30

kaisen hat geschrieben:
PHP-Code:
echo "<img src="$bildurl">";

PHP-Code:
echo "<img src="" .$bildurl. "">";
Die zweite macht überhaupt keinen Sinn. Das doppelte Anführungszeichen weißt den Parser an, den String auf Variablen zu parsen. Da aber keine Variable drin ist, muss dieser String auch nicht geparst werden. Also, wenn du schon die Variablen aus dem String herausnehmen möchtest, dann den String gleich mit einfachen Anführungszeichen nutzen:

echo '<img src="' .$bildurl. '">';

Du brauchst das dopplete Anführungszeichen nur dann explizit, wenn du Steuerungszeichen wie \n o.ä. verwenden möchtest.

kaisen
PostRank 6
PostRank 6
Beiträge: 462
Registriert: 29.11.2005, 10:16

Beitrag von kaisen » 08.03.2006, 21:32

@Graccem:
das heißt, wenn ich echo-anweisung nur mit einfachen anfürungszeichen nutze, dann brauch ich die " nicht mehr mit einem \ escapen?

Graccem
PostRank 4
PostRank 4
Beiträge: 115
Registriert: 16.12.2004, 12:57
Wohnort: Berlin

Beitrag von Graccem » 08.03.2006, 21:36

Korrekt, dass erspart man sich damit auch. Hier im Web sieht es allerdings merkwürdig aus, wenn da drei Striche hintereinander stehen, aber in einem Editor sollte das kein optisches Problem sein, vor allem dann nicht, wenn er Highlighting verwendet.
st es überhaupt noch nötig vorher immer schön

$var = $_GET['var'];

die Variable einzuholen?
Das ist davon abhängig, ob register_globals off oder on ist. Bei der off-Variante kannst du die Variablen nur so einholen. Daher ist es ratsam, gleich so zu arbeiten, da dann das Projekt auf mehr Servern laufen kann.

kaisen
PostRank 6
PostRank 6
Beiträge: 462
Registriert: 29.11.2005, 10:16

Beitrag von kaisen » 08.03.2006, 21:43

ok danke. das mit den einfachen anführungsstrichen grenzt für mich ja shcon fast an eine kleine persönliche revolution ;)

ist nämlich verdammt viel arbeit z.b. son blödes formular zu "escapen" :roll:

also dankeschön auch an dich...

Kai

Metaman
PostRank 7
PostRank 7
Beiträge: 602
Registriert: 17.04.2004, 07:37
Wohnort: Wittenburg (Mecklenburg)

Beitrag von Metaman » 09.03.2006, 00:05

Graccem hat geschrieben:
st es überhaupt noch nötig vorher immer schön

$var = $_GET['var'];

die Variable einzuholen?
Das ist davon abhängig, ob register_globals off oder on ist. Bei der off-Variante kannst du die Variablen nur so einholen. Daher ist es ratsam, gleich so zu arbeiten, da dann das Projekt auf mehr Servern laufen kann.
dem ich kann ur zustimmen.
ist besonders Lusting wenn man fertige Scripte bekommt, die auf dem einem Server laufen und auf anderen gar nichts passiert.

hatte mir vor kurzem selber ein Script gekauft, bei der Programmierer zwar eine eigene Firma hatte(was jedoch nichts aussagt) aber in sachen Programmierung eine absolute Niete ist.
der hat unter anderem SQL Tabellen angelegt, mit Spaltentyp INT(250) :lol:
und er hatte auch auf dieses $_POST... und $_GET... verzichtet.
folge davon das Script leif bei mir nicht.
er selber konnte das Problem nach 10 Tagen nicht finden, und ich auch nicht, da der PHP Code außer einigen Einstellungsdateien Codiert wurde.
naja da haben mir dann zwei Zeilen geholfen damit das Script lief.
und zwar hab ich in der config (die in jeder Datei geladen wurde) folgendes eingesetzt

Code: Alles auswählen

foreach&#40;$_GET as $getkey => $getvalue&#41; $$getkey = $getvalue; 
foreach&#40;$_POST as $postkey => $postvalue&#41; $$postkey = $postvalue; 
damit wurde dann aus $_POST['var'] ein $var

Graccem
PostRank 4
PostRank 4
Beiträge: 115
Registriert: 16.12.2004, 12:57
Wohnort: Berlin

Beitrag von Graccem » 09.03.2006, 09:18

Ich hätte das Script zurückgegeben, da es nicht läuft und eine Nachbesserung auch nicht in Sicht ist.

marc75
PostRank 9
PostRank 9
Beiträge: 1916
Registriert: 06.10.2004, 09:36

Beitrag von marc75 » 09.03.2006, 10:38

naja da haben mir dann zwei Zeilen geholfen damit das Script lief.
und zwar hab ich in der config (die in jeder Datei geladen wurde) folgendes eingesetzt
Code:
foreach($_GET as $getkey => $getvalue) $$getkey = $getvalue;
foreach($_POST as $postkey => $postvalue) $$postkey = $postvalue;


damit wurde dann aus $_POST['var'] ein $var
Da würde ich eher das Script nicht einsetzen. Man kann davon ausgehen das da noch mehr fehler drin sind. (sql-injection)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag