Webstatt.org - Community seit 2006 - 2012 (2024?)

Fehlermeldung bei function

user-333
21.10.2006 09:18

Morgen zusammen,

ja, meine funktion bereitet mir leider noch einige probleme. Und zwar gibt er mir folgende Fehlermeldung an:
Parse error: parse error, unexpected '=' in ***\gag_smarty\functions\functions.php on line 99


  function show_pic($img_id, $img_align, $sql_id, $div_align){
$watt = "[img id=" .$img_id. " align=" .$img_align. "]";
$sql = "SELECT * FROM gag_artikel_img WHERE id = '" .$sql_id. "'";
$result = mysql_query($sql);
while($pic = mysql_fetch_array($result)){
$picname = $pic['name'];
$pictext = $pic['titel'];
if ($pic['fotograf'] == "0"zwinkern{
$pict = "Unbekannt";
}
else{
$pict = $pic['fotograf'];
$picid = $pic['id'];
}
}
$info = getimagesize("images/content/artikel/small/" .$picname. ""zwinkern;
$infob = getimagesize("images/content/artikel/big/" .$picname. ""zwinkern;
$infob[1] = $infob[1]+30;
$neu = '<div style="width:' .$info[0] . '; align=' .$div_align. '>';
$neu. = "<a href=\"javascript:void(0)\" onclick=\"window.open('artikel/foto.php?fotoid=" . $picid . "', 'Bild', 'width=" . $infob[0] . "', height='" . $infob[1] . "'zwinkern;\">"; // 99
$neu. = "<img class=\"img1\" src=\"images/content/artikel/small/" .$picname. "\" alt=\"Zum Vergrößern bitte anklicken!\"/></a>";
$neu. = "<span style=\"font-weight:bold;\">" .stripslashes($pictext). "</span>";
$neu. = "Foto:" .$pict. "(<a href=\"javascript:void(0)\" onclick=\"window.open('artikel/foto.php?fotoid=" .$picid. "', 'Bild', 'width=" .$infob[0]. ", height=" .$infob[1]. "'zwinkern;\">Vollbild</a>zwinkern";
$text = str_replace($watt, $neu, $text);

return $text;
}


Ich habe leider keinen fehler finden können... Seht ihr ihn?
Danke!

Avatar user-168
21.10.2006 10:05

Wo isn bei dir überhaupt Zeile 99???

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
user-333
21.10.2006 10:40

Z.20 hier in meinem Thread (war auch gekenntzeichnet, hättest aber horizontal scrollen müssen zwinkern ):

$neu. = "<a href=\"javascript:void(0)\" onclick=\"window.open('artikel/foto.php?fotoid=" . $picid . "', 'Bild', 'width=" . $infob[0] . "', height='" . $infob[1] . "'zwinkern;\">"; // 99

Avatar user-300
21.10.2006 10:43

"$neu. =" ändern in "$neu .=" lächeln

user-333
21.10.2006 11:04

oh man *grr* lächeln user-158ke!

Den nächsten Fehler versteh ich aber nicht so ganz:
Fatal error: Cannot redeclare show_pic() (previously declared in ***\gag_smarty\functions\functions.php:80) in ***\gag_smarty\functions\functions.php on line 80

es geht um diese oben gepostete funktion (die funktion ist übrigens inhalt einer anderen funktion, falls das wichtig ist:
function show_pic($img_id, $img_align, $sql_id, $div_align){ // 80)

user-343
21.10.2006 12:10

Du bindest offenbar die Datei 2mal ein. Verhindere entweder das, oder prüfe zuerst ob die Funktion bereits existiert mit function_exists.

Avatar user-168
21.10.2006 13:10

include bzw. require gibt es auch als include_once. Wenn die Datei bereits eingebunden wurde, würde er das includen jedes weitere Mal unterlassen.

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
user-333
21.10.2006 13:55

also die datei functions.php binde ich schon mit require_once in die index.php ein
(hab ja schon mal in google gesucht für die ursache des problems lächeln ), aber trotzdem bleibt der fehler bestehen.
Es gibt nur eine Funktion mit dem Namen...

user-343
21.10.2006 14:28

Prüf mal ob du nicht *irgendwo* noch ein Include/Require hast, oder aber ein Inculde_once/Require_once mit verschiedener Gross & Kleinschreibung im Dateinamen, wenn du Windows als OS hast... Sieht zumindest so aus.

Denn die Fehlermeldung sagt, dass die Funktion schon deklariert wurde - Genau in der Zeile und Datei, in der sie erneut deklariert werden würde.

user-333
21.10.2006 14:47

ich benutze die datei nicht das erste mal, sondern habe die functions.php ja nur fortgeführt mit einer weiteren funktion!
=> Also hätte die fehlermeldung, dass funktionen doppelt declared wurden, vorher auch schon vorkommen müssen. Ist sie aber nicht!

Und dass diese funktion mit dem namen schon besteht, kann ich auch ausschließen.
Ich habe den funktionnamen einfach mal mit einer aneinanderreihung von buchstaben und zahlen benannt, und er hat immer noch das selbe problem:

"Fatal error: Cannot redeclare dsa5646asd64a5sda534a5s6da86() (previously declared in C:\Programme\xampp\htdocs\gag_smarty\functions\functions.php:80) in ***\gag_smarty\functions\functions.php on line 80"

Und nun habe ich mal die funktion aus der funktion genommen, in der sie stand.
Es sah vorher so aus:

function blubb(param1) {
// blubb
function blobb(param1){
//muh
}
}


Das "erstaunliche": sobald ich die funktion aus der funktion nehme, wird zwar mein ziel nicht erreicht, aber die seite wird normal ausgeführt...
Da der Fehler ja nun darin bestehen muss, hier die beiden verschachtelten functions (sorry für länge, aber anders geht es ja nicht...):

/* ####### BB_CODE */
// ersetzt bb-code-tags mit html-tags
function bbcode($text) {

// REPLACE BB-CODE WITH TAGS
$text = str_replace ("" , '<span style="font-weight: bold;">', $text);
$text = str_replace ("
" , "</span>", $text);
$text = str_replace ("" , '<span stlye="text-decoration:underline;"', $text);
$text = str_replace ("
" , "</span>", $text);
$text = str_replace ("" , '<span stlye="font-style:italic;"', $text);
$text = str_replace ("
" , "</span>", $text);
$text = eregi_replace("\\[url\\]www\.([^\\[]*)\\[img\\]www\.([^\\[\\?\\&]*)\\[/img\\]\\[/url\\]","<a href=\"http://www.\\1\" class=menu_link><img src=\"http://www.\\2\" border=\"0\"></a>",$text);
$text = eregi_replace("\\[url\\]http://([^\\[]*)\\[img\\]http://([^\\[\\?\\&]*)\\[/img\\]\\[/url\\]","<a href=\"http://\\1\" class=menu_link><img src=\"http://\\2\" border=\"0\"></a>",$text);
$text = eregi_replace("\\[url\\]www\.([^\\[]*)\\[/url\\]","<a href=\"http://www.\\1\" class=menu_link>\\1</a>",$text);
$text = eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" class=menu_link>\\1</a>",$text);
$text = eregi_replace("\\[url=([^\\[]+)\\]([^\\[]+)\\[\\/url\\]","<a href=\"\\1\" class=menu_link>\\2</a>",$text);
$text = eregi_replace("\\[email\\]([^\\[]+)\\[/email\\]","<a href=\"mailto:\\1\" class=menu_link>\\1</a>",$text);
$text = eregi_replace("\\[email=([^\\[]+)\\]([^\\[]+)\\[\\/email\\]","<a href=\"mailto:\\1\" class=menu_link>\\2</a>",$text);
$text = eregi_replace("\\[url=\&quot;","[url=\"",$text);
$text = str_replace ("" , "\" border=\"0\">",$text);

$font = array("Arial user-135", "Book Antiqua", "Century Gothic", "Comic Sans MS", "Courier New", "Georgia", "Impact",
"Tahoma", "Times New Roman", "Trebuchet MS", "Script MT Bold", "Stencil", "Verdana", "Lucida Console"zwinkern;

for ($i = 0; $i < count($font); $i++) {
$text = str_replace ("[font=" . $font[$i] . "]" , "<font face=\"" . $font[$i] . " \">",$text);
$text = str_replace ("[/font]" , "</font>", $text);
}

for ($i = 1; $i < 7; $i++) {
$text = str_replace ("[size=" . $i . "]" , "<font size=\"" . $i . " \">", $text);
$text = str_replace ("[/size]" , "</font>", $text);
}

// PICTURES
$pa = preg_match_all('/\[img id=([0-9]+) align=([a-zA-Z]+)\]/si', $text, $result);

function show_pic($img_id, $img_align, $sql_id, $div_align){
$watt = "[img id=" .$img_id. " align=" .$img_align. "]";
$sql = "SELECT * FROM gag_artikel_img WHERE id = '" .$sql_id. "'";
$result = mysql_query($sql);
while($pic = mysql_fetch_array($result)){
$picname = $pic['name'];
$pictext = $pic['titel'];
if ($pic['fotograf'] == "0"zwinkern{
$pict = "Unbekannt";
}
else{
$pict = $pic['fotograf'];
$picid = $pic['id'];
}
}
$info = getimagesize("images/content/artikel/small/" .$picname. ""zwinkern;
$infob = getimagesize("images/content/artikel/big/" .$picname. ""zwinkern;
$infob[1] = $infob[1]+30;
$neu = '<div style="width:' .$info[0] . '; align=' .$div_align. '>';
$neu .= "<a href=\"javascript:void(0)\" onclick=\"window.open('artikel/foto.php?fotoid=" . $picid . "', 'Bild', 'width=" . $infob[0] . "', height='" . $infob[1] . "'zwinkern;\">";
$neu .= "<img class=\"img1\" src=\"images/content/artikel/small/" .$picname. "\" alt=\"Zum Vergrößern bitte anklicken!\"/></a>";
$neu .= "<span style=\"font-weight:bold;\">" .stripslashes($pictext). "</span>";
$neu .= "Foto:" .$pict. "(<a href=\"javascript:void(0)\" onclick=\"window.open('artikel/foto.php?fotoid=" .$picid. "', 'Bild', 'width=" .$infob[0]. ", height=" .$infob[1]. "'zwinkern;\">Vollbild</a>zwinkern";
$text = str_replace($watt, $neu, $text);

return $text;
}


if (!empty($result) AND !empty($result[1][0])) {
show_pic($result[1][0], $result[2][0], $result[1][0], $result[2][0]);
}


if (!empty($result) and !empty($result[1][1])) {
show_pic($result[1][1], $result[2][1], $result[1][1], $result[2][1]);
}


if (!empty($result) and !empty($result[1][2])) {
show_pic($result[1][2], $result[2][2], $result[1][2], $result[2][2]);
}

if (!empty($result) and !empty($result[1][3])) {
show_pic($result[1][3], $result[3][3], $result[1][3], $result[2][3]);
}


// RETURN DATA
return $text;

}

user-343
21.10.2006 15:52

Hast du eigentlich gelesen und verstandenwas ich geschrieben habe?
Der Fehler liegt nicht im deklarieren der Funktion, sondern darin, dass du die Datei functions.php 2mal einbindest!

Lass doch mal Code der index.php sehen.

user-333
21.10.2006 17:08

ja, das habe ich und ich bin doch auch drauf eingegangen.
Also, hier die index.php

user-343
21.10.2006 17:13

Inhalt der config.php bitte. In der index.php steckt zumindest kein Fehler.

user-333
21.10.2006 18:18

config.php

p.s.: danke für deinen einsatz!

user-343
21.10.2006 18:26

Gut... Letzter Versuch bevor der Hack kommt ^^
function/functions.php bitte...

user-333
21.10.2006 20:52

functions.php

Avatar user-271
22.10.2006 11:27

arg...du kannst eine funktion innerhalb einer funktion definieren. Aber es ist totaller schachsinn...ausserdem müsstest du noch eine if-abfrage um die funktion einbauen, damit du, wenn du 2 mal dir Mutterfunktion aufrufst, dass die Tocherfunktion nicht nochmal neu definiert wird zwinkern

d.h. hau die funktion show_pics einfach davor oder dahinter der bbcode funktion *g* geht genauso und du umgehst das problem

#!/bin/bash
traurig){ neutral:& };:
user-333
22.10.2006 16:20

Jop, funktioniert.
Nun hab ich inhaltlich noch eine Frage: Wenn das geklärt werden könnte, wärd ihr mich bis auf weiteres los Fettes Grinsen

Also:
Die Funktion arbeitet nicht so ganz bzw. macht gar nix.
Sie soll den bb-code tag [img id=456 align=right] ersetzen mit einem in ein div eingebauten link: <img src="***/dateiname.jpg" style="text-align:right;">. Dafür muss ich den id-wert auslesen und in der datenbank nach dem für diese id vorhergesehenen bild suchen und nacher den dateinamen in den link schreiben.
Das klappt aber nicht so ganz. Siehe functions.php im Anhang (alles kommentiert).

Ich habe die vermutung, dass das deswegen nicht klappt, weil ich in der ersten funktion mit $text arbeite und in der zweiten wieder $text als parameter angebe.

Aber urteilt selber - ihr werdet es denke ich besser wissen als ich Fettes Grinsen

Groooßen user-158k!