for-Schleifen nutzt man meist dann, wenn man das Ende der Schleife kennt, bzw. ermitteln kann.
while-Schleifen nutzt man meist dann, wenn eine bestimmte Bedingung zum Ende der Schleife führen soll
for-Schleifen nutzt man meist dann, wenn man das Ende der Schleife kennt, bzw. ermitteln kann.
while-Schleifen nutzt man meist dann, wenn eine bestimmte Bedingung zum Ende der Schleife führen soll
Dann bin ich ja nur noch mehr verwirrt.
Wieso? Ich kenne jetzt nicht die genauen Zahlen, aber bei einer Kiste Cola hättest du das:
Pfand = 12 (Flaschen) * 0, 15 (Pfand pro Flasche) + 1,50 (Pfand für Rahmen)
Somit kannst du doch alles berechnen. Volle Kästen, halbe Kästen, nur Flaschen. Wo ist jetzt das Problem? Das ist doch nicht mehr als Grundschulen-Mathematik.
Was kommt als nächstes? Lernpartner JavaScript? Lernpartner PHP?
Das kann man auch alles in einen Thread packen. Und dann in das Board Sonstiges, denn dieser Thread ist ja nicht CSS-Spezifisch.
Ein Ansatz mit Aufruf von JavaScript über checkbox onclick funktioniert nicht.
Und wie sieht dieser Ansatz aus? So wie auf https://www.tutorials.de/threads/dynami…ascript.409081/
Man kann das aber lernen, wenn man denn will.
Du kannst im HTML-Code nicht das htdocs-Verzeichnis verlassen, da musst du dir etwas anderes einfallen lassen. Das Kopieren vor der Auslieferung wird zu lange dauern. Du könntest aber ein PHP-Script schreiben, dass den Stream ausgibt. Mit PHP kommst du aus außerhalb von htdocs an Dateien, wenn der Server das zulässt.
Da solltest du besser mal in der Doku von dbmail nachsehen, denn ich glaube nicht, dass das ein HTML-Problem ist.
Alle Seiten einmal durchklicken und dann im Firefox nachsehen, ob es ein Cookie von deiner Seite gibt. Wenn nein, dann brauchst du das nicht
Mit den Informationen kann dir niemand helfen. Link zur Seite? Quellcode?
Die index.php sollte er eigentlich aufrufen, zumal beim ersten Aufruf ja noch nichts passiert, außer dass das Formular angezeigt wird. Mir fallen da zwei Möglichkeiten ein:
Sieh' dir mal an, ob man im Browser etwas sieht, wenn man sich den Quellcode anzeigen lässt
dass man die Werte in der Datenbank speichern muss ist mir bekannt
Und wo hast du das erwähnt? Sehe ich zumindest nicht.
Nach erfolgreichem Login an die DB senden:
update tabelle set lastLogin = now() where user_id = $id
Wobei du natürlich die Daten anpassen müsst.
Weis jemand wie ich soetwas machen kann?
Ja, ich und damit wäre deine Frage korrekt beantwortet.
Speichere beide Werte in einer Datenbank, falls vorhanden
index.php
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Image-Resizer</title>
</head>
<body>
<h3>Image-Resizer</h3>
<?php
if ( ! isset($_POST["submit"]))
{
?>
<form action='<?php echo $_SERVER["SCRIPT_NAME"]; ?>' method='POST'>
<table>
<tr>
<td>Quellverzeichnis:</td>
<td><input type='text' name='source' size='30'></td>
</tr>
<tr>
<td>Zielverzeichnis:</td>
<td><input type='text' name='destination' size='30'></td>
</tr>
<tr>
<td>Breite in Pixel:</td>
<td><input type='text' name='width' size='4'></td>
</tr>
<tr>
<td>Höhe in Pixel:</td>
<td><input type='text' name='height' size='4'></td>
</tr>
<tr>
<td>Qualität:</td>
<td><input type='text' name='quality' size='4' value='100'></td>
</tr>
<tr>
<td>Proportional:</td>
<td><input type='checkbox' name='fixed' checked></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td><input type='submit' name='submit' value='Abschicken'</td>
</tr>
</table>
</form>
<?php
}
else
{
// Bei Timeout-Problemen den Wert erhöhen
ini_set("max_execution_time", "3000");
$source = $_POST["source"];
$dest = $_POST["destination"];
$width = $_POST["width"];
$height = $_POST["height"];
$quality = $_POST["quality"];
if (isset($_POST["fixed"]))
$fixed = true;
else
$fixed = false;
if (! strlen ($source))
{
echo "Kein Quellverzeichnis";
exit;
}
if (! strlen ($dest))
{
echo "Kein Zielverzeichnis";
exit;
}
if (! strlen ($width) && ! strlen ($height))
{
echo "Keine Größen angegeben";
exit;
}
if ($fixed)
{
if (strlen ($width))
$height = 0;
else if (strlen ($height))
$width = 0;
}
include_once("./class.imageResizer.php");
$resizer = new CImageResizer();
$resizer->setMembers($source, $dest, $width, $height, $quality);
$result = $resizer->run();
if (is_array($result))
echo implode("<br>\n", $result);
else
echo "Fehler: $result";
}
?>
</body>
</html>
Alles anzeigen
class.imageResizer.php
<?php
class CImageResizer
{
private $sourcePath;
private $destinationPath;
private $width;
private $height;
private $quality;
private $extensions;
//---------------------------------------------------------------
// public functions
//---------------------------------------------------------------
function __construct()
{
$this->sourcePath = "";
$this->destinationPath = "";
$this->width = 0;
$this->height = 0;
$this->quality = 100;
$this->extensions = array("*.png", "*.jpg", "*.jpeg", "*.gif");
}
//---------------------------------------------------------------
function setSourcePath($path)
{
$this->sourcePath = $path;
}
//---------------------------------------------------------------
function setDestinationPath($path)
{
$this->destinationPath = $path;
}
//---------------------------------------------------------------
function setHeight($height)
{
$this->height = $height;
}
//---------------------------------------------------------------
function setWidth($width)
{
$this->width = $width;
}
//---------------------------------------------------------------
function setQuality($quality)
{
$this->quality = $quality;
}
//---------------------------------------------------------------
function setExtensions($extensions)
{
if (is_array($extensions))
$this->extensions = $extensions;
}
//---------------------------------------------------------------
function setMembers($sourcePath, $destinationPath, $width, $height, $quality = 0)
{
$this->sourcePath = $sourcePath;
$this->destinationPath = $destinationPath;
$this->width = $width;
$this->height = $height;
$this->quality = $quality;
}
//---------------------------------------------------------------
function run()
{
$result = array();
if ($this->checkSourcePath())
{
if ($this->checkDestinationPath())
{
if ($this->sourcePath != $this->destinationPath)
{
$files = $this->getFiles();
if (count($files))
{
foreach($files as $file)
{
if ($this->resizeImage($file))
$result[] = "$file erfolgreich resized";
else
$result[] = "$file nicht erfolgreich resized";
}
}
else
$result = "Keine Dateien gefunden";
}
else
$result = "Verzeichnisse sind gleich";
}
else
$result = $this->destinationPath . " nicht vorhanden und kann nicht angelegt werden";
}
else
$result = $this->sourcePath . " nicht vorhanden";
return $result;
}
//---------------------------------------------------------------
// protected functions
//---------------------------------------------------------------
protected function getFiles()
{
$result = array();
$result = glob ($this->sourcePath . "/{" . implode(",", $this->extensions) . "}", GLOB_BRACE);
return $result;
}
//---------------------------------------------------------------
protected function checkSourcePath()
{
$result = true;
if (! file_exists($this->sourcePath))
$result = false;
return $result;
}
//---------------------------------------------------------------
protected function checkDestinationPath()
{
$result = true;
if (! file_exists($this->destinationPath))
{
if ( ! mkdir ($this->destinationPath, "0777"))
{
$result = false;
}
}
return $result;
}
//---------------------------------------------------------------
protected function resizeImage($file)
{
if (file_exists($file))
{
if ($this->width == 0 && $this->height == 0)
return false;
$src = strtolower($this->sourcePath . "/" . $file);
$src = pathinfo($src);
$dest = strtolower($this->destinationPath . "/" . $src['basename']);
$dest = pathinfo($dest);
$size = getimagesize($file);
if ($this->height && ! $this->width)
{
$h = number_format($this->height, 0, ',', '');
$w = number_format(($size[0] / $size[1]) * $this->height, 0, ',' ,'');
}
else if (! $this->height && $this->width)
{
$w = number_format($this->width, 0, ',', '');
$h = number_format(($size[1] / $size[0]) * $this->width, 0, ', ','');
}
else
{
$h = number_format($this->height, 0, ',', '');
$w = number_format($this->width, 0, ',', '');
}
if (! in_array("*." . $src['extension'], $this->extensions))
return false;
$dest_image = imagecreatetruecolor($w, $h);
imageantialias($dest_image, true);
switch($size[2])
{
case 1: //GIF
$src_image = imagecreatefromgif($file);
break;
case 2: //JPEG
$src_image = imagecreatefromjpeg($file);
break;
case 3: //PNG
$src_image = imagecreatefrompng($file);
break;
default:
return false;
break;
}
imagecopyresampled($dest_image, $src_image, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);
switch($size[2])
{
case 1:
imagegif($dest_image, $this->destinationPath . "/" . $src['basename']);
break;
case 2:
imagejpeg($dest_image, $this->destinationPath . "/" . $src['basename'], $this->quality);
break;
case 3:
imagepng($dest_image, $this->destinationPath . "/" . $src['basename']);
break;
}
return true;
}
else
return false;
}
}
?>
Alles anzeigen
hat jemand Erfahrung, wie man relativ schnell kleine Vorschaubilder für die Lightbox herstellen kann?
Ja, habe ich. Und damit wäre deine Frage korrekt beantwortet
Man kann sich z.B. ein PHP-Script basteln, dass alle Bilder aus einem Verzeichnis ausliest und diese verkleinert und in ein anderes Verzeichnis oder unter anderem Dateinamen speichert.
Glaubst du wirklich, dass das noch relevant ist? Nach über 10 Monaten dürfte das Thema erledigt sein.
Sieh' dir das hier mal an, da hast du komplette Beispiele: https://www.w3schools.com/css/css3_flexbox.asp
Entweder gibt es das Bild img/avatar.png nicht oder du hast Groß/Kleinschreibung nicht beachtet. Das ist aber nur geraten, mit einem Link zur Seite könnte man vielleicht mehr sagen.
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.