Avatar billede the_edge Nybegynder
07. februar 2007 - 15:11 Der er 16 kommentarer og
1 løsning

opret profil biiled med blob

Hejsa nu er det lykkes mig at at oprette en bruger... men hvordan gør jeg at der også bliver uploadet et profil billed med ? det skal bare lægges ind i databasen også.

<?php
include_once("sql.php");
include_once("help.php");

echo '<center><h3>Opret bruger</h3></center>';

    function opretbruger()
    {
   
        ?>
       
    <div id="opretbruger">
    <fieldset align="center">
    <legend>
    <?php
   
    /*for($i=1; $i<60; $i++)
    {
    echo "&nbsp";
    }
*/
    ?>
   
    </legend>
   
    <table align="center" border="0">
    <form action="index.php?pid=opretbruger" method="POST">
   
    <tr><td><p>Brugernavn :</p></td><td><input type="text" name="brugernavn" value=""></td></tr>
    <tr><td><p>Fornavn :</p></td><td><input type="text" name="Fornavn" value=""></td></tr>
    <tr><td><p>Efternavn :</p></td><td><input type="text" name="Efternavn" value=""></td></tr>
    <tr><td><p>Email :</p></td><td><input type="text" name="Email" value=""></td></tr>

    <tr><td><p>Beskæftigelse:</p></td><td><input type="text" name="Beskeftigelse" value=""></td></tr>
    <?php
    //uploadprofilbilled();
    ?>
   
        <tr><td><p>Lidt om dig :</p></td><td><textarea name="Ombrugeren" cols=16 rows=9></textarea></td></tr>
    <tr><td><p>Kodeord :</p>  </td><td><input type="password" name="kodeord1">  </td></tr>
    <tr><td><p>Indtast kodeord igen :</p>  </td><td><input type="password" name="kodeord2">  </td></tr>
    <tr><td>&nbsp</td> <td><input type="submit" value="Opret" name="Opret"><input type="reset" name="reset"> </td></tr>
   
    </form>
    </table>
    </fieldset>
    </div>
    <?php
   
    $hentet = sql("select * from brugenavn");
    $dbbrugernavn = $hentet["Brugernavn"];
   
    //--------------------------------------------------------
   
    //         Lægger post over i variabler og trimmer dem så det står pænt i databasen.
   
    $brugernavn = trimmet($_POST["brugernavn"]);
    $fornavn = trimmet($_POST["Fornavn"]);
    $efternavn= trimmet($_POST["Efternavn"]);
    $email = trimmet($_POST["Email"]);
    $ombrugeren = $_POST["Ombrugeren"];
    $beskeftigelse = $_POST["Beskeftigelse"];
    $email = trimmet($_POST["Email"]);
    $kodeord = $_POST["kodeord1"];
   
    //---------------------------------------------------------
   
if (isset($_POST["Opret"])) //&& $_POST["kodeord1"] == "" || $_POST["kodeord2"] == ""
{   
    if ($_POST["brugernavn"] == "")
    {   
        echo "Du skal udfylde brugernavn";       
    }
   
    else if($brugernavn == $dbbrugernavn)
   
    echo "Det valgte brugernavn er allerede valgt\n vælg et andet";   
   
    else if(empty($_POST["kodeord1"]) || empty($_POST["kodeord2"]) )
    {
        echo "Du skal indtaste et kodeord";
    }
   
    else if(isset($_POST["kodeord1"]) && isset($_POST["kodeord2"]) && $_POST["kodeord1"] == $_POST["kodeord2"])
    {
    sqlinsert("INSERT INTO brugenavn (Brugernavn,Fornavn,Efternavn,Kodeord,Email,Ombrugeren,Beskeftigelse,Profilbilled) VALUES ('$brugernavn','$fornavn','$efternavn','$kodeord','$email','$ombrugeren','$beskeftigelse','$profilbilled')");
    echo "Du er nu oprettet ";
    }
   
    else echo "Kodeord ikke ens"; //du skal ikke bruge tuborg ved mindre det er på flere linjer   
}
    }

    //$_SESSION["login"] = 0;

//if ($_SESSION["login"] = 1)
//{
opretbruger();
//}

//else "Du er ikke logget ind";



?>
Avatar billede coderdk Praktikant
07. februar 2007 - 15:17 #1
<form action="index.php?pid=opretbruger" method="POST">

skal være:

<form action="index.php?pid=opretbruger" method="POST" enctype="multipart/form-data">

Så skal du tilføje

<input type="file" name="billede">

Og i submit-delen, bemærk at $DIR skal være en folder scriptet kan skrive til - På flere webhoteller kan du nemlig ikke læse den uploadede fil før du har flyttet den!

$billede = '';
if ( !empty( $_FILES['billede'] ) && is_uploaded_file( $_FILES['billede']['tmp_name'] ) )
{
  $DIR = "upload/";
  $navn = tempnam( $DIR, "UPL_" );
  if ( move_uploaded_file( $_FILES['billede']['tmp_name'], $navn ) )
  {
      $billede = file_get_contents( $navn );
      unlink( $navn );
  }
}

$billede = mysql_escape_string( $billede );

Nu kan du indsætte $billede som en streng i en BLOB
Avatar billede the_edge Nybegynder
07. februar 2007 - 15:29 #2
nice :D du er godt nok hurtig med svar :=) har et lille dump spørgsmål... når jeg henter det ud få jeg alle karakteren ud... hvordan får jeg det ud som et billed ?
Avatar billede coderdk Praktikant
07. februar 2007 - 15:33 #3
Du skal have et separat script til at vise billedet, f.eks. pic.php... Du bør også sende en content type... I.e. header("Content-Type: image/jpeg") og så udskrive data... På siden der skal vise billedet kalder du den så bare med den ID:

<img src="pic.php?id=123">
Avatar billede the_edge Nybegynder
07. februar 2007 - 15:37 #4
hvad skal der stå i pic.php ? tror ikke helt jeg forstå det ?
Avatar billede coderdk Praktikant
07. februar 2007 - 15:39 #5
Noget i stil med

<?php

  header("Content-Type: image/jpeg");
  $id = intval( $_GET['id'] );
  $sql = "SELECT billede FROM brugenavn WHERE brugerid = $id";
  $qh = mysql_query( $sql ) or die( mysql_error() );
  $row = mysql_fetch_assoc( $qh );
  echo $row['billede'];

?>
Avatar billede coderdk Praktikant
07. februar 2007 - 15:40 #6
Hvis der ikke kommer noget billede, så prøv at sætte // foran header() linjen, så kan du også læse fejlen :P
Avatar billede the_edge Nybegynder
07. februar 2007 - 15:43 #7
jeg har sådan her... men der skriver den hele stengen ud


session_start();

include_once("sql.php");

    $bruger = $_GET["bruger"];

    conn();
    $result = mysql_query("select * from brugenavn where Brugernavn = '$bruger'") or die (mysql_error());

    echo "<br />
    ";   


    while ($row = mysql_fetch_array($result))
    {
    echo '<center><h3>'.$row["Fornavn"].'</h3></center>';
   
    $fornavn = $row["Fornavn"];
    $efternavn = $row["Efternavn"];
    $email = $row["Email"];
    $ombrugeren = $row["Ombrugeren"];
    $profilbilled = $row["Profilbilled"];
    }

    $Fornavn = $hentet["Fornavn"];
    echo $Fornavn;
   
    echo "<br />".$row["Fornavn"];
   
    echo'
    <br />
    <br />
    <table border="1">
   
    <tr>
    <td>Fornavn</td> <td>'. $fornavn .'</td>
    </tr>
    <tr>
    <td>Efternavn</td> <td>'.$efternavn .'</td>
    </tr>
    <tr>
    <td>E-Mail</td> <td>'. $email .'</td>
    </tr>
    <tr>
    <td>Om mig</td> <td>'. $ombrugeren.'</td>
    </tr>
    <tr>
    <td>'.$profilbilled.'</td>
   
    </tr>
   
    </table>

';


?>
Avatar billede coderdk Praktikant
07. februar 2007 - 15:44 #8
Yep
Avatar billede the_edge Nybegynder
07. februar 2007 - 15:47 #9
men så header("Content-Type: image/jpeg"); med ? skal med ?
Avatar billede coderdk Praktikant
07. februar 2007 - 15:48 #10
Nej, du kan ikke bruge $profilbilled på den side! Du skal kalde et nyt script.
Avatar billede coderdk Praktikant
07. februar 2007 - 15:49 #11
Ok, I'll bite:

session_start();

include_once("sql.php");

    $bruger = $_GET["bruger"];

    conn();
    $result = mysql_query("select * from brugenavn where Brugernavn = '$bruger'") or die (mysql_error());

    echo "<br />
    "; 


    while ($row = mysql_fetch_array($result))
    {
    echo '<center><h3>'.$row["Fornavn"].'</h3></center>';
 
    $fornavn = $row["Fornavn"];
    $efternavn = $row["Efternavn"];
    $email = $row["Email"];
    $ombrugeren = $row["Ombrugeren"];
    $profilbilled = $row["Profilbilled"];
    }

    $Fornavn = $hentet["Fornavn"];
    echo $Fornavn;
 
    echo "<br />".$row["Fornavn"];
 
    echo'
    <br />
    <br />
    <table border="1">
 
    <tr>
    <td>Fornavn</td> <td>'. $fornavn .'</td>
    </tr>
    <tr>
    <td>Efternavn</td> <td>'.$efternavn .'</td>
    </tr>
    <tr>
    <td>E-Mail</td> <td>'. $email .'</td>
    </tr>
    <tr>
    <td>Om mig</td> <td>'. $ombrugeren.'</td>
    </tr>
    <tr>
    <td><img src="pic.php?id=' . $row['brugerid'] . '"></td>
 
    </tr>
 
    </table>

';


?>

såfremt du har rækken "brugerid" og du har lavet pic.php som beskrevet ovenfor
Avatar billede the_edge Nybegynder
07. februar 2007 - 15:50 #12
kalde et nyt script ? jeg vil bare gerne havde billed ud på den side...
Avatar billede the_edge Nybegynder
07. februar 2007 - 15:54 #13
ahh okay
Avatar billede the_edge Nybegynder
07. februar 2007 - 15:54 #14
prøver det lige
Avatar billede the_edge Nybegynder
07. februar 2007 - 16:17 #15
det virked sku ^^ tusind tak for hjælpen... hvis du lægger et svar er der point.
hvad er det der gør at det kommer ud som et billed nu ? og ikke som en masse text ? kan ikke lige se...
Avatar billede coderdk Praktikant
07. februar 2007 - 17:22 #16
Det kommer stadig ud som "text" det er blot binært og med content-type har vi sagt at browseren skal fortolke data som et billede ;)
Avatar billede the_edge Nybegynder
07. februar 2007 - 19:07 #17
ahh der kan man bare se :) tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester