2 PHP scripts combineren
Om te beginnen wil ik even vermelden dat mijn PHP kennis heel laag is. Ik wil graag een scriptje waarmee ik wat text in een database kan zetten en een bestandje kan uploaden (niet naar de database maar naar een directory). Zodoende kan ik met één pagina de link naar de download + comments over die download uit de database halen en zo kan ik gemakkelijk nieuwe download toevoegen.
Ik heb 2 scripts van jullie site gebruikt die beide los van elkaar perfect werken (een voor text input naar de database, een voor het uploaden van een bestand). Ik zou hier graag één script van willen maken, maar na een uurtje of 3 ben ik ermee gestopt en kom ik hier om hulp vragen.
Bron code:
Upload script
Code (php)
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
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
<?php
if(!empty($_POST)){
$locatie="mp3/"; //of een andere map, vergeet niet de w-rechten
if(is_uploaded_file($_FILES['muziek']['tmp_name']))
{
//controleer grootte
if($_FILES['muziek']['size']>1024000)
{ //bepaal zelf de max. grootte in bytes
echo "Het bestand is te groot";
exit;
}
//controleer extensie, voeg maar andere toe
if(!eregi("((.mp3|.zip)$)", $_FILES['muziek']['name']))
{
echo "het bestand is niet van het juiste type";
exit;
}
if(!move_uploaded_file($_FILES['muziek']['tmp_name'],
$locatie.$_FILES['muziek']['name']))
{
echo" het bestand kan niet worden verplaatst";
exit;
}
$link="http://www.aqid.nl/test/mp3/".$_FILES['muziek']['name'];
echo "Uw bestand ".$_FILES['muziek']['name']." is geupload. <BR>Link: <a href=".$link.">".$link."</a>";
}
else
{
echo "Het uploaden is mislukt.";
}
}
else{
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<!--Bepaal zelf de maximale grootte in bytes -->
<input type="file" name="muziek"><br>
<input type="submit" name="submit" value="uploaden">
</form>
<?php
}
?>
if(!empty($_POST)){
$locatie="mp3/"; //of een andere map, vergeet niet de w-rechten
if(is_uploaded_file($_FILES['muziek']['tmp_name']))
{
//controleer grootte
if($_FILES['muziek']['size']>1024000)
{ //bepaal zelf de max. grootte in bytes
echo "Het bestand is te groot";
exit;
}
//controleer extensie, voeg maar andere toe
if(!eregi("((.mp3|.zip)$)", $_FILES['muziek']['name']))
{
echo "het bestand is niet van het juiste type";
exit;
}
if(!move_uploaded_file($_FILES['muziek']['tmp_name'],
$locatie.$_FILES['muziek']['name']))
{
echo" het bestand kan niet worden verplaatst";
exit;
}
$link="http://www.aqid.nl/test/mp3/".$_FILES['muziek']['name'];
echo "Uw bestand ".$_FILES['muziek']['name']." is geupload. <BR>Link: <a href=".$link.">".$link."</a>";
}
else
{
echo "Het uploaden is mislukt.";
}
}
else{
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<!--Bepaal zelf de maximale grootte in bytes -->
<input type="file" name="muziek"><br>
<input type="submit" name="submit" value="uploaden">
</form>
<?php
}
?>
Text invoer script
Code (php)
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
73
74
75
76
77
78
79
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
73
74
75
76
77
78
79
<?php
//-- maak eerst de connectie met de database!
$user = "xxx";
$pass = "xxx";
$host = "xxx";
$dbdb = "xxx";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
if ($_POST['submit'] && $_POST['text'] && $_POST['titel'] && $_POST['name'])
{
$datum = date("d.m.Y H:i");
$sql = "INSERT INTO mp3 SET id = '', titel = '" . $_POST['titel'] . "', name = '" . $_POST['name'] . "', bericht = '" . $_POST['text'] . "', datum = '" . $datum . "'";
$res = mysql_query($sql);
if ($res)
{
echo "<span class='text'>News added! To view the news click <a href=\"http://www.aqid.nl\" target=\"_top\">here.</a><br>(You will leave the adminpage)</span>";
}
else
{
echo "<span class='text'>News item is <b>not</b> added! Please try again</a>.</span>";
}
}
elseif ($_POST['submit'] || $_POST['text'] || $_POST['titel'])
{
echo "<span class='text'>Some fields are missing! Please try again.";
}
else
{
echo "<center>";
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"5\" align=\"center\">";
echo "<form method=\"POST\" action=\"" . $PHP_SELF . "\">";
echo "<tr><td> </td></tr>";
echo "<tr><td><span class='text'>Title:</span></td>";
echo "<td><input type=\"text\" name=\"titel\"></td></tr>";
echo "<tr><td><span class='text'>Name:</span></td>";
echo "<td><input type=\"text\" name=\"name\"></td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td><span class='text'>Message:</span></td>";
echo "<td><textarea name=\"text\" rows=\"10\" cols=\"20\"></textarea></td></tr>";
echo "<tr><td><span class='text'>All fields are required!</span> </td></tr>";
echo "<tr><td><input type=\"submit\" name=\"submit\" value=\"Plaats!\" class=\"buttons\"> <input type=\"reset\" value=\"Wis\" class=\"buttons\"></td></tr>";
echo "</form>";
echo "</table>";
echo "</center>";
}
?>
//-- maak eerst de connectie met de database!
$user = "xxx";
$pass = "xxx";
$host = "xxx";
$dbdb = "xxx";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
if ($_POST['submit'] && $_POST['text'] && $_POST['titel'] && $_POST['name'])
{
$datum = date("d.m.Y H:i");
$sql = "INSERT INTO mp3 SET id = '', titel = '" . $_POST['titel'] . "', name = '" . $_POST['name'] . "', bericht = '" . $_POST['text'] . "', datum = '" . $datum . "'";
$res = mysql_query($sql);
if ($res)
{
echo "<span class='text'>News added! To view the news click <a href=\"http://www.aqid.nl\" target=\"_top\">here.</a><br>(You will leave the adminpage)</span>";
}
else
{
echo "<span class='text'>News item is <b>not</b> added! Please try again</a>.</span>";
}
}
elseif ($_POST['submit'] || $_POST['text'] || $_POST['titel'])
{
echo "<span class='text'>Some fields are missing! Please try again.";
}
else
{
echo "<center>";
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"5\" align=\"center\">";
echo "<form method=\"POST\" action=\"" . $PHP_SELF . "\">";
echo "<tr><td> </td></tr>";
echo "<tr><td><span class='text'>Title:</span></td>";
echo "<td><input type=\"text\" name=\"titel\"></td></tr>";
echo "<tr><td><span class='text'>Name:</span></td>";
echo "<td><input type=\"text\" name=\"name\"></td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td><span class='text'>Message:</span></td>";
echo "<td><textarea name=\"text\" rows=\"10\" cols=\"20\"></textarea></td></tr>";
echo "<tr><td><span class='text'>All fields are required!</span> </td></tr>";
echo "<tr><td><input type=\"submit\" name=\"submit\" value=\"Plaats!\" class=\"buttons\"> <input type=\"reset\" value=\"Wis\" class=\"buttons\"></td></tr>";
echo "</form>";
echo "</table>";
echo "</center>";
}
?>
Het beste wat ik voor elkaar heb gekregen is een script waarbij de text wel naar de database wordt geschreven, maar het upload gedeelte de error "Het uploaden is mislukt." geeft. De broncode daarvan zal ik maar niet posten want dat zal waarschijnlijk op jullie lachspieren werken.
Kan iemand mij in de goede richting helpen? Alvast bedankt.
Gewijzigd op 01/01/1970 01:00:00 door Nik
Dat is geen goede manier om te controleren of er een formulier is verzonden, en zeker niet om te kijken of alles is ingevuld. Doe het zo:
daarna moet je met file_get_contents de inhoud van het upgeloade bestand ophalen, die inserten in de database(al die html in script 2 is niet nodig volgens mij), en dan eventueel unlink gebruiken om het bestand weer van je server te halen.
ik heb verder niet heel uitgebreid naar je script gekeken hoor...
Veel succes!
@Djemo: Thanks, zoals ik al zei komen beide stukken code van deze site dus daar had ik geen idee van.
@Pepijn: Mp3 en zip zijn de enige types die ik wil uploaden dus dat is geen probleem. (Script was eerst JPG en GIF oid en dat heb k zelf veranderd naar mp3 en zip)
@Crispijn: Ik ben een beetje onduidelijk geweest, sorry. Ik wil graag het bestand gewoon uploaden naar een directory, de link + de comments over het bestand wil ik graag in een database stoppen. En dat alles met 1 formulier.
Ik heb een aantal dingen geprobeerd om er één formulier van te maken maar ik kom er niet uit :(
Als iemand nog tips heeft hoop ik ze graag te horen.
Code (php)
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
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (!$_FILES['userfile']['error']) {
echo '<pre>' . print_r ($_FILES, true) . '</pre>';
}
echo '<pre>' . print_r ($_POST, true) . '</pre>';
}
?>
<form method="post" action="test.php" enctype="multipart/form-data">
<p>
<label for="veld1">veld 1:</label>
<input id="veld1" name="veld1" type="text" value="" />
</p>
<p>
<label for="userfile">upload bestand:</label>
<input id="userfile" name="userfile" type="file" />
</p>
<p>
<input type="submit" value="verzenden" />
</p>
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (!$_FILES['userfile']['error']) {
echo '<pre>' . print_r ($_FILES, true) . '</pre>';
}
echo '<pre>' . print_r ($_POST, true) . '</pre>';
}
?>
<form method="post" action="test.php" enctype="multipart/form-data">
<p>
<label for="veld1">veld 1:</label>
<input id="veld1" name="veld1" type="text" value="" />
</p>
<p>
<label for="userfile">upload bestand:</label>
<input id="userfile" name="userfile" type="file" />
</p>
<p>
<input type="submit" value="verzenden" />
</p>
</form>
</body>
</html>
Ik wou een voorbeeld code posten van hoe ik het geprobeerd had, maar vreemd genoeg werkt het nu wel!
De code zal niet optimaal zijn, maar hij doet in ieder geval zijn werk nu.
Code (php)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
//-- maak eerst de connectie met de database!
$user = "xxx";
$pass = "xxx";
$host = "xxx";
$dbdb = "xxx";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
if ($_POST['submit'] && $_POST['text'] && $_POST['titel'] && $_POST['name'])
{
$locatie="mp3/";
if(is_uploaded_file($_FILES['muziek']['tmp_name']))
{
//controleer grootte
if($_FILES['muziek']['size']>1024000)
{ //bepaal zelf de max. grootte in bytes
echo "Te file is too big.";
exit;
}
//controleer extensie, voeg maar andere toe
if(!eregi("((.mp3|.zip)$)", $_FILES['muziek']['name']))
{
echo "File type doesnt match .MP3 or .ZIP.";
exit;
}
if(!move_uploaded_file($_FILES['muziek']['tmp_name'],
$locatie.$_FILES['muziek']['name']))
{
echo "File cannot be copied.";
exit;
}
$link="http://www.aqid.nl/test/mp3/".$_FILES['muziek']['name'];
echo "Your file: ".$_FILES['muziek']['name']." has been uploaded. <br>Link: <a href=".$link.">".$link."</a>";
}
else
{
echo "Upload failed.";
}
echo "<br><br>";
$datum = date("d.m.Y H:i");
$sql = "INSERT INTO mp3 SET id = '', titel = '" . $_POST['titel'] . "', name = '" . $_POST['name'] . "', bericht = '" . $_POST['text'] . "', datum = '" . $datum . "'";
$res = mysql_query($sql);
if ($res)
{
echo "<span class='text'>Download added to database! To view the frontpage click <a href=\"http://www.aqid.nl\" target=\"_top\">here.</a>(You will leave the adminpage)</span>";
}
else
{
echo "<span class='text'>Download is <b>not</b> added! Please try again</a>.</span>";
}
echo "<br>";
}
elseif ($_POST['submit'] || $_POST['text'] || $_POST['titel'])
{
echo "<span class='text'>Some fields are missing! Please try again.";
}
else
{
echo "<center>";
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"5\" align=\"center\">";
echo "<form method=\"POST\" action=\"" . $PHP_SELF . "\" enctype=\"multipart/form-data\">";
echo "<tr><td> </td></tr>";
echo "<tr><td><span class='text'>Title:</span></td>";
echo "<td><input type=\"text\" name=\"titel\"></td></tr>";
echo "<tr><td><span class='text'>Name:</span></td>";
echo "<td><input type=\"text\" name=\"name\"></td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td><span class='text'>Message:</span></td>";
echo "<td><textarea name=\"text\" rows=\"10\" cols=\"20\"></textarea></td></tr>";
echo "<tr><td><span class='text'>File:</span></td>";
echo "<td><input id=\"muziek\" name=\"muziek\" type=\"file\" /></td></tr>";
echo "<tr><td><span class='text'>All fields are required!</span> </td></tr>";
echo "<tr><td><input type=\"submit\" name=\"submit\" value=\"Plaats!\" class=\"buttons\"> <input type=\"reset\" value=\"Wis\" class=\"buttons\"></td></tr>";
echo "</form>";
echo "</table>";
echo "</center>";
}
?>
//-- maak eerst de connectie met de database!
$user = "xxx";
$pass = "xxx";
$host = "xxx";
$dbdb = "xxx";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
if ($_POST['submit'] && $_POST['text'] && $_POST['titel'] && $_POST['name'])
{
$locatie="mp3/";
if(is_uploaded_file($_FILES['muziek']['tmp_name']))
{
//controleer grootte
if($_FILES['muziek']['size']>1024000)
{ //bepaal zelf de max. grootte in bytes
echo "Te file is too big.";
exit;
}
//controleer extensie, voeg maar andere toe
if(!eregi("((.mp3|.zip)$)", $_FILES['muziek']['name']))
{
echo "File type doesnt match .MP3 or .ZIP.";
exit;
}
if(!move_uploaded_file($_FILES['muziek']['tmp_name'],
$locatie.$_FILES['muziek']['name']))
{
echo "File cannot be copied.";
exit;
}
$link="http://www.aqid.nl/test/mp3/".$_FILES['muziek']['name'];
echo "Your file: ".$_FILES['muziek']['name']." has been uploaded. <br>Link: <a href=".$link.">".$link."</a>";
}
else
{
echo "Upload failed.";
}
echo "<br><br>";
$datum = date("d.m.Y H:i");
$sql = "INSERT INTO mp3 SET id = '', titel = '" . $_POST['titel'] . "', name = '" . $_POST['name'] . "', bericht = '" . $_POST['text'] . "', datum = '" . $datum . "'";
$res = mysql_query($sql);
if ($res)
{
echo "<span class='text'>Download added to database! To view the frontpage click <a href=\"http://www.aqid.nl\" target=\"_top\">here.</a>(You will leave the adminpage)</span>";
}
else
{
echo "<span class='text'>Download is <b>not</b> added! Please try again</a>.</span>";
}
echo "<br>";
}
elseif ($_POST['submit'] || $_POST['text'] || $_POST['titel'])
{
echo "<span class='text'>Some fields are missing! Please try again.";
}
else
{
echo "<center>";
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"5\" align=\"center\">";
echo "<form method=\"POST\" action=\"" . $PHP_SELF . "\" enctype=\"multipart/form-data\">";
echo "<tr><td> </td></tr>";
echo "<tr><td><span class='text'>Title:</span></td>";
echo "<td><input type=\"text\" name=\"titel\"></td></tr>";
echo "<tr><td><span class='text'>Name:</span></td>";
echo "<td><input type=\"text\" name=\"name\"></td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td><span class='text'>Message:</span></td>";
echo "<td><textarea name=\"text\" rows=\"10\" cols=\"20\"></textarea></td></tr>";
echo "<tr><td><span class='text'>File:</span></td>";
echo "<td><input id=\"muziek\" name=\"muziek\" type=\"file\" /></td></tr>";
echo "<tr><td><span class='text'>All fields are required!</span> </td></tr>";
echo "<tr><td><input type=\"submit\" name=\"submit\" value=\"Plaats!\" class=\"buttons\"> <input type=\"reset\" value=\"Wis\" class=\"buttons\"></td></tr>";
echo "</form>";
echo "</table>";
echo "</center>";
}
?>
Nu het eenmaal werkt kan ik het gaan uitbreiden hoe ik graag wil... (zit bijv nog geen check op t invoervak van upload vak). Bedankt voor jullie input.
Je site is gehacked..niet door mij...
Van de ene kant heb ik zoiets van, ik heb er extra geen wachtwoord opgezet omdat ik jullie om hulp vroeg. Ik had wel een simpel wachtwoord script klaar staan wat ik wou toepassen nadat het script af was (niet dat dat een echte hack poging tegen houd maar het is iets). Wat geeft je het recht om aan mijn spullen te zitten terwijl je ook nog eens leest dat mijn niveau "beginner" is?
Aan de andere kan heb ik er wel respect voor, hij heeft namelijk alleen het "foute" script verwijderd en de index aangepast om een berichtje achter te laten en mij er op te attenderen. Sommige mensen hadden alles gewist, puur en alleen omdat ze het konden.
Nja gooi het topic maar dicht want het probleem is opgelost.
Gewijzigd op 01/01/1970 01:00:00 door Nik