Avatar billede clausberg Nybegynder
15. oktober 2006 - 00:53 Der er 8 kommentarer og
1 løsning

Tekst står på forkert side

Hey Eksperter - I need help!!!!!!!!!!!!!!!
Når man klikker på submit, bliver teksten "filen er uploaded" vist ovenover selve formularen. Kan man lave scriptet sådan, at man bliver smidt til en ny side, efter at man har klikket på submit.

<?php
function resize( $filename, $newfilename, $maxw, $maxh )
{
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
}
require('connect.php');

$allowedFiles = array('jpg');
$curDir      = getcwd();
$uploadDir    = '/upload/';
$output      = '<div id="centerDiv">';

if(isset($_POST['upload']) && $_FILES['myFile']['size'] > 0)
{
    $ext = strtolower(end(explode('.',$_FILES['myFile']['name'])));
    if(in_array($ext,$allowedFiles))
    {
        $design  = mysql_real_escape_string(strip_tags($_POST['mydesign']));
        $email  = mysql_real_escape_string(strip_tags($_POST['myemail']));
        $kategori  = mysql_real_escape_string(strip_tags($_POST['mykategori']));
        $header  = mysql_real_escape_string(strip_tags($_POST['myHeader']));
        $pris  = mysql_real_escape_string(strip_tags($_POST['mypris']));
        $comment = mysql_real_escape_string(strip_tags($_POST['myText']));
        $file = md5(uniqid(rand(), true)) . '.jpg';

        if(resize($_FILES['myFile']['tmp_name'], $curDir . $uploadDir . $file, 150, 150))
        {
            mysql_query("INSERT INTO tbl_716418(filename,design,email,kategori,header,pris,comment,added) VALUES('".$file."','".$session->username."','".$email."','".$kategori."','".$header."','".$pris."','".$comment."',NOW())") or die(mysql_error());
            $output .= 'Filen er uploadet<hr />';
        }
    }
}
$output .= '<div class="row">';
$output .= '<span class="label">Produktupload for designeren:</span>';
$output .= '<span class="formw"><input type="text" name="mydesign" readonly value="' . $session->username . '" /></span>';
$output .= '</div>';

$output .= '<div class="row">';
$output .= '<span class="label">Email:</span>';
$output .= '<span class="formw"><input type="text" name="myemail" /></span>';
$output .= '</div>';


$output .= '<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data">';
$output .= '<div class="row">';
$output .= '<span class="label">Billede - kun jpg format</span>';
$output .= '<span class="formw"><input type="file" name="myFile" /></span>';
$output .= '</div>';

$output .= '<div class="row">';
$output .= '<span class="label">Kategori</span>';
$output .= '<span class="formw"><SELECT name="mykategori" />
<OPTION SELECTED>Vælg kategori
<OPTION>Volvo
<OPTION>Fiat
</SELECT>
</span>';
$output .= '</div>';

$output .= '<div class="row">';
$output .= '<span class="label">Overskrift</span>';
$output .= '<span class="formw"><input type="text" name="myHeader" /></span>';
$output .= '</div>';

$output .= '<div class="row">';
$output .= '<span class="label">Pris:</span>';
$output .= '<span class="formw"><input type="text" name="mypris" value=" kr" /></span>';
$output .= '</div>';

$output .= '<div class="row">';
$output .= '<span class="label">Produkt beskrivelse</span>';
$output .= '<span class="formw"><textarea cols="40" rows="6" name="myText"></textarea></span>';
$output .= '</div>';

$output .= '<div class="row">';
$output .= '<span class="label"></span>';
$output .= '<span class="formw"><input type="submit" name="upload" value="Upload informationerne" /></span>';
$output .= '</div>';

$output .= '<div class="spacer">&nbsp;</div>';
$output .= '</form>';
$output .= '</div>';
?>
Avatar billede jakobdo Ekspert
15. oktober 2006 - 09:41 #1
Du kan evt. ændre linien:
$output .= '<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data">';

til:

$output .= '<form action="EnAndenSide.php" method="post" enctype="multipart/form-data">';

EnAndenSide.php
skal så indeholde koden:

function resize( $filename, $newfilename, $maxw, $maxh )
{
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
}
require('connect.php');

$allowedFiles = array('jpg');
$curDir      = getcwd();
$uploadDir    = '/upload/';
$output      = '<div id="centerDiv">';

if(isset($_POST['upload']) && $_FILES['myFile']['size'] > 0)
{
    $ext = strtolower(end(explode('.',$_FILES['myFile']['name'])));
    if(in_array($ext,$allowedFiles))
    {
        $design  = mysql_real_escape_string(strip_tags($_POST['mydesign']));
        $email  = mysql_real_escape_string(strip_tags($_POST['myemail']));
        $kategori  = mysql_real_escape_string(strip_tags($_POST['mykategori']));
        $header  = mysql_real_escape_string(strip_tags($_POST['myHeader']));
        $pris  = mysql_real_escape_string(strip_tags($_POST['mypris']));
        $comment = mysql_real_escape_string(strip_tags($_POST['myText']));
        $file = md5(uniqid(rand(), true)) . '.jpg';

        if(resize($_FILES['myFile']['tmp_name'], $curDir . $uploadDir . $file, 150, 150))
        {
            mysql_query("INSERT INTO tbl_716418(filename,design,email,kategori,header,pris,comment,added) VALUES('".$file."','".$session->username."','".$email."','".$kategori."','".$header."','".$pris."','".$comment."',NOW())") or die(mysql_error());
            $output .= 'Filen er uploadet<hr />';
        }
    }
}

En anden ting du kan gøre er følgende:

I stedet for:
$output .= 'Filen er uploadet<hr />';
kan du lave:

header('Location: EnAndenSide.php');

EnAndenSide.php kunne så blot skrive: echo "Din fil er uploadet";
Avatar billede clausberg Nybegynder
15. oktober 2006 - 14:21 #2
Er der forskel på de to måder at gøre det på?
Avatar billede clausberg Nybegynder
15. oktober 2006 - 14:48 #3
Hvis jeg udskifter
$output .= 'Filen er uploadet<hr />';
med
header('Location: EnAndenSide.php');

så får jeg fejlmeddelsen:
Cannot modify header information - headers already sent by
Avatar billede clausberg Nybegynder
15. oktober 2006 - 15:04 #4
Dit første forslag virker :-) Tak for det - det er en kraftig forbedring !

Men det går et eller andet galt, når man indtaster email adressen. Det er kun det felt, der er fejl i. Den tekst man skriver i feltet "email" bliver ikke sendt over til databasen. Kan du spotte fejlen?
Avatar billede jakobdo Ekspert
15. oktober 2006 - 15:05 #5
Jep!
myemail står uden for din form!

Du skal flytte koden:

$output .= '<div class="row">';
$output .= '<span class="label">Email:</span>';
$output .= '<span class="formw"><input type="text" name="myemail" /></span>';
$output .= '</div>';

Ind i mellem <form .....> og så </form>
Avatar billede clausberg Nybegynder
15. oktober 2006 - 16:17 #6
HA HA HA HA... hvor simpelt kan det være :-) Tak for det !!!!

Sidste ting: alt det output jeg har... altså den del der printer selve min formular, kan jeg ikke med fordel lave den i alm html... istedet for php? Det gør måske ingen forskel?

Og smid i øvrigt et svar ;-)
Avatar billede jakobdo Ekspert
15. oktober 2006 - 17:18 #7
Jo, du kan godt ændre $output til at udskrive formularen direkte.

Og et svar!
Avatar billede clausberg Nybegynder
16. oktober 2006 - 11:28 #8
Tak for det :-)
Avatar billede jakobdo Ekspert
16. oktober 2006 - 11:37 #9
Og tak for point.
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