Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
php erkennt Variable nicht [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
php erkennt Variable nicht


 
Ogden
01-06-2006, 11:04 
 
Hallo!
Vielleicht kann mir jemand helfen:

Ich lese erst alle Namen von textareas aus (mit meta->name).
Anschließend möchte ich auf die Inhalte (values) dieser textareas zugreifen, um sie ineine Datenbank einzutragen.

Hier liegt das Problem: php erkennt nicht, dass es sich bei z.B. '$template', '$box1_headline' nicht um strings, sondern um Variablen handelt.


Hier der komplette fragliche Teil des Codes:


if ($id == "neu" && $btn=="Speichern")
{
$anfrage="SELECT * FROM `tbl_content`";
$ergebnis=mysql_query($anfrage);
$anzahl_felder = mysql_num_fields($ergebnis);
$neue_werte="'', ";
$i=1;
while ($i<$anzahl_felder){
$meta = mysql_fetch_field($ergebnis, $i);
$neue_werte.="'$meta->name', ";
$i++;
}
$i=0;

$neue_werte=substr($neue_werte,0,strlen($neue_werte)-2);

echo $neue_werte;

$anfrage="INSERT INTO tbl_content VALUES($neue_werte)";
mysql_query($anfrage);
echo "<br>Der neue Datensatz wurde gespeichert!";
exit();
}



Was kann ich machen, um das zu ändern?

Grüße

 
wahsaga
01-06-2006, 11:06 
 
Original geschrieben von Ogden
Hier liegt das Problem: php erkennt nicht, dass es sich bei z.B. '$template', '$box1_headline' nicht um strings, sondern um Variablen handelt.
Könnte es sein, dass du mit Strings noch nicht richtig umgehen kannst?

Wenn ja, dann lies bitte http://www.php.net/manual/de/language.types.string.php - insb. den Abschnitt über Variablen-Analyse (parsing).

 
Ogden
01-06-2006, 11:14 
 
Bin den Text durchgegangen, habe aber leider keine Lösung gefunden. Hast Du eine Idee?

 
RanzigeMilch
01-06-2006, 11:25 
 
oh mann
ließ es dir nochmal durch bitte

$neue_werte.="'$meta->name', "; ist falsch

Vorschläge:

1) $neue_werte .= $meta->name.", ";
2) $neue_werte .= "$meta->name, ";
3) $neue_werte .= '$meta->name, ';
4) $neue_werte .= '$meta->name'", ";

so und nun sag uns was richtig ist (nachdem du es dir nochmal durchgelesen hast)

gruß
ranzi

 
Ogden
01-06-2006, 11:38 
 
Funktioniert hat bei mir keine der vier Lösungen. Ich will ja nicht den Namen der textarea, sondern den Inhalt der textarea.

Wie wär's mit einer Antwort ohne Muliple choice, sondern mit einer Erklärung? :-)

 
onemorenerd
01-06-2006, 11:47 
 
Wie heißt deine Textarea, wie werden die Formulardaten übertragen und wie nimmst du sie in deinem Script in Empfang?

Aus if($btn=='Speichern') leite ich ab, dass du mit register_globals = on fährts. Schlechte Idee! Lies dazu im Manual nach!

 
Ogden
01-06-2006, 11:51 
 
Die textareas heißen "template", "box1_headline" etc.

Der Zugriff ist auch kein Problem!

Das Problem ist der Zugriff auf die Variable.

Hintergrund ist:
Die Anzahl der Felder in dem Formular ist variabel.
Deshalb erstelle ich mit php eine Auflistung aller Felder.
Ich kann deshalb nicht statisch auf die Felder zugreifen.
Anschließend lese ich die textareas aus.

Es geht also wirklich nur um die Frage, wie die Syntax lautet,
wenn - um es korrekt auszudrücken - der Name einer Variablen ebenfalls durch eine Variable festgelegt wird.

Idee?

 
onemorenerd
01-06-2006, 11:55 
 
$value = $_POST[$meta->name]? Ansonsten heißt das Stichwort "variable Variablen", sollte hierfür aber nicht nötig sein.

Und nicht vergessen: http://php.net/register_globals

 
Ogden
01-06-2006, 12:00 
 
Original geschrieben von onemorenerd
$value = $_POST[$meta->name]? Ansonsten heißt das Stichwort "variable Variablen", sollte hierfür aber nicht nötig sein.

Und nicht vergessen: http://php.net/register_globals


Super! Vielen Dank! Ich fühle mich von Dir verstanden ;-)

Der andere Aspekt ist mir bekannt, aber im Moment nicht so relevant für mich.

Grüße & schönen Tag


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:58 Uhr.