Bild durch Code eingabe freigeben

07/14/2015 14:05 .Quadral#1
Hallo Leute,

ich habe eine kleine Frage und zwar möchte ich ein auf meinem Webspace hochgeladenes Bild freigeben.

Es soll so ablaufen das der User der den Link öffnet einen Code eingeben muss und wenn dieser richtig ist sich das Bild erst öffnet.

Der Code soll vorher von mir in der Datenbank eingetragen werden.
Der User soll das Bild nur anschauen können heißt das durch den Code kein Download starten soll.

Wie kann ich das realisieren?

Vielen Dank für euer Antworten im vorraus

best regards
.DVNTY
07/15/2015 09:22 Mīzu#2
Du musst nur ne Tabelle anlegen.
Wenn du mehrere Bilder haben willst mit verschiedenen Codes wäre eine möglichkeit an Feldern z.B.: images_id, images_name, images_code

Dann hast du beim Seitenaufruf dein Inputfeld und jenachdem welchen Code der Benutzer eingibt, sucht der PHP Script dir dann in der Datenbank anhand der Spalte 'images_code' raus zu welchem Image der Code gehört (images_code sollte ein UNIQUE sein).

Dann musst nurnoch das Image ausgeben lassen.

Code ist ungetestet:

Datenbank erstellen:

Code:
CREATE TABLE `images` (
	`images_id` INT(11) NOT NULL AUTO_INCREMENT,
	`images_name` VARCHAR(255) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci',
	`images_code` VARCHAR(255) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci',
	PRIMARY KEY (`images_id`)
)

PHP:

PHP Code:
<?php

if(isset($_POST['getImage']) && !empty($_POST['code'])){
    
$db  = new mysqli('host''user''passwd''dbname''3306');
    
$qry "SELECT * FROM images WHERE image_code = '".mysqli_real_escape_string($db$_POST['code'])."'";
    if(
mysqli_num_rows($qry)>0){
        
$res mysqli_fetch_object($qry);
    } else {
        echo 
'Der Code existiert nicht';
    }
}


if(isset(
$res)){
    echo 
'<img src="pfad/zum/bild/"'.$res->image_name.'>';
}
?>

<form method="post">
    <input type="code" placeholder="Code" name="code">
    <input type="submit" value="Gib mir das Image" name="getImage">
</form>
Man sollte es nicht so machen, nach möglichkeit PHP Code immer von HTML trennen (OOP).
Es ging jetzt auch mehr darum um zu zeigen WIE kann man es verwirklichen, welche Logik steckt dahinter.
08/13/2015 00:12 hamzatun#3
Das was Yoshi sagt stimmt schon ... Aber dafür muss man vorher schon Erfahrung mit SQL - DQL und PHP , einfacher ist es wenn du einfach eine Seite machst die dazwischen geschaltet ist, das heißt wenn man auf den Link für das Bild geht, das zuerst ein Feld kommt indem man ein Passwort eingibt - eine Form so übernimmst du ebenfalls die Daten mit der PHP Post Methode.
Eine definierte ID musst du haben das heißt . ZB bei Bild 1 mit der id = 1 ist das Passwort hallo123

Dann würdest du mit einem select Befehl aus der Datenbank abfragen ...

$eingabe= SELECT passwort FROM BILDER WHERE ID = <?php Echo $id ?>;

Dann einfach mit einer fallunterscheidung arbeiten.

If( $eingabe == 'hallo123')
{
Echo $link;
}
Else
Echo ' error ' }

Bitte nicht kopieren Hab es auf Handy geschrieben und ist nur für das Verständnis gedacht