[PHP] Variablen in Variablen

Netus

Rare-Mob
Mitglied seit
12.01.2007
Beiträge
156
Reaktionspunkte
0
Kommentare
110
Buffs erhalten
82
Hallo zusammen,

ich hab mich mal wieder an ein kleineres projekt gesetzt und würde gerne eine knuffige kleine php-Seite basteln,
in welcher der User seine Region, Servername sowie Charname eingeben kann, und dann auf der kommenden Seite diverse Links zu bekommen.

Leider klappt das mit dem verlinken in php bei mir noch nicht so richtig:

index.php -code:
Code:
<body>

<form action="action.php" method="post">

<td>
<fieldset>
			<label><input type="radio" name="region" value="EU" /> EU</label>
			<label><input type="radio" name="region" value="US" /> US</label>

	</label>
</fieldset>
<fieldset>
	<label>Server: <input type="text" name="server" /></label>
</fieldset>


<fieldset>
	<label>Charaktername: <input type="text" name="char" /></label>
</fieldset>

/*
<fieldset>
		<label><input type="checkbox" name="ausgabe[]" value="armory" /> WoW-Armory</label>
		<label><input type="checkbox" name="ausgabe[]" value="beimba" /> be.imba.hu</label>
		<label><input type="checkbox" name="ausgabe[]" value="buffed"> buffed.de</label>
</fieldset>
*/

<p><input type="submit" /></p>
</form>

</body>
action.php -code

Code:
<body>
/*
<?php
$region = '<?php echo $_POST['region']; ?>';
$server = '<?php echo $_POST['server']; ?>';
$char = '<?php echo $_POST['char']; ?>';
echo '<a href="<a href="http://be.imba.hu/?zone=.$region.&realm=.$server.&character=.$char."></a>';
?>
*/
Armory:<br>
<a href="http:<?php echo $_POST['region']; ?>.wowarmory.com/character-sheet.xml?r=<?php echo $_POST['server']; ?>&n=<?php echo $_POST['char']; ?>"></a><br>
<br>
be.imba.hu: <br>
<a href="http://be.imba.hu/?zone=<?php echo $_POST['region']; ?>&realm=<?php echo $_POST['server']; ?>&character=<?php echo $_POST['char']; ?>">/a><br>
<br>
buffed.de: <br>
<a href="http://wowdata.buffed.de/?f=<?php echo $_POST['char']; ?>">/a><br>

</body>

</body>

Ich versuche also die Werte aus der index.php, mit $_POST in der action.php in einen Link einzufügen. Die Datenübergabe funktioniert einwandfrei; jedoch habe ich grad absolut keine Ahnung, wie ich den Link dann auch wirklich zu einem Link mache. Der auskommentierte Teil der action.php war der klägliche Versuch, standart Variablen mit den $_POST sachen zu füllen.
Ein einfacher Text reicht mir da leider nicht
wink.gif


Vielleicht findet sich da ja wer, der mir helfen könnte.

Vielen Dank und liebe Grüße,
Netus

PS: Ja, ich hab die SuFu benutzt, ich hab Google gefragt, ich hab momentan keine Ahnung mehr, ne Denkblockade und brauch nen Kaffee
jester.gif


---
Edith: Ich glaub, ich habs falsche Forum erwischt Oo'' Schulligung!
 
Zuletzt bearbeitet von einem Moderator:
Man kann " und ' nutzen. Mit der sinnvollen kombination aus beiden erspart man sich Arbeit.

Code:
$text = "<a href='http://blubb.de'>TEST</a>";
 
Zuletzt bearbeitet von einem Moderator:
Hm, ok. Also ansich läuft die Sache jetzt mehr oder weniger, so, wie ich mir das vorgestellt habe.
Nur leider werden Sonderzeichen wie ý oder â nicht richtig interpretiert.

Wenn ich z.B. nach meinem Char Flýr suchen lasse, wird der Link zwar korrekt angezeigt, jedoch wird das ý beim klick auf die gelieferte URL im Browser in "Fl%FDr" umgewandelt. Somit ist die Suche für den Popo und das hat alles nichts gebracht.
Gibt es möglichkeiten, den browser dazu zu bringen, mit Sonderzeichen zu arbeiten?

(zum ausprobieren: Link, die Checkboxen haben noch keinen Sinn.
 
Parse error: syntax error, unexpected '<' in /usr/export/www/vhosts/funnetwork/hosting/lilithsamael/wow/search/index.php on line 5
 
Schuldigung, ist behoben!
 
Ich hoffe das Projekt wird nur intern verwendet, sonst hast du dicke Probleme.
wink.gif


Aber vorher mal etwas anderes.
$region = '<?php echo $_POST['region']; ?>'; <- Willst du Region übergebe oder den PHP-Code in den Anführungszeichen in der Variable $region speichern, denn genau das passiert da.

(fast) Korrekt wäre
$region = $_POST['region'];

Womit wir zum Sicherheitsproblem kommen
Du holst die Daten unbehandelt aus der globalen Postvar und verwendest sie auch so weiter - das öffnet alle Türen und Tore für XSS der simpelsten Art und Injections. Du solltest ZUMINDEST bzw. WENIGSTENS das ganze noch mit addslashed und strip_tags behandeln oder dir gleich eine Funktion schreiben, die alle "gefährlichen" Elemente aus dem übergebenen String entfernt, bzw. die Übergaben auf korrekte Werte prüfen, vor der Verwendung
wink.gif
 
Zuletzt bearbeitet von einem Moderator:
In wie fern sollte das Probleme geben? ich sehe weder Copyrightverletzungen noch sonstige "unschöne" Dinge.
Aber wie dem auch sei. Es ist ja nur ein Projekt und ich hatte eh' nicht vor, damit in irgendeiner Art und Weise an die Öffentlichkeit zu gehen. Also würde es intern bleiben. - Für mich ist es eine Art "Übung" die nach Möglichkeit trotzdem funktionieren sollte.

$region = '<?php echo $_POST['region']; ?>'; <- Willst du Region übergebe oder den PHP-Code in den Anführungszeichen in der Variable $region speichern, denn genau das passiert da.
Der Code hat sich wieder ein wenig geändert:

Code:
<body>
	Armory:<br>
		<a href="http://<?php echo $_POST['region']; ?>.wowarmory.com/character-sheet.xml?r=<?php echo $_POST['server']; ?>&n=<?php echo $_POST['char']; ?>">Armory</a><br>
	<br>

	be.imba.hu: <br>
		<a href="http://be.imba.hu/?zone=<?php echo $_POST['region']; ?>&realm=<?php echo $_POST['server']; ?>&character=<?php echo $_POST['char']; ?>">be.imba.hu</a><br>
	<br>

	buffed.de: <br>
		<a href="http://wowdata.buffed.de/?f=<?php echo $_POST['char']; ?>">buffed</a><br>
	<br>
<a href="http://lilithsamael.li.funpic.de/wow/search/">Neue Suche</a>
</body>

bei addslashed und strip_tags muss ich mich noch belesen.
Aber danke für die Informationen
wink.gif


Der Diktator scheint einen guten Urlaub gehabt zu haben!

-----
Edith:
ich hab jetzt alle ausgaben noch mit htmlspecialchars([]) erweitert. Das sollte doch vorerst Schutz genug sein, oder?
Code:
<a href="http://<?php echo htmlspecialchars($_POST['region']); ?>
 
Zuletzt bearbeitet von einem Moderator:
Ah - ich hab den Link jetzt erst gesehen -scheint ja zumindest ansatzweise zu stimmen, oder sagen wir mal: Die PHP-Einstellungen von deinem Webspace schützen ein wenig. Darauf darf man sich aber nicht verlassen.
wink.gif
 
Zuletzt bearbeitet von einem Moderator:
Zurück