Browser gibt keine Variablen mit über!!

Darkhell

Erfahrenes Mitglied
Hi,

folgendes Problem ist das ich ein Formular ausgefüllt hab und mein Script soll die daten dann in eine Datei schreiben. Rechte stimmen aber der Browser gibt keine Variablen mit über die Addresszeile und ich will ja nicht ständig die Daten eingeben.

Hier die Scripts:

Die edit_config.php (mit der ich die Variablen übergeben will)
PHP:
<?php

include ('../../config.inc.php');
include ('../vars.php');
function auslesen($datei) {
 $array = file($datei);
 for ($x = 0; $x < count($array); $x++){
  echo $array[$x] . " \n";
}
}

?>
<html>
<head>
<title></title>

</head>
<body text="<?=$set_textcolor?>" bgcolor="<?=$set_background?>" link="<?=$set_link?>" alink="<?=$set_alink?>" vlink="<?=$set_vlink?>">

<form action="edit_config_submit.php" method="POST" target=""><input type="hidden" name="data" value="config.inc.php" size="" maxlength=""><textarea name="text" cols="130" rows="35" style="color: <?=$set_textcolor?>; background: #BFDEFE; bold;"><?php auslesen('../../config.inc.php'); ?></textarea>

<input type="Submit" name="submit" value="Senden" alt="senden"></form></body>
</html>

und die edit_confg_submit.php (Variablen und script ausführen)
PHP:
<?php
error_reporting(E_ALL);

   if (is_file($data))
   {
     echo "Datei $data ist vorhanden.";
   }
   else
   {
     echo "Datei $data ist nicht vorhanden";
   }


  $handle = fopen($data,"w+");
   fwrite($handle, $text);
   fclose($handle);
   ?>
 
Zuletzt bearbeitet:
In der PHP.ini? LOS GEHTS

........
-------------------------------------------------------
Die sind Off soll ich die on machen?
Wo liegt die php.ini in linux (SuSE 10 PHP install per rpm)

ICH BIN DOCH BLIND<<<<< es steht in der phpinfo drin :-(

// edit

So sind ON
 
Setz die Einstellung lieber wieder auf off. Wenn Deine Scripts mit register_globals=off funktionieren dann funktionieren sie auch mit register_globals=on, aber nicht umgekehrt.
 
Ich denke mal ich hab nix verpasst, wenn ich sage:
"Variablen die du mit POST gesendet hast musst du mit $_POST[blub'] wieder holen."

Irgendwie sehe ich das nirgends bei dir im script.
 
Also muss ich jetzt in meinem Fall mein script so schreiben:

PHP:
<?php
error_reporting(E_ALL);

   if (is_file($_POST[data]))
   {
     echo "Datei $_POST[data] ist vorhanden.";
   }
   else
   {
     echo "Datei $_POST[data] ist nicht vorhanden";
   }


  $handle = fopen($_POST[data],"w+");
   fwrite($handle, $_POST[text]);
   fclose($handle);
   ?>
Dann bekomm ich diese Fehlermeldungen hier:
Notice: Use of undefined constant data - assumed 'data' in /srv/www/htdocs/data/admincenter/edit/edit_config_submit.php on line 4
Datei ../../config.inc.php ist vorhanden.
Notice: Use of undefined constant data - assumed 'data' in /srv/www/htdocs/data/admincenter/edit/edit_config_submit.php on line 14
Notice: Use of undefined constant text - assumed 'text' in /srv/www/htdocs/data/admincenter/edit/edit_config_submit.php on line 15
 
Zuletzt bearbeitet:
Hallo!

Ändere es mal auf $_POST['data'].

Gruss Dr Dau

[edit]
Und beim echo() auf "Datei ".$_POST['data']." ist vorhanden."..... beim anderen echo() ebenfalls.
Und dass die Daten aus dem Formular nicht in der URL übergeben werden ist klar, Du verschickst das Formular ja mit POST und nicht mit GET. ;)
[/edit]
 
Zuletzt bearbeitet:
AHHHHHHH da lag der unterschied ich hab noch nie gewusst das eigentlich beide daten weitergeben. hab gedacht get wär für was anderes. Okay mach ich dann. ähm gibt es eine möglichkeit die \ wegzumachen die er beim dateischreiben erstellt. ich mein so siehts im moment aus:
vorher:$set_servername="Servername here";
nachher: $set_servername=\"Servername here \";
es soll aber bei "vorher" bleiben!

wie geht das ich hab das schonmal woanders gesehen aber ich weiß nicht wo.
 
Zuletzt bearbeitet:
Alles was über die URL kommt (also z.b. auch Links) wird per GET gesendet.
Formulardaten solltest Du aber möglichst nicht per GET senden.
Zum einem weil POST sicherer ist und zum anderen habe ich mal irgendwo gelesen dass die Länge der URL irgendwo begrenzt ist.

Irgendwie sehe ich keinen Sinn in Deiner edit_confg_submit.php.
Du prüfst ob die Datei vorhanden ist..... aber egal ob sie vorhanden ist oder nicht, wird in die Datei geschrieben..... notfalls wird versucht sie anzulegen. ;)
 
Zuletzt bearbeitet:
Irgendwie sehe ich keinen Sinn in Deiner edit_confg_submit.php.
Du prüfst ob die Datei vorhanden ist..... aber egal ob sie vorhanden ist oder nicht, wird in die Datei geschrieben..... notfalls wird versucht sie anzulegen. ;)

Ganz einfach, wenn ich w nehme setzt er den zeiger an das ende der Datei. wenn ich w+ nehme setzt er den zeiger an den anfang und überschreibt die datei da die bytelänge auf 0 gesetzt wird. wie geht das den jetzt mit den \
 
Zuletzt bearbeitet:
Zurück