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)
Per Button, Datei includen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Per Button, Datei includen


 
SusanneW
24-03-2008, 02:07 
 
Hallo @all

Hab mal wieder ein Anfänger prob, ich hoffe Ihr könnt mir helfen.
Hier der Code

<?php
// Das ist eine Testdatei die wird includet
// hab 3 Schalter (sollen mehr werden) Banner, Ordner, Dateien.
// Die Schalter werden auch fein angezeigt.
// Wenn ich auf ein drücke möchte ich das eine bestimmte Datei includet wird
// Ka wie ich das anstellen kann, hab schon stundenlang rumprobiert.
// Hat jemand ne Idee???

$kl_schalter = array(
1 => array(
'name' => 'Banner',
'icon' => '',
'link' => 'variablen/banner.php',
),
11 => array(
'name' => 'Ordner ',
'icon' => '',
'link' => 'variablen/ordner.php',
),
20 => array(
'name' => 'Dateien ',
'icon' => '',
'link' => 'variablen/dateien.php',
),

);

if(isset($_GET['zahl']) AND isset($kl_schalter[$_GET['zahl']]))
{
if(isset($_POST['$kl_schalter']))
{
include $kl_schalter[$_GET['zahl']]['link'];
}
}

echo '
<form action="inc_kategorien_links.php"
method="post">
<span> Die ersten Bilderpfade in die Tabelle eintragen </span><br />
';
// hier werden die 3 Schalter erzeugt
foreach($kl_schalter as $link => $v)
{


echo ' <span><input type="submit"
name="'.$kl_schalter.'" value="'.$v['name'].'" />&nbsp;</span>';

echo '<br />';
}
echo'
</form>
';
// Zum testen geht aber leider nicht
if(isset($_POST["$kl_schalter"]))
{

echo'

zeig mal den link an: '.$kl_schalter["$link"]['link'].'<br />
<br />'.$link.'<br />

';
}
?>


LG
Susanne

 
$_Baker
24-03-2008, 03:03 
 
Da müssen doch irgendwelche Fehlermeldungen erscheinen, wenn mit include etwas nich stimmen sollte?
Wäre gut, wenn du die posten könntest.

Und gib mal den Inhalt von
<?php
$kl_schalter[$_GET['zahl']]['link']
?>

aus.

 
SusanneW
24-03-2008, 12:27 
 
Hallo

@$_Baker
Ein fehler erscheint nicht, es wird die letzte Datei includet in meinem
Fall diese: variablen/dateien.php.

wenn ich
$kl_schalter[$_GET['zahl']]['link']
mit echo abfrage kommt das an: variablen/dateien.php
und egal auf welchen Schalter ich klicke.

In meinem code sind:
ein bestimmt mehr fehler drinn,
irgendwas mach ich da verkehrt.

Um mein prob zu lösen könnte ich jeden Schalter einzeln setzen
und einen eindeutigen namen geben, zb.
Schalter01, Schalter02, Schalter03.

und dann jeden einzeln abfragen zb. mit.


if(issert($_POST[Schalter01]))
{
include(variablen/banner.php);
}
if(issert($_POST[Schalter02]))
{
include(variablen/ordner.php);
}
if(issert($_POST[Schalter03]))
{
include(variablen/dateien.php);
}


Es moch doch aber irgendwie anders gehn, hat jemand ne gute Idee?

LG
Susanne

 
asp2php
24-03-2008, 12:45 
 
Es sind mehrere Fehler in deinem Script:

1: if(isset($_POST['$kl_schalter'])): warum packst du die Variable in Hochkommata ein?

2: $kl_schalter ist ein Array, also was soll: name="'.$kl_schalter.'" werden?

3: if(isset($_POST["$kl_schalter"])) wenn dann ohne ". Manchmal frage ich mich, welcher Idiot von den PHP-Entwickler damals war auf die Idee gekommen, Variable direkt in String einbetten zu ermöglichen. Das verwirrt die Anfänger, die der deutschen/englischen/wasauchimmer Spache nicht mächtig sind, und daher meinen sie, sie müssen alle Variable in String einpacken, um verwenden zu können. Stattdessen, wenn man nur die Stringverkettung oder formatierte Ausgabe zulässt, dann kommt solcher idiotischer Programmierstil nie zum Vorschein.

 
SusanneW
24-03-2008, 13:01 
 
Hallo

@ asp2php
zu 1: if(isset($_POST['$kl_schalter']))
müste ich dann so schreiben: if(isset($_POST["$kl_schalter"]))?
wenn ich es so mache: if(isset($_POST[$kl_schalter]))
kommt ne fehlermeldung array is emty.

zu 2: da hast bestimmt recht.
was müste da stehn, dass es klappt?

zu 3:
wenn ich es ohne " " mache kommt ne fehler medung das das array leer ist.

LG
Susanne

 
Griecherus
24-03-2008, 13:12 
 
Die " haben nichts um Variablen verloren. Doublequotes sind Delimiter (Begrenzungszeichen) für Zeichenketten. Keine Ahnung, wieso dieser Quatsch so weit verbreitet ist, aber er ist dennoch Quatsch.
Der einzige Grund, weswegen man soetwas machen wollen könnte, wäre die Typisierung nach String, aber dafür gibt es Funktionen und Konstrukte. (string), strval(), settype($var, 'string') ...

Also vergiss das schnell wieder :)

P.S.
Mein pesönlicher Favorit ist ja "" . $var . "";
Was denkt man sich dabei? :rolleyes:

 
SusanneW
24-03-2008, 13:26 
 
Hallo


@Griecherus
ok die "" bei den variablen sind nun weg, wenn ich die Datei ausführe erhalte die Fehlermeldung:
Warning: Illegal offset type in isset or emty in (pfad zur Datei) line 55
ist das:
if(isset($_POST[$kl_schalter]))

wie kann ich es nun erreichen das per klick auf ein Schalter die Datei includet wird?
Ich muss noch andere fehler drinn haben, weil es ja nicht klappt.


LG
Susanne

 
asp2php
24-03-2008, 13:29 
 
SusanneW, zu 1 und 3: kein Wunder, denn wie gesagt $kt_schalter ist ein Array, du kannst nicht einfach so zuweisen oder verwenden. Überlege nochmals dein Konzept und formuliere um, so dass du anhand der POST-Variable mit dem Inhalt von dem Array $kt_schalter vergleichen kannst. Nicht einfach hirnlos irgendwas nehmen.

 
SusanneW
24-03-2008, 14:29 
 
Hallo

Denk doch mal bitte daran das ich noch Anfängerin bin,
wenn ich wüste wie es geht würde ich doch hier nicht fragen.

ich hab sonstwas schon versucht, aber irgendwas mach ich falsch.
wenn ich zb. das mache:


foreach($kl_schalter as $link => $v)
{


echo ' <span><input type="submit"
name="'.$link.'" value="'.$v['name'].'" />&nbsp;</span>';

echo '<br />';
}

dann bekommt jeder Schalter ein namen, in meinem fall:
1, 11, 20.

wenn ich dann den Schalter mit:


if(isset($_POST[$link]))
{

echo'

zeig mal den link an: '.$kl_schalter["$link"]['link'].'<br />
<br />'.$link.'<br />

';
}

abfrage
dann hab ich das prob, durch die schleife wird $link auf 20 gesetzt
und mit echo erhalte ich dann die Ausgaben:
zeig mal den link an: variablen/dateien.php

20

aber auch nur wenn ich auf den 3.Schalter klicke.
bei den ersten beiden erhalte ich keine Meldung.
Kann mir nicht jemand ne Lösung geben und diese etwas erklären?
So mach ich es, wenn ich ne Antwort weiß.

LG
Susanne

 
SusanneW
24-03-2008, 23:55 
 
Hallo

Hab nun dank eines Freundes die Lösung für mein Problem gefunden.
Vieleicht kann es ja jemand gebrauchen.
Hier nun der code.

<?php
$kl_schalter = array(
1 => array(
'name' => 'Banner',
'icon_style'=> 'hier kann man zb. style Eigenschafften
für den Input Button festlegen ',
'link' => '../variablen/banner.php',
),
11 => array(
'name' => 'Ordner ',
'icon_style'=> 'background-color: #FFCC99;
padding-left: 16px;
background-image:
url(../grafiken/ordner/folder.gif);
background-repeat: no-repeat;
background-position: left center; ',
'link' => '../variablen/ordner.php',
),
20 => array(
'name' => 'Dateien ',
'icon_style'=> '',
'link' => '../variablen/dateien.php',
),
);

if(isset($_REQUEST['arr']))
{
$inhalt = $_POST['arr'];
// hier wird abgefragt welcher Button gedrückt wurde, die dazugehöhrende
// Datei wird includet
foreach($inhalt as $key => $val)
{
include $kl_schalter[$key]['link'];
}
}
// Ab hier kann man den code auch in eine andere Datei schreiben,
// dort wo man die Button haben möchte
echo'
<form action="inc_kategorien_links_test.php"
method="post">
<span> Die ersten Bilderpfade in die Tabelle eintragen </span><br />
';
foreach($kl_schalter as $link => $v)
{
echo '
<span><input style="'.$v['icon_style'].'" type="submit"
name="arr['.$link.']" value="'.$v['name'].'" /></span><br />
';
}
echo'
</form>
';
?>



Dank noch mal an meinen Freund Taps der mir wie immer sehr geholfen hat.
So langsam frag ich mich was mir das Forum hier bringt.
Is ne tolle Site hier, aber wenn jemand hilfe benötig ist er hier, meiner Meinung nach, verkehrt.
Besonders Anfängerinnen wie ich.
Wenn das Forum hier meine einzige Anlaustelle wär, hätt ich,
Websiten erstellen, php schon geschmissen.
Eigendlich lag ich mit meinen Anfangscode ganz gut, nen paar kleinigkeiten und es hätt geklappt.
Schade das von Euch keiner in der Laage war mir zu helfen.
Hoffe aber das ich mit meiner Meinung allein da steh.

LG
Susanne

 
asp2php
25-03-2008, 14:31 
 
Wenn du meinst, einen Privatsupport hier zu finden, dann geht woanders spielen. 24 Stunden und schon meckern :motz: Wenn du schnell haben willst dann bezahle für das was du haben willst, ansonstens bitte warten, denn es waren Feiertage, die helfenden User hier haben auch ein Privatleben, sie offern ihre Freizeit hier, um ihr Wissen zu teilen. Merke dir das zukünftig. :teach:


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