Steckbrief

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
Antworten
fisch
Beiträge: 71
Registriert: 21. Aug 2007, 12:20
Wohnort: http://www.theatergruppe-senfkorn.de
Kontaktdaten:

Steckbrief

Beitrag von fisch »

Hallo,

Ich möchte für meine Seite jetzt auch gerne eine "Steckbrief" Seite einrichten
wie in diesem Thema: http://www.admidio.de/forum/viewtopic.p ... steckbrief

aber ich bekomme immer diese Fehlermeldung wenn ich die seite öffne:

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/1/d208923085/htdocs/Theatergruppe Senfkorn/adm/adm_program/system/db/mysql.php on line 16

verwendete Version: 2.2.6

Was mache ich falsch?

Mit freundlichen Grüßen
Lars
admmik
Beiträge: 23
Registriert: 28. Mai 2011, 13:55

Beitrag von admmik »

Hallo Lars,

verstehe ich dich richtig:
1. Du hast eine Datei erstellt (z.B. steckbrief.php) und dort den Quellcode aus dem von dir genannten Forumseintrag hinein kopiert?
2. Sobald du die Seite dann aufrufst, kommt die von dir angegebene Fehlermeldung?

Falls das alles stimmt:
Hast du noch in anderen Dateien etwas gändert? Denn die Fehlermeldung bezieht sich auf die Datei mysql.php. Die angegeben Zeile ist bei mir der Beginn der Funktion, die eine Verbindung zur Datenbank aufbaut.
Funktioniert der Rest von Admidio? Also kannst du z.B. die Benutzerverwaltung aufrufen?

Mich wundert, warum eine derart zentrale Funktion (Verbindungsaufbau zur Mysql-Datenbank) auf einmal einen Fehler erzeugen soll, wenn im Rest von Admidio sonst kein Fehler auftritt.

Poste mal bitte den Quellcode deiner Stechbrief-Seite, vielleicht bringt uns das weiter.
Ansonsten fällt mir im Moment leider nichts ein.

Grüße!
Zuletzt geändert von admmik am 3. Jul 2011, 15:35, insgesamt 1-mal geändert.
fisch
Beiträge: 71
Registriert: 21. Aug 2007, 12:20
Wohnort: http://www.theatergruppe-senfkorn.de
Kontaktdaten:

Beitrag von fisch »

Hallo,

Die anderen Admidio Seiten funktionieren alle (frisch eingerichtet)
andere Datein habe ich nicht verändert (nur Farbe angepasst)

Code: Alles auswählen

<?php 
include_once("../adm/adm_program/system/common.php"); 

    $user_id=1; 
    $user = new User($g_db, $user_id); 
    $user->GetUser($user_id); 
    echo" 
    <div class=\"formHead\" style=\"width: 400px\">". 
        $user->getValue("Vorname"). " ". $user->getValue("Nachname"). "</div> 
    <div class=\"formBody\" style=\"width: 400px; height: 180px; text-align: left;\">
         <div style=\"width: 250px; float: left;\"> 
            Geburtsdatum: "; echo mysqldatetime('d.m.y', $user->getValue("Geburtstag"));echo"<br><br>
             <a class=\"normalLight\" href=\"mailto:".$user->getValue("E-Mail")."\">E-Mail an ".$user->getValue("Vorname")." schreiben</a>
            <img src=\"". $g_root_path. "/adm_program/modules/profile/profile_photo_show.php?usr_id=".$user_id."&id=". time(). "\" alt=\"Profilfoto\" />
     </div> 
    <br><br>";          
?>
mir ist noch aufgefallen das bei meiner anderen Seite (Admidio 2.1.5) in Zeile 16 function connect... steht
und bei 2.2.6 public function connect hat das was damit zutun?
Mfg
Lars
admmik
Beiträge: 23
Registriert: 28. Mai 2011, 13:55

Beitrag von admmik »

Hallo nochmal!

public function connect hat das was damit zutun?
Nein, "public" bedeutet nur, dass diese Funktion von überall gesehen werden kann. D.h. auch andere Klassen dürfen auf die Funktion zugreifen.
Früher konnte man bei php (weiß nicht ob das heute noch geht) das "public" einfach weg lassen, damit war die Funktion dann aber trotzdem automatisch als "public" deklariert.
Falls es dich mehr interessiert: http://php.net/manual/de/language.oop5.visibility.php

Ansonsten habe ich deinen Quellcode jetzt mal bei mir (ebenfalls Version 2.2.6) ausprobiert:
Bei mir funktioniert der Code nicht.
1. Die Funktion "GetUser" gibt es nicht mehr in Admidio
2. Ebenfalls gibt es die Funktion mysqldatetime() in dieser Art nicht mehr (ohne es versucht zu haben, würde ich das stattdessen mit der php-Funktion "date()" ausprobieren)

Aber selbst wenn ich diese Funktionen vermeide, bekomme ich keine Daten aus der Datenbank.
Bin gerade dabei herauszufinden, warum das so ist...
Zuletzt geändert von admmik am 3. Jul 2011, 16:17, insgesamt 1-mal geändert.
admmik
Beiträge: 23
Registriert: 28. Mai 2011, 13:55

Beitrag von admmik »

Ah, ok, jetzt hab ichs (glaube ich):

Probier mal bitte folgenden Code:

Code: Alles auswählen

<?php
include_once("adm_program/system/common.php");
    $user_id=1;
    $user = new User($g_db, $user_id);
    echo"
    <div class=\"formHead\" style=\"width: 400px\">".
        $user->getValue('FIRST_NAME'). " ". $user->getValue('LAST_NAME'). "</div>
    <div class=\"formBody\" style=\"width: 400px; height: 180px; text-align: left;\">
         <div style=\"width: 250px; float: left;\">
            Geburtsdatum: "; echo $user->getValue('BIRTHDAY');echo"<br><br>
            <a class=\"normalLight\" href=\"mailto:".$user->getValue('EMAIL')."\">
                     E-Mail an ".$user->getValue('FIRST_NAME')." schreiben
            </a>
     </div>
    <br><br>";         
?>
Dieser Code funktioniert bei mir.
Die Funktion "getValue" erwartet nicht mehr die deutschen Namen der Datenbankfelder, sondern die englische Bezeichnung (vgl. DB-Tabelle "adm_user_fields" Spalte "usf_name_intern").

Es fehlt dann nur noch das Profilbild. Das müsste eigentlich wie in dem von dir angegebenen Forums-Thema funktionieren (Ich kann das im Moment nicht ausprobieren). Falls nicht, meld dich einfach nochmal. ;-)

Sollte das jetzt funktionieren, verstehe ich aber immernoch nicht, warum du die Fehlermeldung mit der mysql.php bekommen hast. Aber naja, hoffentlich tritt die nicht wieder auf.

Grüße!
fisch
Beiträge: 71
Registriert: 21. Aug 2007, 12:20
Wohnort: http://www.theatergruppe-senfkorn.de
Kontaktdaten:

Beitrag von fisch »

Danke hat bestens funktioniert.

Schön Sonntag noch

Lars
fisch
Beiträge: 71
Registriert: 21. Aug 2007, 12:20
Wohnort: http://www.theatergruppe-senfkorn.de
Kontaktdaten:

Beitrag von fisch »

Hallo,

Hab jetzt doch noch mal ein Problem mit dem Profilbild

Inhalt Profil.php

Code: Alles auswählen

<?php 
include_once("adm_program/system/common.php"); 
    $user_id=1; 
    $user = new User($g_db, $user_id); 
    echo" 
    <div class=\"formHead\" style=\"width: 400px\">". 
	// Vorname und Nachname
        $user->getValue('FIRST_NAME'). " ". $user->getValue('LAST_NAME'). "</div> 
     <div class=\"Daten\" style=\"width: 400px\">
		Aufgabe: "; echo $user->getValue('AUFGABEN');echo"<br><br>
		Dabei seit: "; echo $user->getValue('DABEI_SEIT');echo"<br><br>
		Rollen: "; echo $user->getValue('ROLLEN');echo"<br><br> 
		<img src="profile_photo_show.php?a_user_id='.$user_id.'" align="right">
	</div> 
    <br><br>";
?>
Inhalt der profile_photo_show.php

Code: Alles auswählen

<?php
require("adm_program/system/common.php"); 
header("Content-Type: image/jpeg"); 

$a_user_id=$_GET["a_user_id"]; 

$allowed = array(1); 

if(in_array($a_user_id, $allowed)) 
{ 
    $sql="  SELECT usr_photo 
        FROM ".TBL_USERS." 
        WHERE usr_id=$a_user_id"; 
    $result_photo = mysql_query($sql, $g_adm_con); 

    echo @MYSQL_RESULT($result_photo,0,"usr_photo"); 
}
?>
Beim aufrufen der profil.php (mit der Zeile fürs Bild) kommt folgende Fehlermeldung:

Code: Alles auswählen

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /homepages/1/d208923085/htdocs/Theatergruppe Senfkorn/adm/profil.php on line 18
mfg
Lars
admmik
Beiträge: 23
Registriert: 28. Mai 2011, 13:55

Beitrag von admmik »

Ohne es jetzt ausprobiet zu haben:

In der profil.php hast du den Kommentar "// Vorname und Nachname" mitten in eine Anweisung über mehrere Zeilen geschrieben. Das kann (glaube ich) nicht gut sein.
Zusätzlich hast du bei der Ausgabe des Profilfotos die " bzw \" nicht ganz richtig gesetzt. Deshlab verwende ich persönlich bei solchen Sachen lieber ' und " anstelle von " und \", aber das ist geschmacksache.

Probier mal die profil.php wie folgt (wieder mit " und \" zur Anlehung an deinen Code):

Code: Alles auswählen

<?php
include_once("adm_program/system/common.php");
    $user_id=1;
    $user = new User($g_db, $user_id);
    echo"<div class=\"formHead\" style=\"width: 400px\">";
       // Vorname und Nachname
       echo $user->getValue("FIRST_NAME");
       echo $user->getValue("LAST_NAME"); 
    echo "</div>";

    echo "<div class=\"Daten\" style=\"width: 400px\">Aufgabe: ";
        echo $user->getValue("AUFGABEN");
        echo "<br><br>Dabei seit: ";
        echo $user->getValue("DABEI_SEIT");
        echo "<br><br>Rollen: ";
        echo $user->getValue("ROLLEN");
        echo "<br><br>";
        echo "<img src=\"profile_photo_show.php?a_user_id=".$user_id."\" align=\"right\">";
    echo "</div><br><br>";
?>
Jetzt ist es (denke ich) etwas deutlicher zu sehen, wo ein Kommando beginnt und/oder endet.

Grüße!

PS: Das mit getValue("AUFGABEN"), getValue("DABEI_SEIT") und getValue("ROLLEN") funktioniert nun so? Denn konsistenter Weise würde ich (mal wieder ohne es probiert zu haben) die englischen Begriffe erwarten.
fisch
Beiträge: 71
Registriert: 21. Aug 2007, 12:20
Wohnort: http://www.theatergruppe-senfkorn.de
Kontaktdaten:

Beitrag von fisch »

Hallo,

Jetzt funktioniert alles besten Dank noch mal.

getValue("AUFGABEN"), getValue("DABEI_SEIT") und getValue("ROLLEN")
sind selbst angelegete Profilfelder deswegen gehen die

mfg
Lars
Antworten