Hallo iedereen,

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
Probeer het gewoon ;).

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'?
heb het net geprobeerd, het kan niet of ik doe wat fout :P zou het voorbeeldje geven:

<?php
ob_start();
session_start();
?>
<?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{
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" 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>



<?php
}
?>

hierin word adddownload geinclude als hij klaar is met uploaden, adddownload.php is het script wat het toevoegt in de mysql db.

adddownload.php :
<?php
ob_start();
session_start();
?>
<?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
}
}
?>
<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="<?php echo $naam; ?>" 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/<?php echo $naam; ?> 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>&nbsp;</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?
Je moet wel connecten met de database. Ik zie nergens een connect functie.

edit: dus
mysql_connect ($db_host, $db_user, $db_pass);
mysql_select_db ($db_name);
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.
in uploads.php staat:

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" ?
Verder de voor de hand liggende dingen:

1) wat zegt mysql_error ()?
2) echo je query eens naar het scherm?
3) nooit rechtstreeks POST variabelen in je db inserten
thomas schreef op 26.12.2005 20:48
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.
dat is het vreemde krijg geen mysql error maar een foutmelding van uploads.php mischien handig om een realtime voorbeeldje te zien?

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..



Reageren