Foto en tekst bewerken?
edwin87 - 16/10/2006 23:26
Nieuw lid
Goedenavond Sitemasters,
Ik zit momenteel met een probleem.
Ik heb een soort CMS systeem gemaakt dit werkt aardig. Nu kan ik ook fotos uploaden en de naam van de foto komt in de database te staan.
Ik heb een sectie met selectie spelers
Iedere speler heeft een profiel.
Naam positie etc.. Nu kan hij ook een foto uploaden...
Echter wanneer ik alleen tekst wil veranderen wil dat niet. Nu moet ik telkens een foto uploaden terwijl als dat 1 x is gebeurd dat niet weer hoeft.
Hier is het stuk code waar het om gaat:
<?php
$anaam = $_POST[anaam];
$foto = $_POST[foto];
$vnaam = $_POST[vnaam];
$leeftijd =$_POST[leeftijd];
$woonplaats = $_POST[woonplaats];
$positie = $_POST[positie];
$schoenen = $_POST[schoenen];
$favo_speler = $_POST[favo_speler];
$favo_club = $_POST[favo_club];
$doelpunten =$_POST[doelpunten];
$id = $_POST[id];
if(isset($_FILES[foto]))
{
//// FOTO CHECKEN ////
if($_FILES['foto']['size'] > 204800)
{
echo "Het bestand is <b>" . $_FILES['foto']['size'] . "</b>, het maximale toegstaan is <b>102400</b>";
}
else
{
if($_FILES['foto']['type'] == "image/gif" || $_FILES['foto']['type'] == "image/png" || $_FILES['foto']['type'] == "image/pjpeg" || $_FILES['foto']['type'] == "image/jpeg")
{
if(empty($_POST['naam']))
{
$naam = $_FILES['foto']['name'];
}
else
{
$x = strrchr($_FILES['foto']['name'], ".");
$naam = $_POST['naam'] . $x;
}
//// foto ok, tekst checken
{
move_uploaded_file($_FILES['foto']['tmp_name'], "images/" . $naam);
mysql_query("UPDATE spelers SET anaam='$anaam', vnaam='$vnaam', leeftijd='$leeftijd',
woonplaats='$woonplaats', positie='$positie', schoenen='$schoenen', favo_speler='$favo_speler', favo_club='$favo_club', doelpunten ='$doelpunten',foto='images/$naam' WHERE id='$id'")or die(mysql_error());
chmod("images/".$naam, 0777);
echo "<table><tr><td><img src='../images/gelukt.gif'/><td><p style='font-family='tahoma' font-color='black'>Het toevoegen is gelukt.</br> Klik <a href='overzicht.php' target='_self'>hier</a> voor het overzicht</p></td></tr></table>";
}
}
else
{
echo "Het bestand is geen png, jpg of gif";
}
}
}
?>
<?php
$anaam = $_POST [ anaam] ;
$foto = $_POST [ foto] ;
$vnaam = $_POST [ vnaam] ;
$leeftijd = $_POST [ leeftijd] ;
$woonplaats = $_POST [ woonplaats] ;
$positie = $_POST [ positie] ;
$schoenen = $_POST [ schoenen] ;
$favo_speler = $_POST [ favo_speler] ;
$favo_club = $_POST [ favo_club] ;
$doelpunten = $_POST [ doelpunten] ;
$id = $_POST [ id] ;
{
//// FOTO CHECKEN ////
if ( $_FILES [ 'foto' ] [ 'size' ] > 204800 )
{
echo "Het bestand is <b>" . $_FILES [ 'foto' ] [ 'size' ] . "</b>, het maximale toegstaan is <b>102400</b>" ; }
else
{
if ( $_FILES [ 'foto' ] [ 'type' ] == "image/gif" || $_FILES [ 'foto' ] [ 'type' ] == "image/png" || $_FILES [ 'foto' ] [ 'type' ] == "image/pjpeg" || $_FILES [ 'foto' ] [ 'type' ] == "image/jpeg" )
{
if ( empty ( $_POST [ 'naam' ] ) ) {
$naam = $_FILES [ 'foto' ] [ 'name' ] ;
}
else
{
$x = strrchr ( $_FILES [ 'foto' ] [ 'name' ] , "." ) ; $naam = $_POST [ 'naam' ] . $x ;
}
//// foto ok, tekst checken
{
mysql_query ( "UPDATE spelers SET anaam='$anaam ', vnaam='$vnaam ', leeftijd='$leeftijd ', woonplaats='$woonplaats ', positie='$positie ', schoenen='$schoenen ', favo_speler='$favo_speler ', favo_club='$favo_club ', doelpunten ='$doelpunten ',foto='images/$naam ' WHERE id='$id '" ) or
die ( mysql_error ( ) ) ;
chmod ( "images/" . $naam , 0777 ) ; echo "<table><tr><td><img src='../images/gelukt.gif'/><td><p style='font-family='tahoma' font-color='black'>Het toevoegen is gelukt.</br> Klik <a href='overzicht.php' target='_self'>hier</a> voor het overzicht</p></td></tr></table>" ;
}
}
else
{
echo "Het bestand is geen png, jpg of gif" ; }
}
}
?>
Ik hoop dat jullie mij met dit probleem kunnen helpen.
Met vriendelijke groet,
Edwin
8 antwoorden
Gesponsorde links
Ibrahim - 16/10/2006 23:41
PHP expert
ik heb je probleem niet begrepen, maar kan je al vertellen dat hier quotes in moeten zitten:
$anaam = $_POST[anaam];
$foto = $_POST[foto];
$vnaam = $_POST[vnaam];
$leeftijd =$_POST[leeftijd];
$woonplaats = $_POST[woonplaats];
$positie = $_POST[positie];
$schoenen = $_POST[schoenen];
$favo_speler = $_POST[favo_speler];
$favo_club = $_POST[favo_club];
$doelpunten =$_POST[doelpunten];
$id = $_POST[id];
$anaam = $_POST [ anaam] ;
$foto = $_POST [ foto] ;
$vnaam = $_POST [ vnaam] ;
$leeftijd = $_POST [ leeftijd] ;
$woonplaats = $_POST [ woonplaats] ;
$positie = $_POST [ positie] ;
$schoenen = $_POST [ schoenen] ;
$favo_speler = $_POST [ favo_speler] ;
$favo_club = $_POST [ favo_club] ;
$doelpunten = $_POST [ doelpunten] ;
$id = $_POST [ id] ;
niet $var = $_POST[veld];
maar $var = $_POST['veld'];
en ik kan je vertellen dat dat TOTAAL geen zin heeft, gebruik gewoon $_POST['veld'] ipv een nieuwe variabele te maken, of zet het in een array
edwin87 - 16/10/2006 23:46
Nieuw lid
oke maar dit is het probleem niet.
Het probleem is namelijk dat als ik een foto upload en de tekst verander wel goed doet. Maar als ik weer ff het profiel wijzig en alleen de tekst aanpas dat hij dan aangeeft
"Het bestand is geen png, jpg of gif"
Terwijl hij al een foto link in het id heeft staan..
Terwijl het zo moet zijn wanneer ik alleen de tekst verander dat hij dat alleen doet en niet dat ik steeds die foto ook mee moet uploaden.
Ik hoop dat het probleem nu wat duidelijker is.
Ibrahim - 17/10/2006 00:56
PHP expert
dan maak je toch een controle
if(plaatje is aanwezig)
{
plaatje gedeelte met rust laten
}
else
{
plaatje mee uploaden
}
if ( plaatje is aanwezig)
{
plaatje gedeelte met rust laten
}
else
{
plaatje mee uploaden
}
edwin87 - 17/10/2006 14:32 (laatste wijziging 17/10/2006 15:54)
Nieuw lid
Ik heb nu dit:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$error = "";
if(isset($_FILES['foto'])) {
if($_FILES['foto']['size'] > 204800)
{
echo "Het bestand is <b>" . $_FILES['foto']['size'] . "</b>, het maximale toegstaan is <b>102400</b>";
}
else
{
if($_FILES['foto']['type'] == "image/gif" || $_FILES['foto']['type'] == "image/png" || $_FILES['foto']['type'] == "image/pjpeg" || $_FILES['foto']['type'] == "image/jpeg")
{
if(empty($_POST['naam']))
{
$naam = $_FILES['foto']['name'];
}
else
{
$x = strrchr($_FILES['foto']['name'], ".");
$naam = $_POST['foto'] . $x;
}
}
if(move_uploaded_file($_FILES['foto']['tmp_name'], "images/" . $naam)) {
chmod("images/".$naam, 0777);
} else {
// foutmelding
$error .= "Probleem met uploaden";
}
}
if(empty($error)) {
if($_POST['foto'] == "images/" . $naam) {
// zonder foto opslaan
$sql = "UPDATE spelers SET anaam=". $_POST['anaam']. ", vnaam=". $_POST['vnaam'] .", leeftijd=" .$_POST['leeftijd']. ", woonplaats=" .$_POST['woonplaats']. ", positie=". $_POST['positie'].", schoenen=".$_POST['schoenen'].", favo_speler=".$_POST['favo_speler'].", favo_club=".$_POST['favo_club'].", doelpunten =". $_POST['doelpunten']." WHERE id=".$_POST['id']."";
} else {
// met foto opslaan
$sql = "UPDATE spelers SET anaam=". $_POST['anaam']. ", vnaam=". $_POST['vnaam'] .", leeftijd=" .$_POST['leeftijd']. ", woonplaats=" .$_POST['woonplaats']. ", positie=". $_POST['positie'].", schoenen=".$_POST['schoenen'].", favo_speler=".$_POST['favo_speler'].", favo_club=".$_POST['favo_club'].", doelpunten =". $_POST['doelpunten'].", foto='images/$naam' WHERE id=".$_POST['id']."";
}
// query uitvoeren
mysql_query($sql) or die(mysql_error());
} else {
// foutmeldingen weergeven
echo $error;
}
}
?>
<?php
$error = "" ;
if ( isset ( $_FILES [ 'foto' ] ) ) { if ( $_FILES [ 'foto' ] [ 'size' ] > 204800 )
{
echo "Het bestand is <b>" . $_FILES [ 'foto' ] [ 'size' ] . "</b>, het maximale toegstaan is <b>102400</b>" ; }
else
{
if ( $_FILES [ 'foto' ] [ 'type' ] == "image/gif" || $_FILES [ 'foto' ] [ 'type' ] == "image/png" || $_FILES [ 'foto' ] [ 'type' ] == "image/pjpeg" || $_FILES [ 'foto' ] [ 'type' ] == "image/jpeg" )
{
if ( empty ( $_POST [ 'naam' ] ) ) {
$naam = $_FILES [ 'foto' ] [ 'name' ] ;
}
else
{
$x = strrchr ( $_FILES [ 'foto' ] [ 'name' ] , "." ) ; $naam = $_POST [ 'foto' ] . $x ;
}
}
chmod ( "images/" . $naam , 0777 ) ; } else {
// foutmelding
$error .= "Probleem met uploaden" ;
}
}
if ( $_POST [ 'foto' ] == "images/" . $naam ) {
// zonder foto opslaan
$sql = "UPDATE spelers SET anaam=" . $_POST [ 'anaam' ] . ", vnaam=" . $_POST [ 'vnaam' ] . ", leeftijd=" . $_POST [ 'leeftijd' ] . ", woonplaats=" . $_POST [ 'woonplaats' ] . ", positie=" . $_POST [ 'positie' ] . ", schoenen=" . $_POST [ 'schoenen' ] . ", favo_speler=" . $_POST [ 'favo_speler' ] . ", favo_club=" . $_POST [ 'favo_club' ] . ", doelpunten =" . $_POST [ 'doelpunten' ] . " WHERE id=" . $_POST [ 'id' ] . "" ;
} else {
// met foto opslaan
$sql = "UPDATE spelers SET anaam=" . $_POST [ 'anaam' ] . ", vnaam=" . $_POST [ 'vnaam' ] . ", leeftijd=" . $_POST [ 'leeftijd' ] . ", woonplaats=" . $_POST [ 'woonplaats' ] . ", positie=" . $_POST [ 'positie' ] . ", schoenen=" . $_POST [ 'schoenen' ] . ", favo_speler=" . $_POST [ 'favo_speler' ] . ", favo_club=" . $_POST [ 'favo_club' ] . ", doelpunten =" . $_POST [ 'doelpunten' ] . ", foto='images/$naam ' WHERE id=" . $_POST [ 'id' ] . "" ;
}
// query uitvoeren
} else {
// foutmeldingen weergeven
}
}
?>
Ergens zit een fout in
Notice: Undefined variable: naam
blablabla/overzicht.php on line 43
Terwijl hij volgens mij wel gedefineerd is. Ik hoop dat een van jullie me kan helpen!
Bij voorbaat dank,
Edwin Boezelman
Niemand die me kan helpen?
timo - 17/10/2006 16:18
PHP ver gevorderde
als je nou zegt wat regel 43 is, want hier is dat een lege regel..
en dat ini_set slaat nergens op, de regel daaronder zorgt voor hetzelfde...
edwin87 - 17/10/2006 16:22
Nieuw lid
if(move_uploaded_file($_FILES['foto']['tmp_name'], "images/" . $naam)) {
Dit is regel 43
Naam is niet gedefineerd maar kijk in het script die is toch echt wel gedefineerd. lijkt mij?
Thomas - 17/10/2006 16:25
Moderator
Op PHP.net staat een hele duidelijke...le-uploads . Daar staat ook een link naar een pagina met errorcodes .
Hier zou je informatie uit kunnen halen over het hoe en wat van je upload.
Hopelijk heb je hier wat aan.
Wijnand - 17/10/2006 16:25
Moderator
Weet je, je moet even eerst nadenken. Wat wil je bereiken.
1. Je wilt dat mensen teksten kunnen updaten.
2. Je wilt dat ze de MOGELIJKHEID hebben om ook een plaatje te uploaden.
3. Je wilt ze doorsturen.
Deze volgorde moet je dan ook aanhouden.
<?php
If (IsSet($_POST['submit'])) {
mysql_query("UPDATE `spelers` SET ... etc");
if (IsSet($_FILES['foto'])) {
// hier wat check of het plaatje wel echt een plaatje is en of er geen php code inzit etc.
}
header("Location: index.php"); // doorsturen dus
} else {
// hier het formulier
}
?>
<?php
If ( IsSet ( $_POST [ 'submit' ] ) ) { if ( IsSet ( $_FILES [ 'foto' ] ) ) { // hier wat check of het plaatje wel echt een plaatje is en of er geen php code inzit etc.
}
header ( "Location: index.php" ) ; // doorsturen dus } else {
// hier het formulier
}
?>
Gesponsorde links
Dit onderwerp is gesloten .