Variable wird nicht ausgegeben. Warum?

leon_20v

Erfahrenes Mitglied
hallo,

PHP:
<?php

$themenlinks = "<br /><a href=\"?inc=themen&politik\">Politik</a> $test <br /> Medien";
$test="asdfasfasfda";


?>

warum kommt da die variable test nicht? Politik und Medien stehen dran... aber sdfasfadfa kommt nicht.


mit "echo" wird test richtig ausgegben
 
Zuletzt bearbeitet:
Ändere Deinen Code wie folgt ab:

PHP:
<?php

$themenlinks = "<br /><a href=\"?inc=themen&politik\">Politik</a> ".$test." <br /> Medien";
$test="asdfasfasfda";


?>

Du musst also Dein echo "unterbrechen". Okidoki? ;-)
 
Okidokili verstanden :) super vielen dank

aber das funktioniert bei mir irgendwie trotzdem nicht :(
PHP:
$themenlinks = "<br /><a href=\"?inc=themen&politik\">Politik</a>".$pm1."<br />Medien";
$pm1 = "<br /> National <br /> International";
es steht nur politik und medien!

aber ich denke hier ist das problem.

PHP:
 <?php 
	
	if($_GET['inc']=="themen")	{  echo $themenlinks;}  ?>
geht das dann so garnicht wie ich mir das vorstelle?







jetzt muss ich noch was zu "array" fragen. ich denke so komme ich besser zu meinem ziel.
Ich hätte gern, wenn ich auf einen link klicke, das dann etwas zu meinem array hinzugefügt wird

PHP:
<?php 
	
	if($_GET['inc']=="themen")	{ array_push($themenlinks,"_13politik"=>"politkuntermenue4","_14politik"=>"politikuntermenue5"); }  ?>


das spuckt der mir aber aus:

Parse error: syntax error, unexpected T_DOUBLE_ARROW in /customers/veritas-fluctuare.de/veritas-fluctuare.de/httpd.www/navigation_php/naviphp.php on line 29
 
Zuletzt bearbeitet:
Verzeih mir den Ausdruck, aber kann man wirklich so doof sein? Du musst die Variable $test natürlich bevor du sie einsetzen kannst, definieren und nicht darauf hoffen, dass das System sich merkt, was es woher bekommen hat und sich dementsprechend bei jeglicher Änderung mit ändert. Deshalb muss dein Schnipsel auch so aussehen:
PHP:
$test="asdfasfasfda";
$themenlinks = "<br /><a href=\"?inc=themen&politik\">Politik</a>$test <br /> Medien";
 
hmm... warum muss die davor sein?

die wird doch erst viel später mit "echo" ausgegben?


und warum funktioniert dann das hier nicht:

PHP:
<?php

if($_GET['inc']=="themen&politik")	{ $pm1="<br /> National <br /> International";}


$themenlinks = "<br /><a href=\"?inc=themen&politik\">Politik</a>".$pm1."<br />Medien";



?>
 
Zuletzt bearbeitet:
Wahrscheinlich wegen des &-Zeichens. Im Query-String steht ja sowas wie

?inc=themen&politik

d.h. in inc steht nur themen und der Rest des Query-Strings ist halt &politik. Das wird aber nicht im $_GET[] gespeichert. Du müsstest die Wörter mit was anderem trennen.
 
hmm... warum muss die davor sein?

die wird doch erst viel später mit "echo" ausgegben?
Weil die Variable $themenlinks nicht erst zusammen gebastelt wird wenn sie mit echo ausgegeben wird sonder eben schon vorher.

und warum funktioniert dann das hier nicht:
Tim Bureck hat recht. Das & Zeichen ist quasi ein Trennzeichen zwischen den einzelnen parts des Querystrings.
Du hast also im Prinzip gerade:
$_GET['inc'] = themen
$_GET['politik'] = nicht definiert...
Das wiederrum bedeutet das
{ $pm1="<br /> National <br /> International";}
garnicht ausgeführt wird.
 
z.b so (falls ich es richtig verstanden hab)

PHP:
<?php

if($_GET['inc']=="themen" AND $_GET["politik"]=="true")    { $pm1="<br /> National <br /> International";}


$themenlinks = "<br /><a href=\"?inc=themen&politik\">Politik</a>".$pm1."<br />Medien";


?>

dann muss halt aber der link auch entsprechend lauten:
HTML:
?inc=themen&politik=true
 
Es gäbe auch noch eine andere Variante, welche nach dann so aussehe:
?themen&politik
PHP:
$values = array();
foreach($_GET as $key => $value) {
    $values[] = $key;
}
Falls du auch noch die Möglichkeit behalten willst für andere Parameter, gäbe es auch noch die Variante:
PHP:
$values = array();
foreach($_GET as $key => $value) {
    if(empty($value)) {
        $values[] = $key;
    }
    else {
        $values[$key] = $value;
    }
}
Dann wäre auch so etwas möglich:
?inc=themen&politik => array(inc => themen, 0 => politik)
 
Zurück