update bestand url in database lukt niet
netmarker - 03/05/2006 17:11 (laatste wijziging 03/05/2006 17:15)
Nieuw lid
1
Mijn ub-date script plaatst de var foto iet in mijn database. kan iemand mij vertellen wat er fout gaat?
2
de bedoeling is dat er met dit script de data in de database gewijzicht kan worden (het forum gedeelte heb ik niet gepost) Als de data niet veranderd hoeft moet hij de oude data laten staan. Alleen met het updaten van een bestand wil het dus niet erg lukken. Moet ik misschien een andere methode gebruiken?
<?php
clude("..//includes/connect.php");
include("..//includes/var.php");
//functie voor de escape bij $msg_tekst
function escape( $strVar, $resDbConnection = null )
{
if ( get_magic_quotes_gpc() == 0 )
{
// don't escape integers
if ( !ctype_digit( $strVar ) )
$strVar = mysql_real_escape_string( $strVar, $resDbConnection );
}
return $strVar;
}
@extract($_POST);
//verzenden naar db
if(!empty($_POST))
{
$query = "UPDATE messages SET
msg_title = '". $_POST['msg_title']. "',
msg_type = '". $_POST['msg_type']. "',
msg_text = '". escape($msg_text). "',
foto = '".$foto."'
WHERE msg_id = '". $_POST['msg_id']."'";
$result = mysql_query($query) or die(mysql_error());
header("location: messages.php");
$result = mysql_query($query) or die(mysql_error());
}
//ophalen uit db
$query = "SELECT
msg_title,
msg_text,
msg_type,
foto
FROM messages
WHERE msg_id = ". $_GET['msg_id'].";";
$result = mysql_query($query) or die(mysql_error());
$msg_title = mysql_result($result,0,"msg_title");
$msg_text = mysql_result($result,0,"msg_text");
$msg_type = mysql_result($result,0,"msg_type");
$foto = mysql_result($result,0,"foto");
//bestand selectie
if ( $foto != '' )
{
$naam = $foto;
echo $foto;
echo $naam;
}
else
{
if(isset($_FILES['bestand']))
{
if($_FILES['bestand']['size'] > 32400)
{
echo "Het bestand is <b>" . $_FILES['bestand']['size'] . "</b>, het maximale toegstaan is <b>102400</b>";
}
else
{
if($_FILES['bestand']['type'] == "image/gif"
|| $_FILES['bestand']['type'] == "image/png"
|| $_FILES['bestand']['type'] == "image/pjpeg"
|| $_FILES['bestand']['type'] == "image/jpeg")
{
if(empty($_POST['naam']))
{
$naam = $_FILES['bestand']['name'];
}
move_uploaded_file($_FILES['bestand']['tmp_name'], "Image/" . $naam);
}
else
{
echo "Het bestand is geen png, jpg of gif";
}
}
}
else
{
echo "Selecteer een plaatje";
}
}
?>
<?php
clude( "..//includes/connect.php" ) ;
include ( "..//includes/var.php" ) ;
//functie voor de escape bij $msg_tekst
function escape( $strVar , $resDbConnection = null )
{
{
// don't escape integers
}
return $strVar ;
}
//verzenden naar db
{
$query = "UPDATE messages SET
msg_title = '" . $_POST [ 'msg_title' ] . "',
msg_type = '" . $_POST [ 'msg_type' ] . "',
msg_text = '" . escape( $msg_text ) . "',
foto = '" . $foto . "'
WHERE msg_id = '" . $_POST [ 'msg_id' ] . "'" ;
header ( "location: messages.php" ) ; }
//ophalen uit db
$query = "SELECT
msg_title,
msg_text,
msg_type,
foto
FROM messages
WHERE msg_id = " . $_GET [ 'msg_id' ] . ";" ;
//bestand selectie
if ( $foto != '' )
{
$naam = $foto ;
}
else
{
if ( isset ( $_FILES [ 'bestand' ] ) ) {
if ( $_FILES [ 'bestand' ] [ 'size' ] > 32400 )
{
echo "Het bestand is <b>" . $_FILES [ 'bestand' ] [ 'size' ] . "</b>, het maximale toegstaan is <b>102400</b>" ; }
else
{
if ( $_FILES [ 'bestand' ] [ 'type' ] == "image/gif"
|| $_FILES [ 'bestand' ] [ 'type' ] == "image/png"
|| $_FILES [ 'bestand' ] [ 'type' ] == "image/pjpeg"
|| $_FILES [ 'bestand' ] [ 'type' ] == "image/jpeg" )
{
if ( empty ( $_POST [ 'naam' ] ) ) {
$naam = $_FILES [ 'bestand' ] [ 'name' ] ;
}
}
else
{
echo "Het bestand is geen png, jpg of gif" ; }
}
}
else
{
echo "Selecteer een plaatje" ; }
}
?>
vinTage edit: [ code ] tags aub
3 antwoorden
Gesponsorde links
haytjes - 03/05/2006 17:29
JS gevorderde
een keer de situatie schetsen:
<?
//php include iets, aub;
//Als er een $_POST is doe het volgende:
// update alles naar de database, waaronder $foto;
// daarna als $foto bestaat:
// $naam = $foto;
// anders
// zo verkrijg je $foto
?>
<?
//php include iets, aub;
//Als er een $_POST is doe het volgende:
// update alles naar de database, waaronder $foto;
// daarna als $foto bestaat:
// $naam = $foto;
// anders
// zo verkrijg je $foto
?>
zou je niet een keer zorgen, dat hij op voorhand weet wat $foto is. Zodat php niet moet gokken:p
netmarker - 03/05/2006 17:44 (laatste wijziging 04/05/2006 16:06)
Nieuw lid
oke maar dan vuld hij bij stap 3 toch een leeg veld in als er geen bestand geselecteerd is? of moet ik eerst de var. tijdelijk oplaan?
ik heb overgens
foto = '".$foto."'
veranderd in
foto = '".$naam."'
omdat hij ook geen nieuw bestand kan uploaden. Maar dat werkt nu ook nog niet. Doe ik iets fout met de variabelen dan? Ben er echt al heel lang mee bezig maar kom er niet uit!!
ik heb ook het boovenstaande geprobeerd. maar hij plaatst geen content in de database.
<?
if(!empty($_POST))
{
$query = "UPDATE messages SET
msg_title = '". $_POST['msg_title']. "',
msg_type = '". $_POST['msg_type']. "',
msg_text = '". escape($msg_text). "',
foto = '".$naam."'
WHERE msg_id = '". $_POST['msg_id']."'";
$result = mysql_query($query) or die(mysql_error());
header("location: messages.php");
$result = mysql_query($query) or die(mysql_error());
}
//ophalen uit db
$query = "SELECT
msg_title,
msg_text,
msg_type,
foto
FROM messages
WHERE msg_id = ". $_GET['msg_id'].";";
$result = mysql_query($query) or die(mysql_error());
$msg_title = mysql_result($result,0,"msg_title");
$msg_text = mysql_result($result,0,"msg_text");
$msg_type = mysql_result($result,0,"msg_type");
$foto = mysql_result($result,0,"foto");
//bestand selectie
{
if(isset($_FILES['bestand']))
{
if($_FILES['bestand']['size'] > 32400)
{
echo "Het bestand is <b>" . $_FILES['bestand']['size'] . "</b>, het maximale toegstaan is <b>102400</b>";
}
else
{
if($_FILES['bestand']['type'] == "image/gif"
|| $_FILES['bestand']['type'] == "image/png"
|| $_FILES['bestand']['type'] == "image/pjpeg"
|| $_FILES['bestand']['type'] == "image/jpeg")
{
if(empty($_POST['naam']))
{
$naam = $_FILES['bestand']['name'];
}
move_uploaded_file($_FILES['bestand']['tmp_name'], "Image/" . $naam);
}
else
{
echo "Het bestand is geen png, jpg of gif";
}
}
}
else
{
echo "Selecteer een plaatje";
}
if ( $foto != '0' )
{
$naam = $foto;
echo $foto;
echo $naam;
}
}
?>
<?
{
$query = "UPDATE messages SET
msg_title = '" . $_POST [ 'msg_title' ] . "',
msg_type = '" . $_POST [ 'msg_type' ] . "',
msg_text = '" . escape( $msg_text ) . "',
foto = '" . $naam . "'
WHERE msg_id = '" . $_POST [ 'msg_id' ] . "'" ;
header ( "location: messages.php" ) ; }
//ophalen uit db
$query = "SELECT
msg_title,
msg_text,
msg_type,
foto
FROM messages
WHERE msg_id = " . $_GET [ 'msg_id' ] . ";" ;
//bestand selectie
{
if ( isset ( $_FILES [ 'bestand' ] ) ) {
if ( $_FILES [ 'bestand' ] [ 'size' ] > 32400 )
{
echo "Het bestand is <b>" . $_FILES [ 'bestand' ] [ 'size' ] . "</b>, het maximale toegstaan is <b>102400</b>" ; }
else
{
if ( $_FILES [ 'bestand' ] [ 'type' ] == "image/gif"
|| $_FILES [ 'bestand' ] [ 'type' ] == "image/png"
|| $_FILES [ 'bestand' ] [ 'type' ] == "image/pjpeg"
|| $_FILES [ 'bestand' ] [ 'type' ] == "image/jpeg" )
{
if ( empty ( $_POST [ 'naam' ] ) ) {
$naam = $_FILES [ 'bestand' ] [ 'name' ] ;
}
}
else
{
echo "Het bestand is geen png, jpg of gif" ; }
}
}
else
{
echo "Selecteer een plaatje" ; }
if ( $foto != '0' )
{
$naam = $foto ;
}
}
?>
Citaat:
Proximus edit :
Graag gebruik maken van code tags. Grotere posts gelieve te pasten op
www.plaatscode.be .
Ibrahim - 05/05/2006 08:31
PHP expert
paar opmerkingen:
1.
if(!empty($_POST))
kun je 2 dingen beter gebruiken:
- if(!isset($_POST['submitbuttonnaam']))
- if($_SERVER['REQUEST_METHOD'] != "POSt"))
----------------------------------------------
2.
<?php $result = mysql_query($query) or die(mysql_error());
header("location: messages.php");
$result = mysql_query($query) or die(mysql_error()); ?>
header ( "location: messages.php" ) ;
waarom doe je dit
zodra php bij die header(...) is gaat hij naar messages.php en waarom 2x dezelfde query uitvoeren ?
-----------------------------------------------
3.
$query = "SELECT
msg_title,
msg_text,
msg_type,
foto
FROM messages
WHERE msg_id = ". $_GET['msg_id'].";";
$result = mysql_query($query) or die(mysql_error());
$msg_title = mysql_result($result,0,"msg_title");
$msg_text = mysql_result($result,0,"msg_text");
$msg_type = mysql_result($result,0,"msg_type");
$foto = mysql_result($result,0,"foto");
$query = "SELECT
msg_title,
msg_text,
msg_type,
foto
FROM messages
WHERE msg_id = " . $_GET [ 'msg_id' ] . ";" ;
dit kun je beter boven de if zetten
-----------------------------------------------
4.
clude("..//includes/connect.php"); moet :
i nclude("...") zijn
Gesponsorde links
Dit onderwerp is gesloten .