mysql werking weg na include?
ik had eerst in aanvraag een topic gepent: http://www.phphulp.nl/forum/showtopic.php?cat=2&id=12014&page=
maar zoals je kan zien was ik al zelf aan de slag gegaan. mijn vraag is of het kan zijn dat je na het includen van een pagina alsnog informatie kan toevoegen in een database of dat je opnieuw in de pagina waar geinclude word verbinding moet leggen.
mvg
Thomas
Je include een pagina, dus je hoeft niet opnieuw een verbinding te maken als in de pagina waarmee je include al een verbinding is.
Anders zou het zijn als je die pagina niet include, maar in een iframe of los zou openen.
Ik begrijp je niet helemaal. Kan je dat met php even 'uitbeelden'?
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
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
<?php
if(!empty($_POST)){
$locatie="uploads/"; //of een andere map, vergeet niet de w-rechten
if(is_uploaded_file($_FILES['afbeelding']['tmp_name']))
{
//controleer grootte
if($_FILES['afbeelding']['size']>15000000)
{ //bepaal zelf de max. grootte in bytes
echo "Het bestand is te groot";
exit;
}
//controleer extensie, voeg maar andere toe
if(!eregi("((.gif|.jpg|.doc|.jpeg|.zip|.pdf|.xls|.rar|.png|.htm)$)", $_FILES['afbeelding']['name']))
{
echo "het bestand is niet van het juiste type";
exit;
}
if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],
$locatie.$_FILES['afbeelding']['name']))
{
echo" het bestand kan niet worden verplaatst";
exit;
}
echo"Uw bestand ".$_FILES['afbeelding']['name']." is geupload.";
$naam = $_FILES['afbeelding']['name'];
include("adddownload.php");
}
else
{
echo "Het uploaden is mislukt";
}
}
else{
?>
if(!empty($_POST)){
$locatie="uploads/"; //of een andere map, vergeet niet de w-rechten
if(is_uploaded_file($_FILES['afbeelding']['tmp_name']))
{
//controleer grootte
if($_FILES['afbeelding']['size']>15000000)
{ //bepaal zelf de max. grootte in bytes
echo "Het bestand is te groot";
exit;
}
//controleer extensie, voeg maar andere toe
if(!eregi("((.gif|.jpg|.doc|.jpeg|.zip|.pdf|.xls|.rar|.png|.htm)$)", $_FILES['afbeelding']['name']))
{
echo "het bestand is niet van het juiste type";
exit;
}
if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],
$locatie.$_FILES['afbeelding']['name']))
{
echo" het bestand kan niet worden verplaatst";
exit;
}
echo"Uw bestand ".$_FILES['afbeelding']['name']." is geupload.";
$naam = $_FILES['afbeelding']['name'];
include("adddownload.php");
}
else
{
echo "Het uploaden is mislukt";
}
}
else{
?>
<form method="post" action="" enctype="multipart/form-data">
<!--Bepaal zelf de maximale grootte in bytes -->
<input type="file" name="afbeelding"><br>
<input type="submit" name="submit" value="uploaden">
</form>
hierin word adddownload geinclude als hij klaar is met uploaden, adddownload.php is het script wat het toevoegt in de mysql db.
adddownload.php :
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
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
<?php
include("config.php");
if($_POST['add'] == 1) {
if(empty($_POST['naam_download'])) {
$error = "Je hebt de naam van de download niet ingevuld.<br>"; //tekst die komt als je de naam niet hebt ingevuld
}
if(empty($_POST['url_download'])) {
$error .= "Je hebt de URL naar de download niet ingevuld.<br>"; //tekst die komt als je de url van de download niet hebt ingevuld
}
if($_POST['type'] == "niks") {
$error .= "Je moet selecteren wat voor extensie je download heeft.<br>"; //tekst die komt als je de type hebt geselecteerd
}
if($_POST['cat'] == "niks") {
$error .= "Je moet aangeven in welke categorie je je download wil posten.<br>"; // tekst die komt als je geen categorie hebt geselecteerd
}
if(empty($_POST['grootte'])) {
$error .= "Je hebt de grootte van de download niet ingevuld.<br>"; //tekst die komt als je de grootte van de download niet hebt ingevuld
}
if(empty($_POST['beschrijving'])) {
$error .= "Je hebt geen beschrijving van de download ingevuld.<br>"; //tekst die komt als je de beschrijving niet hebt ingevuld
}
if(!isset($error)) {
$beschrijving = nl2br($_POST['beschrijving']); // enters om zetten in <br />
$query = "INSERT INTO downloadsysteem (naam_van_download, url_van_download,
type, grootte, beschrijving, cat) VALUES
('".$_POST['naam_download']."', '".$_POST['url_download']."', '".$_POST['type']."', '".$_POST['grootte']."', '".$beschrijving."', '".$_POST['cat']."')";
// download invoegen in de database
mysql_query($query) or die(mysql_error()); // sql query uitvoeren
echo "Je download is succesvol toegevoegd!"; //tekst die komt als de download is ingevoegd
} else {
echo "Je download is niet toegevoegd om de volgende reden(en)<br><font color=\"#FF0000\">".$error."</font>"; // tekst die komt als je een error krijgt
}
}
?>
include("config.php");
if($_POST['add'] == 1) {
if(empty($_POST['naam_download'])) {
$error = "Je hebt de naam van de download niet ingevuld.<br>"; //tekst die komt als je de naam niet hebt ingevuld
}
if(empty($_POST['url_download'])) {
$error .= "Je hebt de URL naar de download niet ingevuld.<br>"; //tekst die komt als je de url van de download niet hebt ingevuld
}
if($_POST['type'] == "niks") {
$error .= "Je moet selecteren wat voor extensie je download heeft.<br>"; //tekst die komt als je de type hebt geselecteerd
}
if($_POST['cat'] == "niks") {
$error .= "Je moet aangeven in welke categorie je je download wil posten.<br>"; // tekst die komt als je geen categorie hebt geselecteerd
}
if(empty($_POST['grootte'])) {
$error .= "Je hebt de grootte van de download niet ingevuld.<br>"; //tekst die komt als je de grootte van de download niet hebt ingevuld
}
if(empty($_POST['beschrijving'])) {
$error .= "Je hebt geen beschrijving van de download ingevuld.<br>"; //tekst die komt als je de beschrijving niet hebt ingevuld
}
if(!isset($error)) {
$beschrijving = nl2br($_POST['beschrijving']); // enters om zetten in <br />
$query = "INSERT INTO downloadsysteem (naam_van_download, url_van_download,
type, grootte, beschrijving, cat) VALUES
('".$_POST['naam_download']."', '".$_POST['url_download']."', '".$_POST['type']."', '".$_POST['grootte']."', '".$beschrijving."', '".$_POST['cat']."')";
// download invoegen in de database
mysql_query($query) or die(mysql_error()); // sql query uitvoeren
echo "Je download is succesvol toegevoegd!"; //tekst die komt als de download is ingevoegd
} else {
echo "Je download is niet toegevoegd om de volgende reden(en)<br><font color=\"#FF0000\">".$error."</font>"; // tekst die komt als je een error krijgt
}
}
?>
<form method="post" action="">
<table width="60%" cellspacing="0" cellpadding"0">
<tr>
<td>Naam van de download: (<font color="#FF0000"><strong>*</strong></font>)</td>
<td><input type="text" value="" size="40" name="naam_download"></td>
</tr>
<tr>
<td><b>URL</b> van download: (met http://) (<font color="#FF0000"><strong>*</strong></font>)</td>
<td><input type="text" value= http://www.rotarykartdag.nl/topgeheim/downloads/upload/ size="40" name="url_download"></td>
</tr>
<tr>
<td>Extentie: (<font color="#FF0000"><strong>*</strong></font>)</td>
<td><select name="type">
<option value="niks">Kies een type</option>
<option value=".rar">.rar</option>
<option value=".zip">.zip</option>
<option value=".doc">.doc</option>
<option value=".tar">.tar</option>
<option value=".tar.gz">.tar.gz</option>
<option value=".torrent">.torrent</option>
<option value="Anders">Onbekend</option></select>
</tr>
<tr>
<td>Categorie: (<font color="#FF0000"><strong>*</strong></font>)</td>
<td><select name="cat">
<option value="niks">Kies een categorie</option>
<option value="1">Word documenten</option>
<option value="2">PDF bestanden</option>
<option value="3">Gecomprimeerde bestanden</option>
</select>
</tr>
<tr>
<td>Grootte: (MB) (<font color="#FF0000"><strong>*</strong></font>)</td>
<td><input type="text" size="40" maxlength="10" name="grootte"></td>
</tr>
<tr>
<td>Beschrijving: (<font color="#FF0000"><strong>*</strong></font>)</td>
<td><textarea name="beschrijving" rows="5" cols="30"></textarea><input type="hidden" value="1" name="add"></td>
</tr>
<tr>
<td> </td>
<td>(<font color="#FF0000"><strong>*</strong></font>) is verplicht</td>
</tr>
<tr>
<td><input type="reset" value="Maak alles leeg!"></td>
<td><input type="submit" name="toevoegen" value="Voeg download toe!"></td>
</tr>
</table>
</form>
upload ik het zo dan lijkt het eerst te werken maar als ik dan op toevoegen klik krijg ik een foutmelding uit uploads.php. dus helaas werkt het niet. iemand idee hoe dit op te lossen?
edit: dus
mysql_connect ($db_host, $db_user, $db_pass);
mysql_select_db ($db_name);
Gewijzigd op 26/12/2005 20:43:00 door Jan Koehoorn
in adddownload.php staat include("config.php"); zou dat ook moeten staan in uploads.php dus de pagina die adddownloads.php include?
Nee, als je connect met je db voordat je een query uitvoert is het goed.
echo"Uw bestand ".$_FILES['afbeelding']['name']." is geupload.";
$naam = $_FILES['afbeelding']['name'];
include("adddownload.php");
}
else
{
echo "Het uploaden is mislukt";
}
dus na het uploaden begint het includen, maar als ik dan zoals het hoort 't scherm krijg waar ik de informatie in kan voeren (dus addownloads.php) en dan op toevoegen klik krijg ik de melding: Het uploaden is mislukt. en word er niks in de database gezet.. zou dit kunnen komen omdat er voor de knop uploaden en voor de knop toevoegen gebruik wordt gemaakt van:<input type="submit" ?
1) wat zegt mysql_error ()?
2) echo je query eens naar het scherm?
3) nooit rechtstreeks POST variabelen in je db inserten
thomas:
maar als ik dan zoals het hoort 't scherm krijg waar ik de informatie in kan voeren (dus addownloads.php) en dan op toevoegen klik krijg ik de melding: Het uploaden is mislukt. en word er niks in de database gezet.. zou dit kunnen komen omdat er voor de knop uploaden en voor de knop toevoegen gebruik wordt gemaakt van:<input type="submit" ?
Dat komt omdat je bovenin checkt op !empty ($_POST). Als je het onderste formulier verzendt, wordt je uploadcode nog een keer uitgevoerd.
http://www.rotarykartdag.nl/topgeheim/downloads/uploads.php
werkt het best met een simpel.doc bestandje dan kun je zien dat het allemaal lijkt te werken tot je op toevoegen in database klikt..
Thomas, lees even mijn vorige post. Het komt er op neer dat je twee formulieren hebt: een upload en een toevoegformulier. Als je dat toevoegformulier verzendt wordt de code van je uploadformulier weer uitgevoerd omdat je die checkt met !empty ($_POST)
ik zag het te laat was al aan het typen! ga d'r mee aan de gang bedankt voor de tip!
uploads.php
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
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
<?php
$locatie="uploads/"; //of een andere map, vergeet niet de w-rechten
if(is_uploaded_file($_FILES['afbeelding']['tmp_name']))
{
//controleer grootte
if($_FILES['afbeelding']['size']>15000000)
{ //bepaal zelf de max. grootte in bytes
echo "Het bestand is te groot";
exit;
}
//controleer extensie, voeg maar andere toe
if(!eregi("((.gif|.jpg|.doc|.jpeg|.zip|.pdf|.xls|.rar|.png|.htm)$)", $_FILES['afbeelding']['name']))
{
echo "het bestand is niet van het juiste type";
exit;
}
if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],
$locatie.$_FILES['afbeelding']['name']))
{
echo" het bestand kan niet worden verplaatst";
exit;
}
echo"Uw bestand ".$_FILES['afbeelding']['name']." is geupload.";
$naam = $_FILES['afbeelding']['name'];
include("adddownload.php");
}
else
{
}
?>
$locatie="uploads/"; //of een andere map, vergeet niet de w-rechten
if(is_uploaded_file($_FILES['afbeelding']['tmp_name']))
{
//controleer grootte
if($_FILES['afbeelding']['size']>15000000)
{ //bepaal zelf de max. grootte in bytes
echo "Het bestand is te groot";
exit;
}
//controleer extensie, voeg maar andere toe
if(!eregi("((.gif|.jpg|.doc|.jpeg|.zip|.pdf|.xls|.rar|.png|.htm)$)", $_FILES['afbeelding']['name']))
{
echo "het bestand is niet van het juiste type";
exit;
}
if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],
$locatie.$_FILES['afbeelding']['name']))
{
echo" het bestand kan niet worden verplaatst";
exit;
}
echo"Uw bestand ".$_FILES['afbeelding']['name']." is geupload.";
$naam = $_FILES['afbeelding']['name'];
include("adddownload.php");
}
else
{
}
?>
<form method="post" action="" enctype="multipart/form-data">
<!--Bepaal zelf de maximale grootte in bytes -->
<input type="file" name="afbeelding"><br>
<input type="submit" name="submit" value="uploaden">
</form>
heb het vage vermoeden dat er nu nog minder van klopt
Vermeld altijd:
- precies wat je wilt bereiken
- precies wat je wilt dat er gebeurt
- precies wat er in werkelijkheid gebeurt (incl foutmeldingen)
Bedankt voor je hulp maar ik zou me zelf wat meer in php moeten verdiepen. dat scheelt weer stomme vragen.
Thomas
Okee, mooi dat je het opgelost hebt.