2tes Problem, Variabeln verschwinden.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 2tes Problem, Variabeln verschwinden.

    Mal wieder dabei... Ich lern es nochmal irgendwann...*gg... als newbie nicht so einfach...

    also ich hab hier ein script

    wo er mir (wie er auch soll) am Anfang die Variabeln anzeigt...

    array(1) { [0]=> array(41) { [0]=> string(1) "1" ["id"]=> string(1) "1" [1]=> string(7) "Tristar" ["login"]=> string(7) "Tristar" [2]=> string(32) "f867113174ccc776dbc75fef16744b95"


    Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    2. <HTML>
    3. <HEAD>
    4. <TITLE>Gästebuch</TITLE>
    5. </HEAD>
    6. <STYLE>
    7. BODY { background-color:#113a67; font-family:Verdana,Arial,Tahoma; font-size:8pt; color:#ffffff }
    8. A { font-family:Verdana,Arial,Tahoma; font-size:8pt; color:#ffaf49 }
    9. H1 { font-family:Verdana,Arial,Tahoma; font-size:16pt; color:#ffaf49 }
    10. HR { color:#ffffff }
    11. TD { font-family:Verdana,Arial,Tahoma; font-size:8pt; color:#ffffff }
    12. INPUT,TEXTAREA { background-color:#517aa7; border:1px solid #ffffff; font-family:Arial,Tahoma; font-size:8pt; color:#ffffff; }
    13. </STYLE>
    14. <BODY>
    15. <?
    16. ##### Admin-Passwort #####
    17. $adminpasswort="12345";
    18. // Umstellung auf reg_glo=Off Anfang
    19. $PHP_SELF = $_SERVER['PHP_SELF'];
    20. foreach($_POST as $key => $value) {
    21. $$key = isset($_POST[$key]) ? strip_tags($_POST[$key], "<b><i><strong>") : "";
    22. }
    23. foreach($_GET as $key => $value) {
    24. $$key = isset($_GET[$key]) ? $_GET[$key] : "";
    25. }
    26. // Umstellung auf reg_glo=Off ENDE
    27. ########### HAUPTPROGRAMM ###########
    28. $eintrag = isset($_POST['eintrag']) ? $_POST['eintrag'] : "";
    29. $senden = isset($_POST['senden']) ? $_POST['senden'] : "";
    30. $nname = isset($_POST['nname']) ? htmlspecialchars($_POST['nname']) : "";
    31. $kommentar = isset($_POST['kommentar']) ? $_POST['kommentar'] : "";
    32. $kommentar = strip_tags($kommentar,"<b><i><strong>"); // Mehr Sicherheit
    33. $admin_login = isset($_GET['admin_login']) ? $_GET['admin_login'] : "";
    34. $admin = isset($_POST['admin']) ? $_POST['admin'] : "";
    35. $loeschen = isset($_POST['loeschen']) ? $_POST['loeschen'] : "";
    36. $passwort = isset($_POST['passwort']) ? $_POST['passwort'] : "";
    37. $to_delete = isset($_POST['to_delete']) ? $_POST['to_delete'] : "";
    38. if ($eintrag) { eintrag(); }
    39. else if ($senden) { auswertung($kommentar,$nname,$hpage,$email); }
    40. else if ($admin_login) { admin_login(); }
    41. else if ($admin) { admin($passwort); }
    42. else if ($loeschen) { loeschen($to_delete); }
    43. else gaestebuch_zeigen();
    44. ########### FUNKTIONEN ###########
    45. function gaestebuch_zeigen ()
    46. {
    47. global $PHP_SELF;
    48. echo <<<FORMULAR
    49. <h1>Gästebuch</h1>
    50. <center>
    51. FORMULAR;
    52. $eintrag=array();
    53. $lesen=array();
    54. $teil=array();
    55. if (file_exists("gbuch.txt")) {
    56. $datei=fopen("gbuch.txt","r");
    57. while (!feof($datei)) {
    58. $lesen=fgets($datei,100000);
    59. array_push($eintrag,$lesen);
    60. }
    61. array_pop($eintrag);
    62. arsort($eintrag);
    63. foreach ($eintrag as $zeile) {
    64. $teil=explode("|",$zeile);
    65. $sekunden=$teil[0];
    66. $zeit=$teil[1];
    67. $name=$teil[2];
    68. $text=$teil[3];
    69. echo "<p align=\"justify\" style=\"margin-left:17pt;margin-right:25pt\">\n";
    70. echo"$zeit<br>\n";
    71. echo "<img src=\"gb_person.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\">&nbsp;$name<br>\n";
    72. echo "<p align=\"justify\" style=\"margin:40pt; margin-top:0pt; margin-bottom:0pt\">$text</p>";
    73. echo "</p>\n";
    74. echo"<hr width=\"80%\" color=\"#2f5a4f\" size=\"1\">\n";
    75. }
    76. }
    77. var_dump($userpro);
    78. echo "<p align=\"right\"><a href=\"{$_SERVER['PHP_SELF']}?include=43&session_id=<?=$session_id?>&ampadmin_login=true\">Admin</a>\n";
    79. }
    80. var_dump($userpro);
    81. function eintrag()
    82. {
    83. global $PHP_SELF;
    84. global $nname;
    85. global $kommentar;
    86. $ua=getenv("HTTP_USER_AGENT");
    87. if (1*strpos(strtolower($ua),"msie")>0) {
    88. $breite1=38;
    89. $breite2=62;
    90. } else {
    91. $breite1=22;
    92. $breite2=30;
    93. }
    94. ?>
    Alles anzeigen


    was mir aufgefallen ist...

    wenn ich den Admin button nach der klammer setz, ist die Variabeln vorhanden, nur vor der Klammer nicht...


    Quellcode

    1. <?
    2. }
    3. }
    4. var_dump($userpro); // variabeln nicht vorhanden
    5. echo "<p align=\"right\"><a href=\"{$_SERVER['PHP_SELF']}?include=43&session_id=<?=$session_id?>&ampadmin_login=true\">Admin</a>\n";
    6. } //<---- diese klammer mein...
    7. var_dump($userpro); // variabeln vorhanden
    8. ?>


    Vielleicht könnt ihr mir ein Tip geben/Helfen...

    Mit session_start (); kann ich die variabeln auch net zurückhohlen...

    greets
  • session_start() sorgt nicht dafür, dass alle Variablen verfügbar bleiben. Variablen die du "zurückholen" willst, musst du in einer SESSION Variablen speichern.

    Quellcode

    1. $_SESSION['var'] = 'value';


    zu deinem "Klammerproblem"
    Wenn ich die Einrückungen mal beiseite lasse, dann sieht das so aus, als ob das Funktionsklammern sind.
    Funktionen sind eigene Blöcke. In ihnen hast du keinen Zugriff auf externe Variablen.
    Am besten (saubersten) du übergibst die Variable als Funktionsparameter.
    Am schnellsten (unsaubersten) machst du die Variable global.
    (Hast du ja bereits mit $PHP_SELF schon gemacht)
  • "d0nUt" schrieb:

    session_start() sorgt nicht dafür, dass alle Variablen verfügbar bleiben. Variablen die du "zurückholen" willst, musst du in einer SESSION Variablen speichern.

    Quellcode

    1. $_SESSION['var'] = 'value';


    zu deinem "Klammerproblem"
    Wenn ich die Einrückungen mal beiseite lasse, dann sieht das so aus, als ob das Funktionsklammern sind.
    Funktionen sind eigene Blöcke. In ihnen hast du keinen Zugriff auf externe Variablen.
    Am besten (saubersten) du übergibst die Variable als Funktionsparameter.
    Am schnellsten (unsaubersten) machst du die Variable global.
    (Hast du ja bereits mit $PHP_SELF schon gemacht)


    Dies hab ich versucht über

    Quellcode

    1. $_SESSION['Userpro'] = '1';


    ohne nennenswerten erfolg, das einzigste was ich hinbekommen habe, das er die Daten von $php_self in userpro gespeichert hat, nur nicht andersherum... (die daten von PHP_self bringen ja nichts in Userpro, da da nicht Usernamen und so vorhanden sind und den rest gelöscht hatte was an variabeln drin stand)... werd wohl Morgen weiter dranrumbasteln... Da wie gesagt, die variabel ($userpro) von den Sript vorher gesetzt wird...

    greets
    Toxic
  • $_SESSION['Userpro'] = '1' != $userpro

    um mit der session zu arbeiten musst auch $_SESSION['Userpro'] verwenden.

    Mach einfach mal

    Quellcode

    1. $_SESSION['userpro'] = "1";
    2. echo $_SESSION['userpro'];


    Du wirst sehen das sie wunderbar gesetzt wird.
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • Hallo, dies hab ich beides schon vorher auch proiert, nur gibt er mir wie vorher "1NULL" vor der Klammer aus, statt wie in der Variabel steht...

    array(1) { [0]=> array(41) { [0]=> string(1) "1" ["id"]=> string(1) "1" [1]=> string(7) "Tristar" ["login"]=> string(7) "Tristar" [2]=> string(32)

    u.s.w

    also, dies bring mich bei dem Problem auch nicht weiter... oder ist das normal das so wenig angezeigt wird an variabeln???

    wenn ich auf

    Quellcode

    1. $_SESSION['userpro'] = "$userpro";
    2. echo $_SESSION['userpro'];


    geh, gibt er mir nur ein Array aus, aber nicht was eigendlich in $userpro stehen sollte...

    greets
  • Das NULL kann nicht von dieser Ausgabe stammen

    machs mal so

    Quellcode

    1. $_SESSION['userpro'] = "1";
    2. echo $_SESSION['userpro'];
    3. die();


    "toxic" schrieb:

    ...gibt er mir nur ein Array aus, aber nicht was eigendlich in $userpro stehen sollte...

    mit echo $array erhältst du immer nur "Array" ausgegeben. Wenn du an den gesamten Inhalt willst, musst du print_r($array) nehmen
  • hallöchen...

    bei die(); bekomm ich ein weißes Bild, ohne fehlermeldung...

    und wenn ich es so mach wie oben beschrieben, ohne die();, sieht es so aus...

    [Blockierte Grafik: http://the-icc-group.de/gbbild/forum.JPG]

    oben die 1 ist vom "echo $_SESSION['userpro'];"
    unten die "null" ist vor der klammer "$userpro"
    ganz unten sind die Variabeln von "$userpro"

    bin schon am überlegen ob ich die ganzen funktionsklammern nicht verlege...

    greets