Variable wird übergeben aber auf Zielseite nicht eingetragen

boardcash

Mitglied
Hallo

Ich übergebe per link

<td><center><b><a href="#" onClick="member=window.open(\'includes/popup.php?ref='.$url.'\',\'\',\'scrollbars=no,width=100,height=50\');">Abfragen</b></center></td>

das funktioniert auch also die $url wird übergeben.

Aber im Quelltext des Popups wird es einfach nicht eingetragen.

PHP:
<?php
print "
<script language='Javascript'> 
<!--  
var i; 
function start() 
{ 
window.document.zeit.timer.value=3; 
timerfunc(); 
} 
function timerfunc() 
{ 
if (window.document.zeit.timer.value==0) 
{ 
window.close(); 
} 
window.document.zeit.timer.value=window.document.zeit.timer.value - 1; 
te=window.setTimeout(\"timerfunc()\",1000); 
} 
//--> 
</script>
<BODY onLoad=\"start();\"><form name='zeit' METHOD=POST action=''> 
<center><input type=text name='timer' maxlength='2' size='2' value='' readonly></form>";
?>
<a href="http://www.pagerank-scout.de" target="_blank"><img src="http://www.domainpromotions.de/ranking_script1/pr0.php?ref=<? echo '$ref' ?>&style=4" alt="PR Liveanzeige powered by Domainpromotions" border="0">

Ich habe das jetzt mit X Versionen ausprobiert es wird im popup einfach nicht eingetragen.

Habt ihr Vieleicht ne Idee
Vielen Dank schon im Vorraus
Ralf
 
1. Warum gibst du das oben alles mit print aus bzw überhaupt mit PHP wenn ich mich jetzt nicht täusche habe ich dort sonst keinen PHP Code gesehen.
2. Bei <? echo '$ref' ?> fehlt nach '$ref' fehlt der ;

Ich würde das übrigens so ausgeben <?php echo $ref; ?>
 
Ich wuerde in dem Fall auf das alt-bekannte und auesserst beliebte register_globals-Problem tippen. Probier mal $_GET['ref'] anstelle von $ref, dann solltest Du an Deinen Wert kommen.

Wenn Dir dies hilft ist auf jeden Fall mal ein Blick in die PHP-Doku und auch eine Suche (z.B. hier im Forum oder auch bei Google) zum Begriff register_globals angebracht. Es ist immer sinnvoll diesen auf dem Entwicklungssystem auf off zu belassen, denn wenn das Script dann funktioniert wird es auch laufen wenn es auf on gesetzt ist. Umgekehrt muss das nicht der Fall sein.

Nachtrag:
PHP:
echo '$ref'
wird nie den Uebergabewert ref ausgeben denn Strings in '' werden nicht interpretiert. Hier wird immer nur der Text $ref ausgegeben. Wenn Du eine Variable in einen String packen willst, und auch willst, dass diese Variable interpretiert und nicht als Text behandelt wird, musst Du mit "" arbeiten. Aber wie ezias schon sagte ist es in dem Fall sowieso sinnvoller ganz auf '' oder "" zu verzichten, dies erhoeht im Zweifelsfall nur die Ausfuehrungsdauer (wenn auch nur minimal) und ist auch einfach irgendwo nicht wirklich schoen.
Auch auf Variablen in "" sollte man nach Moeglichkeit verzichten (und mir faellt keine Situation ein wo das noetig sein sollte), sondern statt dessen mit dem Verkettungsoperator . arbeiten. In einem Editor mit Syntax-Highlighting kann man dann auch gleich sehen wo man Variablen hat und wo reinen Ausgabetext.
Also statt solchen Konstrukten:
PHP:
echo "Hallo $user.";
besser das:
PHP:
echo 'Hallo '.$user;
Du kannst den String natuerlich auch nach der Variable noch weiterfuehren, und auch noch weitere Variablen einfuegen.
Zum Beispiel sowas:
PHP:
echo 'Guten Morgen '.$vorname.' '.$nachname.'.<br>';
Das mag zwar auf den ersten Blick etwas kompilizierter aussehen als
PHP:
echo "Guten Morgen $vorname $nachname.<br>"
aber wie Du hier bereits am Syntax-Highlighting sehen kannst sind Variablen dadurch viel einfacher im Quelltext zu erkennen. Und wie gesagt, etwas schneller duerfte es auch sein, wenn man sehr sehr viele Ausgaben dieser Art hat. ;)
 
Hallo

Vielen Dank für die Schnelle Hilfe und Vielen Tips

Den Nachtrag habe ich erst jetzt gelesen nachdem ich "ezias" Version ausgetestet hatte und diese auch auf anhieb Funktionierte.

Ich werde alle Tips natürlich mir zu Herzen nehmen und versuchen anzuwenden.

Ich bin auf alles gekommen aber das mit der register_globals Sache zu tun hat
da habe ich mit keinen Bein dran gedacht.

Also nochmal vielen Dank
Ralf
 
Zurück