Autor |
Nachricht |
ive_beaten_tetris
Threadersteller
Dabei seit: 22.10.2007
Ort: Berlin
Alter: -
Geschlecht:
|
Verfasst Sa 17.11.2007 14:24
Titel gültigkeitsbereich für variablen [PHP] |
|
|
da mir meine php quellen auch nich weiter helfen konnten wende ich mich an euch. mein problem ist folgendes: in einer index.php definiere ich eine variable. in einer externen datei die dann später includet wurde soll diese variable auf ihren wert geprüft werden und mit mysql agieren. das ganze sieht dann so aus:
Code: | <?php
//verbidung zur datenbank
$username="username";
$password="password";
$database="database";
$db_connection=mysql_connect('server', $username, $password);
$db_select=mysql_select_db($database) or die( "unable to select database");
echo $db_connection;
echo $db_select;
//schreiben in datenbank
// ###################################### NEWS ######################################
if($entry_as == "news"){
mysql_query(
"INSERT INTO tabelle1 (title,content,mood) VALUES(
'".$_POST[title]."',
'".$_POST[content]."',
'".$_POST[mood]."'
)"
);
};
// ###################################### LINKS ######################################
if($entry_as == "links"){
mysql_query(
"INSERT INTO tabelle2 (title,content,mood) VALUES(
'".$_POST[title]."',
'".$_POST[content]."',
'".$_POST[mood]."'
)"
);
};
?> |
entry_as ist die variable die auf ihren wert geprüft werden soll wie oben gezeigt. in anderen includeten dateien existiert der wert für diese variable noch wenn ich das ganze beispielsweise mit echo ausgeben lasse. versuche ich den wert aber in diesem script ausgeben zu lassen passiert gar nichts. definiere ich die variable hier neu... gehts
blickt ihr durch?
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 17.11.2007 14:30
Titel
|
|
|
wo wird die datei denn includiert?
|
|
|
|
|
Anzeige
|
|
|
ive_beaten_tetris
Threadersteller
Dabei seit: 22.10.2007
Ort: Berlin
Alter: -
Geschlecht:
|
Verfasst Sa 17.11.2007 14:42
Titel
|
|
|
das passiert nachdem ein formular ausgefüllt und abgesendet wurde. also das formular verweist auf eine andere php datei die dir sagt "danke und blah" und sowas und in dieser php wird dann meine funktion aufgerufen. das formular ist ein link der auf ner anderen php seite steht
edit:
das ist die struktur. der pfad unterschied wirds aber denke ich nicht sein da die anderen fuktionen die im selben ordner liegen wie meine funktion vorhin $entry_as immer noch als gültig erkenne und dessen wert ausgeben können per echo
Zuletzt bearbeitet von ive_beaten_tetris am Sa 17.11.2007 14:51, insgesamt 1-mal bearbeitet
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 17.11.2007 15:12
Titel
|
|
|
raff ich zwar immer noch nicht so genau, aber wenn du bspw. die variable $entry_as (so hab ich das jetzt verstanden) definierst, dann mit dem formular in einem hidden-field absendest, musst du sie aus dem $_REQUEST bzw. $_POST-Array nehmen. Denn standardmäßig steht die Einstellung register_globals auf off und somit steht $entry_as nicht automatisch zur verfügung. $_REQUEST['entry_as'] wäre dann das Zauberwort. Ansonsten würde ich niemals ungefilterte Request-Variablen direkt in sql-statements einsetzen, das öffnet dem Missbrauch Tür und Tor.
Generell gilt: Variablen, die du außerhalb einer Funktion definierst oder auch nur deklarierst, sind im Scope der Funktion nicht verfügbar (anders als bspw. in Javascript). Du kannst sie aber mit dem Schlüsselwort "global" innerhalb der Funktion ansprechen.
Zuletzt bearbeitet von bacon am Sa 17.11.2007 15:14, insgesamt 1-mal bearbeitet
|
|
|
|
|
ive_beaten_tetris
Threadersteller
Dabei seit: 22.10.2007
Ort: Berlin
Alter: -
Geschlecht:
|
Verfasst Sa 17.11.2007 15:22
Titel
|
|
|
ne ne meine formulare sprechen diese variable nicht an
es handelt sich hier um eine von mir definierte variable die dazu dient eine abfrage zu gestalten. sie wird einmal mit einem wert gesetzt und sonst nur in einer anderen datei abgefragt aber nie über ein formular vergeben oder weiter gereicht oder sonstiges
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 17.11.2007 15:25
Titel
|
|
|
-.- aber Variablen gelten doch jeweils nur für einen einzigen Seitenaufruf (das liegt an der Architektur der ganzen Sache, http - statuslos und so). Sprich, wenn du die Variable in einem Seitenaufruf - damit Scriptaufruf - definierst, und dann per POST oder GET-Request einen neues Script startest, ist die Variable fott. Weg, für immer und ewig. Variablen werden nicht implizit über mehrere HTTP-Requests hinweg gespeichert.
Es gibt aber einen Weg, um das zu bewerkstelligen, nämlich explizit über die Verwendung der PHP-eigenen Session-Funktionen. Siehe PHP-Doku.
|
|
|
|
|
ive_beaten_tetris
Threadersteller
Dabei seit: 22.10.2007
Ort: Berlin
Alter: -
Geschlecht:
|
Verfasst Sa 17.11.2007 15:32
Titel
|
|
|
naja da sich der wert der variable aber mit jedem seitenaufruf verändert werd ich mal versuchen das ganze mit mysql umzusetzen
danke <3
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 17.11.2007 15:51
Titel
|
|
|
jo kein problem. wahrscheinlich hab ich die problematik auch nicht ganz verstanden
|
|
|
|
|
|
|
|
Ähnliche Themen |
[php] ob_start() und variablen aus DB?!
Variablen erstellen
Header mit Variablen?
variablen in html
[PHP] Variablen verknüpfen
PHP - Variablen in SQL Abfragen
|
|