daHooligan
Hy,
ich habe ein Script geschrieben, das mir die zu einer gewissen id gehörige URL eines Links aus einer DB ausliest und eine entsprechende Weiterleitung zu der Ziel-URL öffnet.
Die Übergabe an sich hatte ich mir mit "link.php?id=0000" 0000 ist die id des entsprechenden Links.
Irgendwie geht das aber mit ?id=0000 nicht.... Warum???
MfG
daHool
survivor
ein entsprechender auszug aus deinem script wäre vielleicht ganz hilfreich.
daHooligan
na ja.... was soll ich da als script hergeben...
stark verkürzt, ohne MySQL-Abfragen etc.:
script.php:
| php: |
1:
2:
3:
4:
5:
|
<?
echo $id;
?>
|
|
wird aufgerufen mit script.php?id=1
und jetzt sollte er "1" ausgeben, tut er aber net....
M.t.B.
Ich habe eine Idee (ist zwar höchstwahrscheinlich falsch, aber ein Versuch ist es wert):
Erstelle doch eine neue Variable mit folgendem Inhalt:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
<meta http-equiv="refresh" content="0; URL="<?php
$id=0000;
$gleich="=";
$name_der_neuen_Variable="link.php?id";
$name_der_neuen_Variable.=$gleich;
$name_der_neuen_Variable.=$id;
print("$name_der_neuen_Variable");
?>">
|
|
Geht natürlich auch einfacher
ThiefMaster
rofl was soll denn das bringen? o_O
probier mal $_REQUEST['id'] statt $id aus.
M.t.B.
Was heißt, was soll das bringen? Eine Weiterleitung auf die gewünschte Seite mit der gewünschten $id.
survivor
das heißt wahrscheinlich: das bringt überhauptnix
daHooligan hat wahrscheinlich die register_globals auf off stehen. wird ThiefMaster schon recht haben.
M.t.B.
Also, ich habe jetzt das Script ein bisschen verändert, jetzt funzt es auf jeden Fall:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
|
<meta http-equiv="refresh" content="0; URL=<?php
$id="0000";
$gleich="=";
$name_der_neuen_Variable="http://www.domain.de/link.php?id";
$name_der_neuen_Variable.=$gleich;
$name_der_neuen_Variable.=$id;
print("$name_der_neuen_Variable");
?>"> |
|
daHooligan
hmmm... also wenn ich phpinfo() mach', kommt zwar register_globals sei off, in der php.ini ists aber auf 'on' gesetzt.....
Mit dem "$_REQUEST['id'];" funjzt auch net...
max77
Wie wäre es mit:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
<?php
echo '<a href="'.$_SERVER["SCRIPT_NAME"].'?id=MeinText"> Bitte klicken </a> <br />';
if(isset($_GET["id"]))
echo 'Uebegebener Wert: '.$_GET["id"];
?>
|
|
Kurze Erläuterung:
Beim anklicken des Links "Bitte Klicken" wird über die URL ein Wert für id übergeben.
Ist dieser gesetzt, wird er angezeigt. Einach mal kopieren, testen und noch mal fragen, falls das nicht ganz verständlich war...
Gruß Dirk
daHooligan
also ner erleuterung hätte es net bedurft.
Das Problem bei mir ist, dass "register_globals" in der php.ini auf ON gesetzt ist, in bei "phpinfo() aber als OFF erscheint.
M.t.B.
Dann setzt "register_globals" in der php.ini nochmal auf ON.
Wenn das nichts hilft, dann auf OFF und wieder auf ON.
max77
Also ich würde das REGISTER_GLOBAS auf jeden Fall auf OFF (!!!!) stellen.
Ich zumindest habe immer ein ungutes Gefühl dabei, etwas zu Programmieren bei dem jedem meine Variablen manipulieren kann.
Als Erläuterung zum Script:
Wenn Du auf den Link klickst, wird über den Aufruf der Datei die Variable "id" übergeben, in dem Sie in der URL angehängt wird (Übergabe mit GET).
Ist diese gesetzt, was beim Aufruf über den Link der Fall ist, wir diese angezeigt. So kann man zum Beispiel ein Menü aufbauen, in dem immer die gleiche Seite aufgerufen wird. Abhängig von einer so übergebenen Variablen änder sich der Inhalt...
Falls noch immer nicht verständlich, einfach noch mal nachfragen (vielleicht auch eine kurze Info, wo genau das Porb liegt....)
Gruß
Dirk
M.t.B.
@ max77:
daHool hat doch gesagt, dass er keine Erklärung braucht.
@ daHooligan:
Hast du es mal mit einer Neuinstallation von php oder dem Server versucht?
neonator
hi
wenn in der phpinfo steht, register_globals sei off, dann ist es sicher auf off, trotz php.ini.. vielleicht ist ein fehler in der ini, oder du hast es umgestellt und den server nicht neu gestartet ..
aber meine empfehlung: die meisten provider haben register_globals auf OFF!
darum sollte jedes script auch so funktionieren.. wenn sie on sind, ist das auch kein prob mehr...
benutz einfach $_GET und $_POST ...
das ist mein empfehlung
gruss
jone
max77
@MtB
Sorry... (wer lesen kann ist wohl klar im Vorteil *schäm*)
Zum Thema REGISTER_GLOBAS:
Normalerweise kann die PHP.INI in der .htaccess noch mal überschrieben werden. Dann steht in der PHP.INI bspw. ON und PHPINFO gibt doch OFF aus, weil es eben noch mal überschrieben wird.
Gruß Dirk
daHooligan
also server neu installieren ist praktisch unmöglich, weil da unter anderem meine ganze telefonanlage dragnhängt und sich ihre ganzen adressen etc. von dem holt und ohne den hätte ich ein echtes Problem (mir ist demletzt das Netzteil kaputt gegangen und ich hab nicht mal den rolladen hochmachen können, weil der rolladenmotor am server hängt, ich bin also total abhängig davon.
Ich hab ihn inzwischen mal neu gestartet, es geht aber immernohc nicht.
An irgendner .htaccess kann es kaum liegen, weil ich nen windows-server hab.
Nur wie krieg' ich es ansonsten hin, dass mir ein Script eine Variable weitergibt???
survivor
$_REQUEST['id']; muss funktionieren! ansonsten hast du
irgendwo bei dir einen fehler. die frage ist nur wo
willst du deinen rollladen über's internet steuern? das fände ich ja mal lustig, besonders wenn ein hacker mal die kontrolle über deinen server übernimmt
daHooligan
nee, nicht übers internet, sondern nur über meinen lokalen server....
zurück zum thema:
wie soll ich das " $_REQUEST['id']; " denn einsetzen???
survivor
schade
$_REQUEST['id'] muss überall dort stehen, wo du auf den inhalt der variable $id (die du mit der url übergeben hast) zugreifen willst. oder du schreibst am anfang vom script einfach $id = $_REQUEST['id']; und das war's.