[PHP] ava changer ? wie ?

Habe ich noch nie gemacht, aber hier mal grob die nötigen Schritte:

:arrow: In einer (z.B. txt) Datei (alternativ auch eine Datenbank, ist aber etwas übertrieben für das Vorhaben) steht der Dateiname des zu verwendenden Avatars bzw. der Dateiname des entsprechenden Bildes
:arrow: Eine PHP Datei (die du als Avataradresse hier eingibst) liest diesen Namen aus und erzeugt per gdlib die Ausgabe der entsprechenden Grafik.
:arrow: Eine zweite PHP Datei (deren Adresse du in der Signatur hinterlegst) stellt ein Formular zur Verfügung. Es liest ebenfalls den gespeicherten Namen, aber auch alle zur Verfügung stehenden Bilder (eines Unterordners) und verändert beim Absenden den Wert der txt Datei.

Mehr brauchst du eigentlich nicht. Die Auswahl veränderst du einfach per Upload /Löschung der Bilddateien im entsprechenden Ordner.
 
ich würde an deiner stelle lieber ersteinmal allgemein php/programmieren lernen, denn nen tut für ein problem wirds sicher nicht geben, wäre ja auch irgendwie verschwendung. zum php lernen würde ich dir self php oder das wikibooks buch empfehlen.

stumpi
 
Er versucht ja programmieren zu lernen..

Natürlich gibt es kein Tutorial für das spezielle Problem, aber es gibt genügend Fundstellen für gewisse Teilbereich wie z.B. Stichwort gdlib, Formulare (selfhtml) und Ordner auslesen (php.net), mehr Problembereiche werden hier eigentlich nicht benötigt.
 
ich finde aber, dass dies der falsche weg ist. klar muss man programmieren am praktischen beispiel lernen und wenn man sich selber auch noch nen nutzen von dem geschriebenen hat, ist es noch besser. aber zum programmieren gehört eben nicht nur das wissen um syntax einer sprache, sondern auch eine menge theoretische dinge. ohne die kann man zwar auch erstma losproggen, aber langfristig gesehen wird das dann nichts.

aber um beim thema zu bleiben: mit den hinweisen vom joschilein sollte dus es eigentlich hinbekommen, so schwer ist ein avachanger eigentlich nicht und wenn er dann einmal funzt kann man ja noch ne menge sonderfunktionen, wie statistiken oder automatisches löschen von alten votes einbauen.

stumpi
 
Und wo bahnt jetzt eine Streitdiskussion an? Es ist doch gut, wenn man sich kleine und einfache Projekte nimmt und wenn man keine Idee über den grundlegenden Weg hat, ist es doch auch keine Schande nach ein paar Ideen zu fragen. Und wenn man sich dann dran setzt, werden dabei neue Vorgehensweisen gleich geübt, wie z.B. das Auslesen aller Dateinamen eines Ordners. Wie soll man sonst lernen? php.net auswendig lernen macht auch noch keinen Programmierer :mrgreen:

Ich habe nur die Befürchtung, dass powergrafik im nächsten Schritt um (möglicherweise sehr große) Codeteile fragt. Das ist dann wieder nicht Sinn der Sache.
 
:arrow: Eine PHP Datei (die du als Avataradresse hier eingibst) liest diesen Namen aus und erzeugt per gdlib die Ausgabe der entsprechenden Grafik.
Nicht gleich ne Atombombe nach einem Spatz werfen :ugly:

readfile() reicht vollkommen ;)
PHP:
// Welches ist das aktuelle Ava ?
require_once("./avachanger.class.php");
$filename=$avachanger->get_current_ava_filename();

// Ausgabe ohne GDLib:
header("content-type: image/gif");
readfile($filename);
exit;

edit:
@powergrafik:
Genau, wenn du nur ein Bild ausgeben willst und nicht etwa Scherzchen wie Text oder sowas machen willst, brauchst du die GDLib überhaupt nicht.
 
das wär also der code für die php datei der grafik ie dann hier in die sigi oder so kommt oder ??
Exakt.
und was muss für $avachanger eingesetzt werden ?
$avachanger war in meinem Beispiel eine Instanz einer Klasse, die das alles handelt. Du machst das natürlich alles einfacher.

Dieses Script muss nur wissen, welches das aktuelle Avatar ist. Du musst dir dort also nur diesen Pfad besorgen (aus Datenbank, Datei, abhängig von Uhrzeit, etc.).
 
ich glaubeich wüsste wie ich das machenkann vllt eine schlechte lösung aber ich versuchs mal :

ich mache :

$avachanger = "readfile ("avaurl.txt")"; //die 2. und 3. anführungszeichen als einfach ich weiß nihct wie man die auf der tastaur macht xD
Quark :p
Wenn du wirklich die Funktion readfile() meinst, darfst du keine Anführungszeichen rumsetzen:
PHP:
 $avachanger = readfile ("avaurl.txt");
Aber auch das ist noch Nonsense. Hast du im Manual gelesen ? Nein ? Tus mal.
readfile() liefert eine Zahl zurück, genauer gesagt: die Größe der Datei
Das willst du wohl weniger ;)

Lies dir mal die Manual-Pages zu fopen(), fread() und fclose() durch.

Zum Schluss musst du dann aber nicht $avachanger benutzen, sondern in $filename soll der Dateiname landen. Wie schon gesagt, $avachanger war nur eine fiktive Instanz einer Klasse, die du nicht brauchst.
und wenn ich die avas changen will nehm ich die funktion fwrite im modus w(+)
und beschreibe die datei je nachdem welches ava geklickt wurde .

könnte man das so machen ???
Das kommt schon eher hin :)
Modus w reicht, das Plus kannst du dir sparen, weil beim Avatar setzen du nix mehr lesen musst.
 
Ja, das denk ich mir auch grad :mrgreen:

Vergiss mal bitte mein Beispiel. Das war nichts zum Abschreiben oder einfach was austauschen und es danach funktioniert es.
Das war Verstehen und Anwenden. Effektiv Code kannst du daraus eigentlich nicht viel verwenden :p

Guck dir die Manual-Pages an, versteh sie und erst, wenn du verstanden hast, was da dasteht, mach dich überhaupt dran, eine Zeile Code zu schreiben. Sonst wird das nämlich nie was ;)
 
Rein theoretisch könntest du die Sache auch mit FTP angehen.
Also bei der Ava Auswahl alle Dateien eines Ordners ausgeben lassen, das gewünschte Ava dann einfach per FTP kopieren in den selben Ordner aber mit einem anderen dateinamen, also z.B.:

Bild1.gif
Bild2.gif
Bild3.gif

Er ließt die drei Bidler ein, kannst dir ggf. noch ne kleine Anzeige dazu basteln, wenn du eins auswählst wird es dann einfach z.B. nach aktuell.gif kopiert. Hat den Vorteil das du um ein neues Ava in die Auswahl aufzunehmen du einfach nur die Datei hochladen mußt.
Der Nachtel, FTP ist halt vergleichsweise langsam und vergleichsweise resourcen fressend.
 
Rein theoretisch könntest du die Sache auch mit FTP angehen.
Also bei der Ava Auswahl alle Dateien eines Ordners ausgeben lassen, das gewünschte Ava dann einfach per FTP kopieren in den selben Ordner aber mit einem anderen dateinamen, also z.B.:

Bild1.gif
Bild2.gif
Bild3.gif

Er ließt die drei Bidler ein, kannst dir ggf. noch ne kleine Anzeige dazu basteln, wenn du eins auswählst wird es dann einfach z.B. nach aktuell.gif kopiert. Hat den Vorteil das du um ein neues Ava in die Auswahl aufzunehmen du einfach nur die Datei hochladen mußt.
Der Nachtel, FTP ist halt vergleichsweise langsam und vergleichsweise resourcen fressend.

mit php kannste auch datein kopieren ;) so alà

PHP:
<?
//nicht verwenden! sicherheit
if(isset($_POST['change'])) {
	copy($_POST['change'],'aktuell.gif');
}

foreach(glob('avatare/*.gif') AS $bild) {
	echo '<a href="index.php?change='.$bild.'"><img src="'.$bild.'" /></a><br />';
}
?>
und fertig ist der ava changer.

SO NICHT VERWENDEN!!!
ohne überprüfung was da für ne datei kopiert wird könnte man damit jede datei kopieren und auslesen.