Include problem

gut abent ich weis nicht wo ran es liegt :frowning:
mache es eigendlich wie immer

butten link zb: forum.bplaced.ne/?name=name.php

auf der hp dann include include ("$name");

kennt wer das problemm ?

mfg purschi

hi,

<?php
include $name;
?>

Eig. habe ich die frage sowas von nicht verstanden ^^ :wink:

leider geht das auch nicht

Warning: include() [function.include]: Failed opening ‘’ for inclusion (include_path=’.:/etc/php/lib’) in /users/name/www/index.php on line 161

muss bei bplaced.net was aktiviren ?

[quote=“purschi”]leider geht das auch nicht

Warning: include() [function.include]: Failed opening ‘’ for inclusion (include_path=’.:/etc/php/lib’) in /users/name/www/index.php on line 161

muss bei bplaced.net was aktiviren ?[/quote]

[code]

<?php $name ="meinedatei.php"; include $name; ?>[/code]

Extern geht das glaube ich gar nicht. z.B. posting.php :wink:

das geht ja aber ich will es ja senden über der url
zb: forum.bplaced.ne/?name=name.php

in der index.php steht das

<?php include $name; ?>

aber das geht nun mal nicht :frowning:

[quote=“purschi”]das geht ja aber ich will es ja senden über der url
zb: forum.bplaced.ne/?name=name.php

in der index.php steht das

<?php include $name; ?>

aber das geht nun mal nicht :([/quote]

lool xDDD

<?php
include $_GET['name'];
?>

sollte so gehen.
Vorsicht: So können Hacker leicht deine Website hacken, evtl. Script Kiddy Schutz ein bauen.

so z.B.

<?php
include htmlspecialchars($_GET['name']);
?>

Verwendung auf eigene Gefahr.

statt $name nimm mal $_GET[‘name’]

edit:
hmm zuspät^^
Aber dein angeblicher Hacker Schutz… ist A keiner und B Unnötig :stuck_out_tongue:
Die Variable kann nur Text enthalten^^ daher mehr als Dateien einbinden geht net^^

@tread starter
Aber den Sinn seh ich dennoch nicht^^ Was haste vor?

es wahr ein ein Beispl.

Aber wieso sollte “htmlspecialchars();” keiner sein? da kannst die php Script nicht in den Header schreiben :stuck_out_tongue_winking_eye:

[quote=“White-Tiger”]Aber dein angeblicher Hacker Schutz… ist A keiner und B Unnötig :stuck_out_tongue:
Die Variable kann nur Text enthalten^^ daher mehr als Dateien einbinden geht net^^[/quote]
Das reicht ja auch - damit kann man jede beliebige Datei auf dem Webspace einbinden, und das duerfte nicht in allen Faellen erwuenscht sein.

Weil es Daten fuer den Kontext HTML behandelt.

Der interessiert hier aber kein bisschen. Der Wert wird nicht als HTML ausgegeben, sondern nach einer Datei gesucht und diese eingebunden.

bin ich zu doof sorry liegt es daran das ich krank bin ? ;D
purschi.bplaced.net/
oben bei news ist der link
?schmogro=test1.php

kommt immer wieder der fehler

Eins von beidem muss es wohl sein …

Und welchen Code hast du jetzt verwendet?

[quote=“purschi”]bin ich zu doof sorry liegt es daran das ich krank bin ? ;D
purschi.bplaced.net/
oben bei news ist der link
?schmogro=test1.php

kommt immer wieder der fehler[/quote]

[code]

<?php include $_GET['schmogro']; ?>[/code]

:slight_smile:

jetzt geht aber wieso geht ist nicht wie ich es immer gemacht hatte mit

<?php
include ("$name");
?>

thx leute

[quote=“chrisb”]Weil es Daten fuer den Kontext HTML behandelt.

Der interessiert hier aber kein bisschen. Der Wert wird nicht als HTML ausgegeben, sondern nach einer Datei gesucht und diese eingebunden.[/quote]

naja… also zur dir chrisb^^ es gibt nen edit button :stuck_out_tongue:
Ne zum htmlspecialchars(); joa es behandelt HTML^^ Wie auch htmlentities() was allerdings alle Zeichen in das passende HTML umwandelt.
Es wird aber z.B. bei MySQL injection bzw. um das zu verhindern genutzt^^ Allerdings nutze ich dies auch nie da es unnötig ist^^ Angeblich könnte man damit in einer MySQL abfrage aus der einen ausbrechen und eine 2. eigene Erstelle… nach dem Motto (Achtung möchtegern code)

Username = meinname’); INSERT INTO tabelle (feld) VALUES (‘wert’)

$UserName = vompost mysqlquery("INSERT INTO tabelle1 (`username`) VALUES ('$UserName')")
Damit könnte man angeblich den 2. Query ausführen… bei mir hatte es nie geklapt da PHP wohl den String auch escaped übergibt (\ nutzt also statt " ’ " " ’ " macht)

[quote=“purschi”]jetzt geht aber wieso geht ist nicht wie ich es immer gemacht hatte mit

<?php include ("$name"); ?>[/quote]

Informiere dich ueber das Stichwort register_globals, und warum diese PHP-Einstellung auf off bleiben sollte.

so ok wenn ich jetzt ?schmogro=test1.php&text=testblabla

wie lesse ich es jetzt aus

geht ja nicht

[quote=“purschi”]so ok wenn ich jetzt ?schmogro=test1.php&text=testblabla

wie lesse ich es jetzt aus

geht ja nicht[/quote]

omg. - sorry…

=$_GET[‘schmogro’];=test1.php&$_GET[‘text’];=testblabla :wink:

echo $_GET['text'];

ah so

<?php echo $_GET['text']; ?>

ok leute ich bedanke mich

alles mit $_GET machen
mfg

[quote=“White-Tiger”]Ne zum htmlspecialchars(); […]
Es wird aber z.B. bei MySQL injection bzw. um das zu verhindern genutzt[/quote]
Nur von Leuten, die keine Ahnung haben.

[quote]Angeblich könnte man damit in einer MySQL abfrage aus der einen ausbrechen und eine 2. eigene Erstelle… […]
Damit könnte man angeblich den 2. Query ausführen…[/quote]
Nicht nur “angeblich” - SQL Injection ist ein sehr reales Problem.

Zwei Statements damit auszufuehren, verhindert PHP im allgemeinen - weil sich ueber mysql_query jeweils nur ein Statement ausfuehren laesst.

Aber auch in anderen Szenarien ist das relevant.
Nehmen wir an, du ueberpruefst Login-Daten mittels

Deinen Nutzernamen bekomme ich in Boards meist recht leicht raus - und wenn ich jetzt fuer $_POST[‘password’] den Wert 1’ OR 1 OR '1 uebergebe - dann hast du ein Problem.
Dann wird daraus in der Query naemlich WHERE … AND password = ‘1’ OR 1 OR '1’
Und 1, per OR mit irgendwas anderem verknuepft, ergibt true …

Das liegt an magic_quotes_gpc - eine Einstellung, um allzu unbedarfte Nutzer vor sich selbst zu schuetzen. In einer vernuenftigen Installation ist sie aber auf off gestellt, und mit PHP 6 wird sie, ebenso wie register_globals, ganz entfallen.

Die Funktion, die zum Absichern von Eingaben in MySQL-Queries da ist, heisst mysql(i)_real_escape_string.
Oder man nutzt Prepared Statements, da ist die Maskierung der Daten nicht mehr erforderlich, da sie getrennt vom Befehlsteil des Statements zur Datenbankschnittstelle transportiert werden, und somit keinen Schaden anrichten koennen.