Profilfoto in WebSite verwenden

Alles, was nicht in die anderen Foren passt, kannst du hier loswerden.
Antworten
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Profilfoto in WebSite verwenden

Beitrag von joesch »

Hallo zusammen!

Ich möchte für meine WebSite eine Liste des Vorstandes automatisch generieren. Ähnliche Themen wurden hier schon mehrfach besprochen und das Ganze klappt dank der vorgestellten Lösungen auch. Danke zunächst einmal dafür.

Mein Problem:
Ich möchte auch das dazugehörige Profilfoto mit ausgeben. Dazu habe ich die notwendige Abfrage mittels der mylist_prepeare "zusammenbauen lassen". Das sieht dann so aus (Auszug):

Code: Alles auswählen

$sql = "SELECT usr_id, usr_last_name, usr_first_name, usr_photo, (usw.) ";
Die Ausgabe sieht im Entwurfsstadium so aus:

Code: Alles auswählen

$result = mysql_query($sql, $g_adm_con);
db_error($result);
while($row = mysql_fetch_array($result))
{
echo "
<table>
	<tr>
		<td>";
			echo $row['usr_first_name']. ", ". $row['usr_last_name']";
echo "
		<td>
		<td>"
			(hier soll das Profilfoto hinein)
echo "
		<td>
	<tr>
<table>";
Die Tabellenkonstruktion habe ich gewählt, um eine Spalte mit Name und Kontaktangaben zu haben, in der anderen soll auf gleicher Höhe das Foto stehen.

Irgenwie bekomme ich die Ausgabe als Bild jedoch nicht hin. Ich vermute mal, dass die Nutzung der photo_show.php eine gute Lösung wäre. Nur weiß ich nicht, wie ich die User-ID aus der Abfrage übergeben bekomme.

Ich wäre daher für eure Tipps dankbar (auch, falls statt des Tabellenlayouts eine elegantere Alternative gäbe) ...

VG - Joesch
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Re: Profilfoto in WebSite verwenden

Beitrag von matzman2000 »

joesch hat geschrieben:

Code: Alles auswählen

$sql = "SELECT usr_id, usr_last_name, usr_first_name, usr_photo, (usw.) ";

Code: Alles auswählen

$result = mysql_query($sql, $g_adm_con);
db_error($result);
while($row = mysql_fetch_array($result))
{
echo "
<table>
	<tr>
		<td>";
			echo $row['usr_first_name']. ", ". $row['usr_last_name']";
echo "
		<td>
		<td>"
			(hier soll das Profilfoto hinein)
echo "
		<td>
	<tr>
<table>";
Hallo Joesch,

ist doch ein guter Ansatz, wie wäre es damit (ersetzt "(hier soll das Profilfoto hinein)"):

Code: Alles auswählen

echo "<img src="admidio/adm_program/modules/profile/profile_photo_show.php?usr_id=$row['usr_id']" alt="Profilfoto">";
Nachteil: Man muss eingeloggt sein, um das Foto zu sehen. Das kann man allerdings auch umgehen - siehe dazu auch http://forum.admidio.org/viewtopic.php? ... profilfoto
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Nachteil: Man muss eingeloggt sein, um das Foto zu sehen.
Das soll natürlich auch möglich sein, ohne dass man eingeloggt ist. Die Variante von Jochen gefällt mir daher natürlich am Besten. Nur möchte ich nicht mit einem festen Arry arbeiten, um ggf. auch andere Listen in Abhängigkeit vom Inhalt eines Profilfeldes ausgeben zu können.

Daher die Frage, ob es nicht auch eine Möglichkeit gibt, ohne separaten Modulaufruf und ID-Übergabe zu arbeiten. Also das Photo direkt mit auszugeben - quasi als "echo $row['usr_photo'];" - was so direkt natürlich nicht klappt (es erscheinen nur kilometerweise Buchstaben/Sonderzeichen).

Irgendwie habe ich trotz vielen Bastelns den Dreh noch nicht rausbekommen und wäre daher für jeden Tipp dankbar.

VG - Joesch
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

joesch hat geschrieben:Daher die Frage, ob es nicht auch eine Möglichkeit gibt, ohne separaten Modulaufruf und ID-Übergabe zu arbeiten. Also das Photo direkt mit auszugeben - quasi als "echo $row['usr_photo'];" - was so direkt natürlich nicht klappt (es erscheinen nur kilometerweise Buchstaben/Sonderzeichen).
Hallo Joesch,

es ist nicht möglich ein Foto aus einer Datenbank einfach per "echo" auszugeben. Du benötigst ein eigenes Script (oder nimmst das vorhandene), um beim Auslesen auch den Filetyp mitgeben zu können:

Code: Alles auswählen

header("Content-Type: image/jpeg");
Ich habe für meine Belange den Inhalt der profil_photo_show.php ohne den Login-Zwang in eine eigene Datei kopiert und gebe das Foto dann so aus:

Code: Alles auswählen

echo "<img src="".$g_root_path. "/adm_program/modules/profile/profile_photo_show_all.php?usr_id=" .$a_user_id. "" alt="".$foto_text. "">";
Das sollte für Dein Anliegen kein problem darstellen, entweder Du benutzt das vorhandene Modul oder erstellst ein eigenes Script... 8)

Gruss,
Matze
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Irgenwie raffe ich irgendetwas nicht :( . Ich habe jetzt nach den Hinweisen folgenden Code:

Code: Alles auswählen

$sql = "SELECT usw.

$result = mysql_query($sql, $g_adm_con);
db_error($result);

while($row = mysql_fetch_array($result))
{
echo "
 <table>
  <tr>
   <td>";
    echo $row['usr_first_name']. " ". $row['usr_last_name'];
    echo $row['usr_id'];
    echo "<img src=\"/cms/adm_program/modules/profile/profile_photo_show.php?usr_id=$row['usr_id']\">";
    echo "
   <td>
  <tr>
<table>";
Die Zeile 'echo $row['usr_id'];' dient mir zur Kontrolle - die jeweilige UserID ist korrekt beim jeweiligen Namen in der Schleife vorhanden.
Die Zeile mit der Bildausgabe verursacht jedoch folgenden Fehler:

Code: Alles auswählen

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ... 
Hat jemand eine Idee, wo der Fehler liegen könnte? :?:

Danke an alle - VG - Joesch
Zuletzt geändert von joesch am 24. Nov 2007, 15:05, insgesamt 1-mal geändert.
harryman
Beiträge: 141
Registriert: 25. Jul 2007, 22:58
Kontaktdaten:

Beitrag von harryman »

Schau dir mal meine Anwendung an.
Alle Bilder und Texte kommen aus der admidio-DB.
Basierend auf Tabellen

http://www.fctc.ch/teams/m1.php
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Leider komme ich nicht an deinen Quelltext ;-)

Mein Problem ist wirklich "nur" die Übergabe der ID an das Modul profile_photo_show.php. Da bekomme ich die genannte Fehlermeldung. Da muss irgendein Syntaxfehler sein, den ich einfach nicht finde. Kommentiere ich die Zeile des Bildaufrufes aus, klappt alles wie vorgesehen.
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Habs nun doch nach Versuch - Irrtum lösen können. Die geschweiften Klammern haben mich "gerettet" :idea: :

Code: Alles auswählen

echo "<img src=\"/cms/adm_program/modules/profile/profile_photo_show.php?usr_id={$row['usr_id']}\">";
VG - Joesch
Antworten