in 1 form -> DB + pdf upload

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Femke

femke

15/08/2006 12:58:00
Quote Anchor link
Hoihoi,

Ik heb een vraagje. Ik heb een html FORM binnen mijn artikelplaatsen.php. Daar kan ik een artikel schrijven (id, titel, bericht, datum) en vervolgens met de knop verzenden naar mijn Database sturen. Nu wil ik met een artikel een pdf bestand mee kunnen sturen. Als ik dan op de gebruikerssite kijk wil ik kunnen zien dat er een bestand bijgesloten is.

De vraag is dus:

Hoe kan ik binnen 1 form en informatie naar de database sturen en een pdf uploaden + op een of andere manier koppelen aan het bericht (ik heb al een bestand-upload-script). Iemand die me verder kan helpen?

Groetjes,
 
PHP hulp

PHP hulp

16/11/2024 19:27:50
 
Femke

femke

15/08/2006 15:20:00
Quote Anchor link
iemand? :)
 
- wes  -

- wes -

15/08/2006 15:27:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<form action="pdf_add.php?id=<?=$_SESSION['id'];?>" method="POST" enctype="multipart/form-data">
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr>
<td><b>Nieuwe PDF: </b></td>
<td><input type="file" name="myfile"  style="width:250px;"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="opslaan" name="submit"></td>
</tr>
</table>
</form>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
if (!empty($_POST['submit']) && !empty($_GET['id']) && !empty($_FILES['myfile']) && ($_FILES['myfile']['type'] == 'application/pdf')  && $_FILES['myfile']['size'] <= 650000)
{

            $sql = 'UPDATE nieuws SET pdf="2" WHERE id = '.$_GET['id'];
            $res = mysqli_query($link,$sql);
        
            //Kijkje in de vars, voor debuggen
            $source_name         = $_FILES['myfile']['name'];
            $source_tmp_name     = $_FILES['myfile']['tmp_name'];
            $source_type         = $_FILES['myfile']['type'];
            $source_size         = $_FILES['myfile']['size'];
            $source_error         = $_FILES['myfile']['error'];
            
            $destination_file = "pdf/".$_GET['id'].".pdf";
            
            move_uploaded_file($_FILES['myfile']['tmp_name'],$destination_file);
}

?>



zoiets
Gewijzigd op 01/01/1970 01:00:00 door - wes -
 
Femke

femke

15/08/2006 16:27:00
Quote Anchor link
ik ga het proberen
 
- -

- -

15/08/2006 16:29:00
Quote Anchor link
en dan nog een update in de dbase

w8 post eens wat code, dan fix ik het wel ff
 
Femke

femke

15/08/2006 16:39:00
Quote Anchor link
deze code? hiermee post ik een bericht...

dus daar probeer ik de code van wes in te plakken?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?

if ($_GET["show"] == "add" || $_POST["show"] == "add")
{

    if ($_POST["titel"] && $_POST["msg"] && $_POST["mydate"] && $_POST["titel"])
    {

        $sql = "INSERT INTO almelo_nieuws (id, titel, msg, datum, intro, informail) VALUES ('', '".mysql_real_escape_string($_POST['titel'])."', '".mysql_real_escape_string($_POST['msg'])."', '".mysql_real_escape_string($_POST['mydate'])."', '".mysql_real_escape_string($_POST['intro'])."', '".mysql_real_escape_string($_POST['informail'])."')";
        $res = mysql_query($sql);

        if ($res)
        {

            echo "Het bericht is toegevoegd aan de site.";
        }

        else
        {
            echo "Het bericht is niet toegevoegd aan de site";
        }
    }

    else
    {
        if ($_POST["submit"])
            $err = "Enkele velden vergeten.";

        if ($_POST["mydate"])
            $cdate = $_POST["mydate"];
        else
            $cdate = date("Y-m-d");

        $row[msg] = nl2br($row[msg]);
        
        echo "<br><b>Plaats hier uw nieuwsbericht:</b><br><br>";
        echo "<form method=\"post\" action=\"$PHP_SELF\" name=\"formulier\" onSubmit=\"return checkdate(this.mydate)\">";
        echo "<input type=\"hidden\" name=\"show\" value=\"add\">";
        echo "Datum: <input type=\"text\" size=\"15\" maxlength=\"15\" value=\"$cdate\" name=\"mydate\" id=\"nieuws_veld_datum\"><br><br>";
        
        echo "<img src=\"../img/icon_informail.jpg\">&nbsp;Nieuwsbericht opslaan als informail?<br>";
        echo "<select name=\"informail\" id=\"informail\">";
        echo "<option value=\"nee\">nee</option>";
        echo "<option value=\"ja\">ja</option>";
        echo "</select><br><br>";
        
        echo "Titel:<br>";
        echo "<textarea name=\"titel\" rows=\"2\" cols=\"40\" id=\"nieuws_veld_titel\">$row[titel]</textarea><br><br>";
        echo "Intro:<br>";
        echo "<textarea name=\"intro\" rows=\"4\" cols=\"40\" id=\"nieuws_veld_intro\">$row[intro]</textarea><br><br>";
           echo "Bericht:<br>";
        echo "<textarea name=\"msg\" rows=\"15\" cols=\"40\" id=\"nieuws_veld_tekst\">$row[msg]</textarea><br>";
        echo "<input type=\"submit\" name=\"submit\" value=\"toevoegen\" id=\"nieuws_submit\">";
        
        echo "</form>";
        
        $row[msg] = nl2br($row[msg]);
        
    }
}


?>
 
- wes  -

- wes -

15/08/2006 16:41:00
Quote Anchor link
Neem voor jezelf eerst mijn code over en kijk of je het snapt, zoveel aanpassingen zijn er namelijk niet nodig op je script , maar tis leuk als je ook zelf weet wat het doet
 
Femke

femke

15/08/2006 16:44:00
Quote Anchor link
ben ik mee bezig... moment :)
 
- -

- -

15/08/2006 16:50:00
Quote Anchor link
maak even een nieuwe kolom met de naam pdf.
dit is je nieuwe code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?

if ($_GET["show"] == "add" || $_POST["show"] == "add")
{

    if ($_POST["titel"] && $_POST["msg"] && $_POST["mydate"] && $_POST["titel"])
    {

        if (empty($_FILES['myfile']['tmp_name']))
        {

            $pdf = 1;
        }

        else
        {
            $pdf = 0;
        }

        $sql = "INSERT INTO almelo_nieuws (id, titel, msg, datum, intro, informail, pdf) VALUES ('', '".mysql_real_escape_string($_POST['titel'])."', '".mysql_real_escape_string($_POST['msg'])."', '".mysql_real_escape_string($_POST['mydate'])."', '".mysql_real_escape_string($_POST['intro'])."', '".mysql_real_escape_string($_POST['informail'])."', '".$pdf."')";
        $res = mysql_query($sql);

        if ($res)
        {

            if ($pdf==1)
            {

                $newname = 'pdf/' . mysql_isert_id() . '.pdf';
                move_uploaded_file($_FILES['myfile']['tmp_name'], $newname);
            }

            echo "Het bericht is toegevoegd aan de site.";
        }

        else
        {
            echo "Het bericht is niet toegevoegd aan de site";
        }
    }

    else
    {
        if ($_POST["submit"])
            $err = "Enkele velden vergeten.";

        if ($_POST["mydate"])
            $cdate = $_POST["mydate"];
        else
            $cdate = date("Y-m-d");

        $row[msg] = nl2br($row[msg]);
        
        echo "<br><b>Plaats hier uw nieuwsbericht:</b><br><br>";
        echo "<form method=\"post\" action=\"$PHP_SELF\" name=\"formulier\" onSubmit=\"return checkdate(this.mydate)\" enctype=\"multipart/form-data\">";
        echo "<input type=\"hidden\" name=\"show\" value=\"add\">";
        echo "Datum: <input type=\"text\" size=\"15\" maxlength=\"15\" value=\"$cdate\" name=\"mydate\" id=\"nieuws_veld_datum\"><br><br>";
        
        echo "<img src=\"../img/icon_informail.jpg\">&nbsp;Nieuwsbericht opslaan als informail?<br>";
        echo "<select name=\"informail\" id=\"informail\">";
        echo "<option value=\"nee\">nee</option>";
        echo "<option value=\"ja\">ja</option>";
        echo "</select><br><br>";
        
        echo "Titel:<br>";
        echo "<textarea name=\"titel\" rows=\"2\" cols=\"40\" id=\"nieuws_veld_titel\">$row[titel]</textarea><br><br>";
        echo "Intro:<br>";
        echo "<textarea name=\"intro\" rows=\"4\" cols=\"40\" id=\"nieuws_veld_intro\">$row[intro]</textarea><br><br>";
           echo "Bericht:<br>";
        echo "<textarea name=\"msg\" rows=\"15\" cols=\"40\" id=\"nieuws_veld_tekst\">$row[msg]</textarea><br>";
        echo "PDF:<br>";
        echo "<input type=\"file\" name=\"myfile\">";
        echo "<input type=\"submit\" name=\"submit\" value=\"toevoegen\" id=\"nieuws_submit\">";
        
        echo "</form>";
        
        $row[msg] = nl2br($row[msg]);
        
    }
}


?>

en dit zet je op de pagina waar het niews word opgehaald:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if ($pdf==1){
    echo "Bekijk de PDF, klik <a href=\"pdf/$id.pdf\">...</a>.";
}

?>


ik ga mm ff herscgijven, zodat tie wat netter is
Gewijzigd op 01/01/1970 01:00:00 door - -
 
Femke

femke

15/08/2006 17:02:00
Quote Anchor link
wow, ik kijk even of ik hem aan de praat krijg... dankjewel!
 
Femke

femke

15/08/2006 17:17:00
Quote Anchor link
het eerste gedeelte snap ik (denk ik:)

alleen heb ik een pdf kolom aangemaakt (VARCHAR 20) of moet dit INT zijn?
Hij zet bij elke pdf die ik erbij upload een 0 in?
 
- -

- -

15/08/2006 17:25:00
Quote Anchor link
Hier een nettere versie:
Maar maak van die VARCHAR(20) even een ENUM('nee','ja') met een standaardwaarde van 'nee'.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
if ($_GET['show'] == 'add' || $_POST['show'] == 'add')
{

    if ($_POST['titel'] && $_POST['msg'] && $_POST['mydate'] && $_POST['titel'])
    {

        if ($_POST['pdf'])
        {

            $pdf = 'ja';
        }

        else
        {
            $pdf = 'nee';
        }

        $sql = 'INSERT INTO almelo_nieuws (id, titel, msg, datum, intro, informail, pdf) VALUES (\'\', \'' . mysql_real_escape_string($_POST['titel']) . '\', \'' . mysql_real_escape_string($_POST['msg']) . '\', \'' . mysql_real_escape_string($_POST['mydate']) . '\', \'' . mysql_real_escape_string($_POST['intro']) . '\', \'' . mysql_real_escape_string($_POST['informail']) . '\', \'' . $pdf. '\')';
        $res = mysql_query($sql);
        if ($res)
        {

            if ($pdf=='ja')
            {

                $newname = 'pdf/' . mysql_isert_id() . '.pdf';
                $res = move_uploaded_file($_FILES['myfile']['tmp_name'], $newname);
                if ($res)
                {

                    echo 'Het bericht is toegevoegd aan de site.';
                }

                else
                {
                    echo 'Het bericht is toegevoegd aan de site maar de PDF niet.';
                }
            }
        }

        else
        {
            echo 'Het bericht is niet toegevoegd aan de site.';
        }
    }

    else
    {
        if ($_POST['submit']){
            $err = 'Enkele velden vergeten.';
        }

        if ($_POST['mydate']){
            $cdate = $_POST['mydate'];
        }

        else
        {
            $cdate = date('Y-m-d');
        }

        $row['msg'] = nl2br($row['msg']);
        echo '<br><b>Plaats hier uw nieuwsbericht:</b><br><br>';
        echo '<form method="post" action="' . $PHP_SELF . '" name="formulier" onSubmit="return checkdate(this.mydate)" enctype="multipart/form-data">';
        echo '<input type="hidden" name="show" value="add">';
        echo 'Datum: <input type="text" size="15" maxlength="15" value="'. $cdate . '" name="mydate" id="nieuws_veld_datum"><br><br>';
        echo '<img src="../img/icon_informail.jpg"> Nieuwsbericht opslaan als informail?<br>';
        echo '<select name="informail" id="informail">';
        echo '<option value="nee">nee</option>';
        echo '<option value="ja">ja</option>';
        echo '</select><br><br>';
        echo 'Titel:<br>';
        echo '<textarea name="titel" rows="2" cols="40" id="nieuws_veld_titel">' . $row['titel'] . '</textarea><br><br>';
        echo 'Intro:<br>';
        echo '<textarea name="intro" rows="4" cols="40" id="nieuws_veld_intro">' . $row['intro'] . '</textarea><br><br>';
        echo 'Bericht:<br>';
        echo '<textarea name="msg" rows="15" cols="40" id="nieuws_veld_tekst">' . $row['msg'] . '</textarea><br>';
        echo 'PDF (zet een vinkje om up te loaden en te laten zien an de bezoeker):<br>';
        echo '<input type="checkbox" name="pdf"> <input type="file" name="myfile">';
        echo '<input type="submit" name="submit" value="toevoegen" id="nieuws_submit">';
        echo '</form>';
    }
}

?>

en dit zet je op de pagina waar het niews word opgehaald:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if ($pdf=='ja'){
    echo 'Bekijk de PDF, klik <a href="pdf/' . $id . '.pdf">hier...</a>.';
}

?>

Edit:
typo
Gewijzigd op 01/01/1970 01:00:00 door - -
 
Femke

femke

15/08/2006 17:39:00
Quote Anchor link
ok heb ik gedaan.

ik krijg deze melding :
Fatal error: Call to undefined function: mysql_isert_id() in /home/users/kennmftp/kennistip.nl/almelo/beheer/pages/00nieuws.php on line 80


regel 80 bij mij is: $newname = 'pdf/' . mysql_isert_id() . '.pdf';

ik heb wel een map aangemaakt met pdf dus daar kan het volgens mij niet aan liggen?
 
- -

- -

15/08/2006 17:41:00
Quote Anchor link
zo moettie. en die map moest DACHT K 777 als chmod hebben, kwee nie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
if ($_GET['show'] == 'add' || $_POST['show'] == 'add')
{

    if ($_POST['titel'] && $_POST['msg'] && $_POST['mydate'] && $_POST['titel'])
    {

        if ($_POST['pdf'])
        {

            $pdf = 'ja';
        }

        else
        {
            $pdf = 'nee';
        }

        $sql = 'INSERT INTO almelo_nieuws (id, titel, msg, datum, intro, informail, pdf) VALUES (\'\', \'' . mysql_real_escape_string($_POST['titel']) . '\', \'' . mysql_real_escape_string($_POST['msg']) . '\', \'' . mysql_real_escape_string($_POST['mydate']) . '\', \'' . mysql_real_escape_string($_POST['intro']) . '\', \'' . mysql_real_escape_string($_POST['informail']) . '\', \'' . $pdf. '\')';
        $res = mysql_query($sql);
        if ($res)
        {

            if ($pdf=='ja')
            {

                $newname = 'pdf/' . mysql_insert_id() . '.pdf';
                $res = move_uploaded_file($_FILES['myfile']['tmp_name'], $newname);
                if ($res)
                {

                    echo 'Het bericht is toegevoegd aan de site.';
                }

                else
                {
                    echo 'Het bericht is toegevoegd aan de site maar de PDF niet.';
                }
            }
        }

        else
        {
            echo 'Het bericht is niet toegevoegd aan de site.';
        }
    }

    else
    {
        if ($_POST['submit']){
            $err = 'Enkele velden vergeten.';
        }

        if ($_POST['mydate']){
            $cdate = $_POST['mydate'];
        }

        else
        {
            $cdate = date('Y-m-d');
        }

        $row['msg'] = nl2br($row['msg']);
        echo '<br><b>Plaats hier uw nieuwsbericht:</b><br><br>';
        echo '<form method="post" action="' . $PHP_SELF . '" name="formulier" onSubmit="return checkdate(this.mydate)" enctype="multipart/form-data">';
        echo '<input type="hidden" name="show" value="add">';
        echo 'Datum: <input type="text" size="15" maxlength="15" value="'. $cdate . '" name="mydate" id="nieuws_veld_datum"><br><br>';
        echo '<img src="../img/icon_informail.jpg"> Nieuwsbericht opslaan als informail?<br>';
        echo '<select name="informail" id="informail">';
        echo '<option value="nee">nee</option>';
        echo '<option value="ja">ja</option>';
        echo '</select><br><br>';
        echo 'Titel:<br>';
        echo '<textarea name="titel" rows="2" cols="40" id="nieuws_veld_titel">' . $row['titel'] . '</textarea><br><br>';
        echo 'Intro:<br>';
        echo '<textarea name="intro" rows="4" cols="40" id="nieuws_veld_intro">' . $row['intro'] . '</textarea><br><br>';
        echo 'Bericht:<br>';
        echo '<textarea name="msg" rows="15" cols="40" id="nieuws_veld_tekst">' . $row['msg'] . '</textarea><br>';
        echo 'PDF (zet een vinkje om up te loaden en te laten zien an de bezoeker):<br>';
        echo '<input type="checkbox" name="pdf"> <input type="file" name="myfile">';
        echo '<input type="submit" name="submit" value="toevoegen" id="nieuws_submit">';
        echo '</form>';
    }
}

?>

en dit zet je op de pagina waar het niews word opgehaald:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if ($pdf=='ja'){
    echo 'Bekijk de PDF, klik <a href="pdf/' . $id . '.pdf">hier...</a>.';
}

?>
Gewijzigd op 01/01/1970 01:00:00 door - -
 
DirkJan Heinen

DirkJan Heinen

15/08/2006 17:47:00
Quote Anchor link
jah het moet een 777 chmod map zijn anders heeft hij geen schrijf rechten!
 
Frank -

Frank -

15/08/2006 17:54:00
Quote Anchor link
Mijn ftp-kennis is beperkt, maar volgens mij is chmod 777 zelden of nooit nodig en ALTIJD onverstandig. Daarmee geef je namelijk alles en iedereen onbeperkte toegang tot deze directory. Dat is vragen om problemen.
 
Femke

femke

15/08/2006 18:01:00
Quote Anchor link
ik ben er mee aan het rotzooien, het werkt volgens mij!
 
Femke

femke

15/08/2006 19:42:00
Quote Anchor link
heb alleen een vraag waarom het vinkje er tussen zit? is dat een soort beveiliging?
 
- SanThe -

- SanThe -

15/08/2006 19:56:00
Quote Anchor link
Vinkje?
 
Femke

femke

15/08/2006 20:10:00
Quote Anchor link
ja in de code heeft jonathan een vinkje ingebouwd (waarschijnlijk met een doordachte reden die ik niet zie :P)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.