Bilder in MySQL: Nur Verweis oder dort speichern



  • Meine Frage sagt schon alles: Werden Bilder direkt in der DB gespeichert (was fürn Datentyp wäre das), oder wird nur ein Verweis gespeichert und das Bild dann durch den Verweis aus einem Verzeichnis geladen?
    Danke.



  • Datentype "blob"

    Ein verweis ist besser da die Datenbank arbeitet.

    Die Daten des Bildes müssen sowieso übertragen werden. Das suchen in der Datenbank dauert aber länger da die Bilder direkt in der Datenbankdatei gespeichert werden. Je größer die ist umso länger dauert es. Das Problem ist aber: Wenn Datensätze gelöscht werden dann wird der Platz nicht freigegeben bis man Optimize Table aufruft.



  • Binäre Geschichten wie Bilder haben meiner Meinung nach in einer DB nichts verloren. Ich würe auch zu nem Verweis raten.

    MfGr,
    mid



  • Ok, danke. Noch ne Frage: Sollten die register_globals auf on oder off gestellt werden? Gibt einen triftigen Grund, sie auf on zu stellen?



  • Sollen auf OFF bleiben.

    IMHO hatte ich bis jetzt noch keinen Grund für ON.



  • Unix-Tom schrieb:

    Sollen auf OFF bleiben.
    IMHO hatte ich bis jetzt noch keinen Grund für ON.

    und wie übergibst du bsplw. in php-scripten eine variable wenn nicht mit seite.php?variable=wert ?
    soweit ich weiß, geht diese art der variablenübergabe (wie oben von mir beschrieben) nicht wenn die globals auf off stehen, oder irre ich mich da ?!



  • man muss sie abholen...

    lies mal über sicherheit dieses zu bleistift
    http://www.dynamic-webpages.de/php/security.registerglobals.php

    wichtig: in folgezeiten wird es off bleiben, also würde ich mich gleich dran gewöhnen 🙂



  • $_GET['variable'] bzw. $_REQUEST['variable']



  • Wie würde das denn bitte mit register_globals = off umgeschrieben? Danke.

    <html>
        <head>
            <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
            <title>Formulardaten</title>
    		<!--esi localhost="http://localhost/dummy/"-->
        </head>
        <body>
            <?php
                $x = intval($x);
                $y = intval($y); 
                $z = intval($z);
                $sum = $x + $y + $z;
                $erg = strval($sum);
            ?>
            <form action="xyz.php" method="POST">
                Wert1:
                <input type="text" name="x" value="<?php echo $x; ?>" maxlength="2" size="3"><br>
                Wert2:
                <input type="text" name="y" value="<?php echo $y; ?>" maxlength="2" size="3"><br>
                Wert3:
                <input type="text" name="z" value="<?php echo $z; ?>" maxlength="2" size="3"><br>
                Ergebnis:
                <input type="text" name="Ergebnis" value="<?php echo $erg; ?>" size="6"> <br>
                <input type="submit" name="submit" value="Berechne!">
                <input type="reset" value="löschen">
            </form>
        </body>
    </html>
    


  • Wo ist dein Problem?

    <html> 
        <head> 
            <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> 
            <title>Formulardaten</title> 
            <!--esi localhost="http://localhost/dummy/"--> 
        </head> 
        <body> 
            <?php 
                $x = intval($_POST['x']); 
                $y = intval($_POST['y']);  
                $z = intval($_POST['z']); 
                $sum = $x + $y + $z; 
                $erg = strval($sum); 
            ?> 
            <form action="xyz.php" method="POST"> 
                Wert1: 
                <input type="text" name="x" value="<?php echo $x; ?>" maxlength="2" size="3"><br> 
                Wert2: 
                <input type="text" name="y" value="<?php echo $y; ?>" maxlength="2" size="3"><br> 
                Wert3: 
                <input type="text" name="z" value="<?php echo $z; ?>" maxlength="2" size="3"><br> 
                Ergebnis: 
                <input type="text" name="Ergebnis" value="<?php echo $erg; ?>" size="6"> <br> 
                <input type="submit" name="submit" value="Berechne!"> 
                <input type="reset" value="löschen"> 
            </form> 
        </body> 
    </html>
    


  • Ich hab jetzt mal ein Gästebuch umgeändert, läuft aber nicht mehr (heh, nicht lachen). Beim letzten fclose gibst sogar ne Fehlermeldung. Was mach ich denn hier falsch?

    <?php
    	session_start();
    ?>
    <html>
    	<head>
    		<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    		<title>
                Gästebuch
            </title>
    		<!--esi localhost="http://localhost/dummy/"-->
    	</head>
    	<body>
    		<img src="rioamazonas.gif">
            <br><br><b>GÄSTEBUCH</b><br>
    		<form name="Eintrag" method="POST">
      			Wer sind Sie?<br>
    			<!-- "sender" enthält den Textinhalt -->
          		<input type="text" name="sender" maxlength="50" size="30">
    			<br>Was möchten Sie uns sagen?<br>
    			<!-- "text" enthält den Textinhalt -->
          		<textarea name="text" cols="70" rows="5"></textarea>
    			<br>
    			<input type="submit" name="senden" value="Senden">
            	<input type="reset" name="reset" value="Leeren">      				
    		</form>
    		<table border=1>
    			<tr>
    				<th>Von</th>
    				<th>Nachricht</th>
    				<th>Datum</th>
    			</tr>
    			<?php
    				$_POST['$dateiname'] = "gaestebuch.txt";
    				$_POST['$datum'] = strftime("%d.%m.%y, %H:%M", time());
    				if ($_POST['$sender'] != "" && $_POST['$text'] != "")
    				{
    					$_POST['$ausgabe'] = "<tr><td>$_POST[$sender]</td><td>$_POST[$text]</td><td>$_POST[$datum]</td></tr>";
    					$_POST['$datei'] = fopen ($_POST['$dateiname'], "a");
           				if ($_POST['$datei']) 
    					{
    						fputs($_POST['$datei'], stripslashes($_POST['$ausgabe']));
               				fclose($_POST['$datei']);
    					}
    				}
       				if (file_exists($_POST['$dateiname'])) 
    				{
           				$datei=fopen($_POST['$dateiname'], "r");
           				if ($_POST['$datei']) 
            	   			include($_POST['$dateiname']);
                	    fclose($_POST['$datei']);
    				}
    			?>
    		</table>
    		<br>
    		<a href="index.php">zurück zur Startseite</a><br>
    	</body>
    </html>
    

Anmelden zum Antworten