Bild für Profil funktioniert nicht

Vielleicht kann mir hier einer helfen
Folgendes Problem: Ich habe ein loginsystem von einer Homepage bekommen und will im Memberbereich also der Startseite beim Content, dass das Profilbild des Users angezeigt und seit wann er Mitglied ist bzw. wann er sich zum letzten Mal eingelogt hat
Meine Tabelle heißt mitglieder und die Spalten die Angefragt werden heißen bild, register und refresh

Ich habe es mal ausprobiert, jedoch funktioniert es nicht, da anscheinend die Eingabe fehlt. Weiß aber leider nicht wie diese aussehen sollte.
Könnte mir jmd da helfen? Hier ist der Code

[code]

<?php session_start(); if(isset($_SESSION["login"])) { // Wenn eingeloggt.. include("header.php"); include("db.php"); include("functions.inc.php"); refresh($_SESSION["login"]); // refresht $id = $_SESSION["login"]; $abfrage = "SELECT name FROM mitglieder WHERE id = ".$_SESSION["login"]; // Den Usernamen herausfinden $ergebnis = mysql_query($abfrage); if($row = mysql_fetch_object($ergebnis)){ ?>

<?php echo "
Hallo und herzlichlich Willkommen im Fanclub, ".$row->name."
"; } ?>

<?php include('navi.php'); ?>
<?php /* HIER BEGINNT DIE AUSGABE DES HEUTIGEN GEBURTSTAGSKINDES */ $datum = getdate(); $i=0; $abfrage = "SELECT * FROM bdays"; $ergebnis = mysql_query($abfrage); while($bk = mysql_fetch_object($ergebnis)){ if ($datum[mday]== $bk->tag && $datum[mon]== $bk->monat){ if($bk->hp != ""){ echo " ".$bk->name.""; } else{ echo "".$bk->name.""; } echo "wird heute ".($datum[year]-$bk->jahr).", Happy Birthday! :-) "; $i++; } } if($i==0){ echo "Heute gibt es keine Geburtstagskinder!"; } /* ABFRAGE DES AKTUELLEN GEBURTSKINDES ENDE */ ?>

<?php if(!empty($row->bild)) { echo "
bild." border=0>
"; } else{ echo "
"; } } ?>
Letztes Mal online am <?= date("d.m.Y",$row->refresh) ?> um <?= date("H:i",$row->refresh) ?> Dabei seit dem<?= date("d.m.Y",$row->register) ?>
Wer ist Online?
<?php $q = 0; $abfrage = "SELECT id, name FROM mitglieder WHERE refresh > '".(time()-60*5)."' ORDER BY name"; // Anzeigen wo refresh weniger als 5 Minuten war. $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { if($q != 0) { echo ", "; } else { $q = 1; } echo "".$row->name.""; } ?>
<?php if(exist("mitglieder WHERE id = '".$_SESSION["login"]."' AND gruppe = 'Admin'")) { // Wenn Admin ?>

Admin

Gruppen und Passwörter ändern
Umfrage erstellen
Wunschliste bearbeiten
Fragen beantworten
zum ACP


<?php } include("footer.php"); } else{ header("Location: login.php"); } ?>[/code] Bei dem Bild ist es so, sollte dieser keines haben wird dann ein Standartbild gezeigt. Ich hoffe diese Infos reichen... Bitte erklärt mir auch was ihr getan habt.

Bitte sagt jetzt nicht… ich habe zu viele Ausgaben habe kein error_reporting und habe keine Verarbeitungslogik drin… weil diese Antwort habe ich wunderschön auf dem Silbertablett bekommen

[code]Würdest du nochmal von vorne anfangen wollen? Dein Code ist von vorne bis hinten, sorry, schlecht. Du vermischst Ausgabe- und Verarbeitungslogik, verwendest die veraltete MySQL-Extension, escapsed nicht, hast kein error_reporting und benutzt Tabellen zur Strukturierung. Zudem übernimmt dein Script zu viele Aufgaben.

Du machst quasi alles falsch, was man falsch machen kann. [/code]

Ich weiß nämlich überhaupt nicht was dieser User in dem anderen Forum genau damit meinte… der Code war schon so auser der include mit der Navi und den Tabellen und das wars… ich will mir auch nicht die Arbeit machen und alles hier umbauen, weil dann gar nichts mehr funktioniert (ich kenne mein Geschick). Ich weiß… das bei diesem code eine Eingabe für das Bild fehlt… nur leider weiß ich nicht wie sie lautet… oder fehlt da doch was anderes?

Ich hoffe ihr kommt mit XD wenn nicht fragen! Fragen kostet nichts… und ich wäre euch sehr verbunden wenn ihr mir helfen könntet.

hi.

ich hab jetzt wirklich nur überflogen. dein bild funktioniert nich?
ich weiß nich was fürn doctype du verwendest, aber ich bin mir sicher, dass der wert von src= in anführungszeichen stehen muss.

nebenbei: tut mir leid, aber es gibt da wirklich einiges verbesserungspotential, informiere dich bitte über sql-injection, das ist ne riesen sicherheitslücke.
error-reporting hilft dir, sehr leicht, fehler zu finden. du solltest den tipp aus dem anderen forum umsetzen, das hört sich böse an, aber es steckt schon einiges dahinter.
wenn du nicht 100% fit in php bist ist das okay, aber dann bitte auch kritik hinnehmen :wink:

gruß
emil

Du hast recht… ich bin nicht immer Kritikfähig… aber wenn man morgens aufwacht und man bekommt so eine antwort hingeklatscht… dann wird man doch ein wenig bissig…

Oh anscheinend habe ich mich falsch ausgedrückt… das default-Bild funktioniert nur… dieses nicht

Das er dein Bild hochläd was auf deimem Profilbild vorhanden ist^^
Soll es dann so ausehen?

Nun habs ausprobiert… aber es ist so wie immer… anscheinend fehlt hier die Abfrage… weiß aber nicht genau wo ich sie hintun sollte.
ok ich habe mich mal über sql -injection erkundigt (wikipedia) und ich musste ganz schön die Luft anhalten…
Hab aber nicht so ganz verstanden wie ich es aus dem Beispiel von wikipedia einfügen sollte

$abfrage = "SELECT spalte1 FROM tabelle WHERE spalte2 = '".mysql_real_escape_string($_POST['spalte2Wert'])."'"; $query = mysql_query($abfrage) or die("Datenbankabfrage ist fehlgeschlagen!");

Wäre toll wenn ihr mir ein beispiel aus dem langen Code von oben ein beispiel entnehmen könntet und sagen könntet… was da verändert werden muss damit ich dies auf andere übertragen kann :wink:

[quote=“emil”][] informiere dich bitte über sql-injection, das ist ne riesen sicherheitslücke.
[][/quote]Allgemein informieren is gut ja… aber in dem Script-Snipsel ist keine MySQL-Injection Lücke :wink: Keiner der 3 queries erlaubt Usereingaben abgesehen von $_SESSION[“login”] welches hoffentlich nur “normale” Zeichen erlaubt. Wenn net verbietet man halt " und ’ bei der Registration bzw. erlaubt nur A-Z 0-9 - _ .,#+*?!=()$ etc. [size=85](alles außer " und ’ und )[/size]^^

Wobei eine Sache schon gänzlich fehlt… ob man dann das Ausnutzen als MySQL-Injection bezeichnen darf is fraglich… wie willst du was injecten, wenn man nix umgehen muss sondern einfach macht?
Strings in MySQL sollte man stehts mit ‘’ umschließen, daher id=‘USERNAME’ etc.
Ich persönlich kennzeichne auch gerne Tabellen und Spalten mit ``aber da kann man sich streiten xD

Ok ein wenig verstanden…
jedoch ist mein Bildproblem noch nicht aus der Welt geschafft, sondern bleibt weiterhin bestehen… ich werde mich noch mal wegen allem gründlich informieren und sehen was sich machen lässt^^

wenn ich dich recht verstanden habe gehts also um diesen auschnitt:

was wird denn in $_SESSION[“user”] oder in $row->bild gespeichert?

das naheliegenst wäre ja wenn die bildadresse nicht stimmt.
und andernfalls müsste man wissen was genau nicht funktioniert bzw wie sieht denn die html ausgabe an dieser stelle aus?

mfg
addi

also hoffe ich erkläre es richtig und deutlich so das du es verstehst ^^'
hab eine Tabelle die nennt sich mitglieder wo eine zeile ist die bild heißt^^
Mein Wunsch ist es wenn du auf die startseite kommst das dann dein hochgeladenes Bild von Profil ändern siehst oder dieses default Bild wenn du keines hast… und seit wann du angemeldet bist und wann dein letzter login war… also eigentlich umfasst mein Problem den
Bereich

[code]


<?php
if(!empty($row->bild)) {
echo “
<img src=avas/”.$_SESSION[“user”].$row->bild." border=0>
";
} else{
echo “
”;
}
}
?> Letztes Mal online am <?= date("d.m.Y",$row->refresh) ?> um <?= date("H:i",$row->refresh) ?> Dabei seit dem<?= date("d.m.Y",$row->register) ?> [/code] die hochgeladenen Bilder werden den ordner avas gespeichert :wink: hoffe das reicht an Infos oder brauchst du noch mehr? Nun also die Ausgabe zeigt dann das defaultbild an obwohl mein Account ein eigenes Bild hochgeladen hat... Fehlermeldung macht es nicht

mfg Annis6

erstmal sarry für die späte antwort

ich glaub jetzt hab ichs kapiert

die Bedingung ist einfach immer false und desshalb wird immer (else) Das default Bild angezeigt.

musst an dieser stelle mal $row->bild ausgeben und dann mal schauen was steht drinn wenn es einb bild gibt und was steht drinn wenns keins gibt.

also z.B.
echo $row->bild;

ich weis nämlich nich wie deine datenbank konfiguriert ist oder ob das mit dieser abfrage überhaupt funktioniert