ilch Forum » Allgemein » HTML, PHP, SQL,... » GDlib und Ajax

Geschlossen
  1. #1
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    Ich habe ein Problem und ich komme einfach nicht auf die Lösung.
    Ich erzeuge ein Bild mit GDlib alle variablen werden per POST übergeben mittels Ajax

    	function setRequest() {
    		// Request erzeugen
    		if (window.XMLHttpRequest) {
    			request = new XMLHttpRequest(); // Mozilla, Safari, Opera
    		} else if (window.ActiveXObject) {
    			try {
    				request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
    			} catch (e) {
    				try {
    					request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
    				} catch (e) {}
    			}
    		}
    
    		// überprüfen, ob Request erzeugt wurde
    		if (!request) {
    			alert("Kann keine XMLHTTP-Instanz erzeugen");
    			return false;
    		} else {
    		var race = document.getElementById('race').value;
    		var tier = document.getElementById('tier').value;
    			var url = "siggy.php";
    			
    			// Request öffnen
    			request.open('post', url, true);
    			
    			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    			
    			// Request senden
    			request.send('race='+race+'&tier='+tier);
    			// Request auswerten
    			request.onreadystatechange = interpretRequest;
    		}
    	}
    
    	// Request auswerten
    	function interpretRequest() {
    		switch (request.readyState) {
    			// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
    			case 4:
    				if (request.status != 200) {
    					alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
    				} else {
    					var content = request.responseText;
    					// den Inhalt des Requests in das <div> schreiben
    					
    
    					document.getElementById('content').innerHTML = content;
    				}
    				break;
    			default:
    				break;
    		}
    	}


    das Problem besteht in der Ausgabe des Bildes was ich gerade überhaupt nicht schnalle. Er gibt etwas aus aber kryptische Zeichen. Was auch klar ist da das bild eigentlich nur zu erreichen ist unter <img src="bild.php?variablengedöns"/> wie erzeuge ich diese ausgabe und ist das überhaupt möglich so wie ich das vorhabe??


    verwendete ilchClan Version: 1.1
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    Klar kannst du Bilder per php ausgeben.. Google hilft da aber auch viel.. Oder versteh ich dein Problem nicht richtig?
    Du musst halt nen header senden und den Content Type ändern. Und dann entsprechende Ausgaben machen..

    Bsp. um ein png Bild zu erstellen:

    <?php
    header("Content-type: image/png");
    // erstellen eines leeren Bildes mit 400px Breite und 300px Höhe
    $bild = imagecreatetruecolor(400, 300);
    // Hintergrundfarbe erstellen
    imagecolorallocate($bild, 150, 150, 0);
    
    // Farben festlegen
    $farbe1 = imagecolorallocate($bild, 255, 255, 0);
    $farbe2 = imagecolorallocate($bild, 0, 255, 0);
    $farbe3 = imagecolorallocate($bild, 0, 0, 255);
    // Viereck zeichen
    // mit folgenden Kordinaten (x1, y1, x2, y2, Farbe);
    imagefilledrectangle ($bild, 20, 75, 350,250, $farbe1);
    imagefilledrectangle ($bild, 150, 100, 200, 280, $farbe2);
    imagefilledrectangle ($bild, 220, 150, 330, 190, $farbe3);
    // Ausgabe des Bildes
    imagepng($bild);
    ?>
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Scriptpfuscher Mitglied
    Registriert seit
    24.06.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    oder aber das bild als datei speichern.
    alternativ kannst du aber auch bei nem image als quelle eine php datei angeben und in dieser wie ithron schon geschrieben hat den richtigen header senden.

    <img src="meintollesbild.php?breite=100&höhe=80">
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    annemarie gelöschter User
    halt dich an ithron und scriptpfuscher und du kommst auf den richtigen weg zwinker
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    genau das ist eben NICHT möglich laut meinen recherchen ist es unmöglich einen header mitzusenden man kann aber mit http_request.overrideMim... den Clienten zwingen einen anderen content-type zu benutzen nur funktioniert das bei mir nicht. die methode mit dem abspeichern funzt perfekt da dort kein header gebraucht wird..

    Also meine Herren ich brauch den korekten override für png und die stelle wo man es einfügt zwinker

    und wer glaubt ich habe nicht gegoogelt der irrt^^
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    annemarie gelöschter User
    das senden eines neuen headers nach bereits gesendeten headers der seite funzt natürlich nicht.
    wenn du jedoch das bild abspeicherst und mit der ajax funktion einen bildpfad zurückgibts funktioniert das.

    wenn du on the fly erstellen und anzeigen willst wirst du wohl nicht um temporär erstelte dateien herumkommen.

    es kann sein das ich mich irre, aber ich poch einfach mal auf meinen unfehlbarkeits ansatz ^__^
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    wie gesagt mein scipt funzt zu 100% die ajax methode habe ich ja nicht zum spass reingemacht um ein dann nachher doch ein Postback der Seite zu erzeugen^^ es würde auch alle super funktionieren mit Postback nur eben nicht "on Fly". irgendwo in den verstecktesten ecken von google habe ich das mit overrideMime.... gelesen aber das funzt nicht jedenfalls nicht mit den Infos die ich da drüber habe deshalb meine Frage an die Profis...
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten