vserver
Goto Top

Erstelltes Bild herunterladen

Hallo,

ich bräuchte Hilfe, und zwar möchte ich das man auf meiner Webseite den erstellten QR-Code herunterladen kann, wie funktioniert das damit es den erstellten QR-Code findet?

        <?php if(count($_POST)){?>
            <div class="panel panel-primary">  
              <div class="panel-heading">Ihr erstellter QR-Code:</div>  
              <div class="panel-body">      
        	<?php 
			$img = "createqr".time().".png";  
			if(!isset($_POST['img_size'])){$_POST['img_size'] = 174;}  
			$qr->draw($_POST['img_size'], $_POST['error_correction_level'],"img/".$img);  
				$im = imagecreatefrompng("img/".$img);  
				$im_x = (int)$_POST['img_size'];  
				$im_y = (int)$_POST['img_size'];  
				$bcolor_array = explode(",",hex2rgb($_POST['bcolor']));  
				$fcolor_array = explode(",",hex2rgb($_POST['fcolor']));	  
							
				$color = imagecolorallocate($im, $fcolor_array, $fcolor_array[1], $fcolor_array[2]);
				$bg_color = imagecolorallocate($im, $bcolor_array, $bcolor_array[1], $bcolor_array[2]);
				for ($x = 0; $x < $im_x; $x++){
					for ($y = 0; $y < $im_y; $y++){
						$rgb = imagecolorat($im, $x, $y);
						$colors = imagecolorsforindex($im, $rgb);
						
						if ( $colors['red'] == 0 && $colors['blue'] == 0 && $colors['green'] == 0 ){			  
							imagesetpixel($im, $x, $y, $color);
						}
						if ( $colors['red'] == 255 && $colors['blue'] == 255 && $colors['green'] == 255){			  
							imagesetpixel($im, $x, $y, $bg_color);
						}
					}
				}
				imagepng($im,"img/".$img);  
			?>
            	<div class="text-center">  
                	<div class="img-thumbnail">  
                	<img src="img/<?php echo $img?>" width="<?php echo $_POST['img_size']?>" height="<?php echo $_POST['img_size']?>" class="img-responsive" alt="QR-Code Generator">  
                    </div>
                </div>
				</br>
				<center><u>Download QR-Code (.png)</u></center>

Dankeschön, Gruß

Content-ID: 264326

Url: https://administrator.de/forum/erstelltes-bild-herunterladen-264326.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

certifiedit.net
certifiedit.net 24.02.2015 um 01:38:42 Uhr
Goto Top
mhh...Google kaputt?

<a href="bild.png">leitfaden zum Bild/ Rechtsklick, speichern...</a>
BirdyB
BirdyB 24.02.2015 um 06:42:49 Uhr
Goto Top
Moin,

In diesem Fall vermutlich so:
<a href="img/<?php echo $img?> Download QR-Code </a>  

Beste Grüße
SlainteMhath
SlainteMhath 24.02.2015 um 08:47:05 Uhr
Goto Top
Moin,

1.
 ...  <?php echo $_POST[ ...
ist eine Einladung für XSS-Exploits (das nur mal so nebenbei)

2.
Das Script das den eigentlichen QR Code erstellt, sollte in ein sep. Script ausgelagert werden (create_qr.php zum Beispiel) und dann auf der Seite auf der der QE angezeigt werden soll mittels
<img src='create_qr.php?paraterm=...'>  
ausgelagert werden, das erstepart unnötige schreib/lese Vorgänge auf disk. - Anleitungen dazu gibts genug bei Google.

lg,
Slainte
vServer
vServer 24.02.2015 um 16:37:26 Uhr
Goto Top
Hallo,

wie kann ich das XSS-Exploits am besten verhindern?

Danke BirdyB funktioniert, nun mit dem Download.

Gruß & Danke
SlainteMhath
SlainteMhath 25.02.2015 um 08:46:14 Uhr
Goto Top
wie kann ich das XSS-Exploits am besten verhindern?
In dem du keine Benutzereingaben - also alles was per POST oder GET kommt - ungeprüft und ungefiltert per echo ausgibst.

Frage dich doch mal was passiert, wenn $_POST[*img_size'] den Wert
100" OnClick="alert("XSS!");  
annimmt
B.Nutzer
B.Nutzer 26.02.2015 um 14:24:01 Uhr
Goto Top
Zitat von @vServer:
wie kann ich das XSS-Exploits am besten verhindern?

Userinput validieren! Hier oben machst du es schon richtig...

$im_x = (int)$_POST['img_size'];
$im_y = (int)$_POST['img_size'];
vServer
vServer 28.02.2015 aktualisiert um 21:28:05 Uhr
Goto Top
Hi,


Blick gerade da nicht durch, wo müsste ich das alles ändern, nur in diesem php-Abschnitt oder?

Gruß & Danke