CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |

03.04.2009, 00:09:28
|
Anfänger
|
|
Registriert seit: Apr 2009
Alter: 48
Beiträge: 3
|
|
Probleme beim Funktionsaufruf mit eval()
Moin!
Mir fällt grad Überhauptnix mehr ein, hier mein Problem:
Also ich bastele mir per Verknüpfung eine Variable für einen Link zusammen. Funktioniert super ->
HTML-Code:
<a class="navilink" href="?seite=home/kontakt">kontakt</a>
Dann werden mit addslashes() die Anführungszeichen escapet, funktioniert auch super ->
HTML-Code:
<a class=\"navilink\" href=\"?seite=home/kontakt\">kontakt</a>
Nun soll die Variable per eval() an eine Funktion übergeben werde, die den Link grafisch darstellt. Funktioniert leider nicht so super! Aus irgendeinem Grund erscheint dann im Quelltext ->
HTML-Code:
<aclass="navilinkaktiv"href="?seite=home/kontakt">kontakt</a>
Mir sind jetzt nach langem Rumprobieren die Ideen ausgegangen, und es nervt mich total. Fällt da jemandem was zu ein?
Grüße,
Emu
|

03.04.2009, 04:11:06
|
 |
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: Probleme beim Funktionsaufruf mit eval()
Naja etwas mehr Code breuchte man schon. Allerdings müsste urlencode() und htmlentities() dir weiter helfen
Geändert von urvater (03.04.2009 um 04:11:35 Uhr)
|

03.04.2009, 05:50:37
|
Anfänger
|
|
Registriert seit: Apr 2009
Alter: 48
Beiträge: 3
|
|
AW: Probleme beim Funktionsaufruf mit eval()
Moin nochmal!
Hatte vorhin noch weiter daran rumgebastelt und dabei den Code weiter verwurschtelt. Bekomme das jetzt nur recht ähnlich wieder rekonstruiert. Wenn ich aber noch ein stripslashes einbaue (hatte ich anscheinend vergessen zu erwähnen), sieht im Quellcode wieder alles so aus vorher. Alles Gebastel hat nix genützt, aber mit urlencode() und htmlentities() kann ich erstmal leider auch nix anfangen.
Ok, ich versuch das alles noch mal deutlicher darzustellen:
Ich will eine Navigation bauen, bei der sich die einzelnen Links in runden (!) Boxen befinden. Für die Boxen gibt es eine Funktion, der der Link als String komplett mit entsprechendem HTML-Tag übergeben wird. Hier mal der Code für die Navigation.
PHP-Code:
function navisub () {
if (count(submenue())>0) {
foreach (submenue() as $menuepunkt) {
$breite=strlen($menuepunkt[1])*9+40;
$navisublink='<a class="navilink';
if (aktiv($menuepunkt[2])) $navisublink.=' aktiv';
$navisublink.='" href="?seite='.$menuepunkt[2].'">'.$menuepunkt[1].'</a>'."\n";
$navisublink=addslashes($navisublink);
rundebox($breite, 32, "#D1DDE5", "navisub", 0, stripslashes($navisublink));
}
}
}
Hoffe es wird so alles ein büschen klarer (bei mir waberts schon ordentlich im Kopf), und ein Dankeschön schonmal,
Emu
|

03.04.2009, 07:28:25
|
 |
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: Probleme beim Funktionsaufruf mit eval()
Dein Problem ist, daß du die CSS Klasse nicht schließt. Allerdings vermute ich mal, daß deine Anweisung auch nicht das macht, was du gerne hättest. Soll deine CLASS 'navilink' immer gesetzt werden und nur, wenn der menuepunkt als 'aktiv' gekennzeichnet ist 'aktiv heissen?
Wenn ja würde ich es so schreiben:
PHP-Code:
function navisub () {
$class = 'navilink';
if (count(submenue())>0) {
foreach (submenue() as $menuepunkt) {
$breite=strlen($menuepunkt[1])*9+40;
if (aktiv($menuepunkt[2])) { $class = 'aktiv'; }
$navisublink='<a class="'.$class.'"';
$navisublink.=' href="?seite='.$menuepunkt[2].'">'.$menuepunkt[1].'</a>'."\n";
$navisublink=addslashes($navisublink);
rundebox($breite, 32, "#D1DDE5", "navisub", 0, stripslashes($navisublink));
}
}
}
Ich denke mal, daß es das ist was du erreichen wolltest.
Geändert von urvater (03.04.2009 um 07:35:57 Uhr)
|

03.04.2009, 07:43:30
|
 |
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: Probleme beim Funktionsaufruf mit eval()
function.htmlentities
und
function.urlencode
Wenn du allerdings in deinem eigenen Code nicht mehr durch siehst, dann solltest du dir einen anderen Schreibstil überlegen. Etwas aufgeräumter und hier und da ein paar Notizen schaffen da immer schnell Abhilfe. :)
|

03.04.2009, 07:56:23
|
Anfänger
|
|
Registriert seit: Apr 2009
Alter: 48
Beiträge: 3
|
|
AW: Probleme beim Funktionsaufruf mit eval()
moin!
oh mann, immer noch wach... zu dem aktiv: die funktion aktiv liefert 'true' wenn die seite des links gerade angezeigt wird, die klasse 'navilink aktiv' hat einfach eine andere schriftfarbe.
aber trotzdem macht die ganze funktion nicht das, was ich gerne hätte, sie liefert nur leere boxen, weil sämtliche leerzeichen im link halt verschwinden. blödes ding! und wo bleiben denn die blöden dinger blos?
ich schätze das hängt irgendwie mit der eval-funktion zusammen, die lässt nämlich die funktion navisub erst aufs html los. der rahmen in dem die navigation und die inhalte stecken ist nämlich auch sone runde box...
ich glaub ich machs nicht mehr lange, schöne träume für alle erstmal...
|

03.04.2009, 08:44:21
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 16
Beiträge: 2.269
|
|
AW: Probleme beim Funktionsaufruf mit eval()
- Ich sehe kein eval()?
- Was willst du mit eval()?
- eval() ist böse!
- auch sehe ich kein return
|

03.04.2009, 12:01:44
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Probleme beim Funktionsaufruf mit eval()
kennst du den spruch eval is evil? man sollte eval( ) nur dann benutzen, wenn es keine andere möglichkeit gibt - ist das bei deinem problem tatsächlich der fall?
Eval is Evil, Part One
cx
|

03.04.2009, 15:03:48
|
 |
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: Probleme beim Funktionsaufruf mit eval()
Dann liegt also dein Problem in der Funktion rundebox().
Was mir eben noch aufgefallen ist, ist dein addslashes und stripslashes.
Erst setzt du den Link mit addslashes und dann entfernst du sie wieder bei der Übergabe an die Funktion.
Theoretisch hättest du es dann auch gleich so übergeben können.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:09:09 Uhr.
|