[PHP] Checkbox aan/uit bepalen en chmod probleem*

Pagina: 1
Acties:
  • 403 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (newpost.pics.checked) {mkdir("$pwd/pics/$ID",0777);} else echo "vakje uit";
if ($ond != ""){
mysql_query ("insert into posts (onderwerp,ID) values ('$ond','$ID')");
mysql_query ("insert into postdata (ID,link,text) values ('$ID','$url','$text')");
  }
?>
<table border=0 align=left>
<form name="newpost" action="add.php" method="POST" enctype="multipart/form-data" >
<tr><td width=100><pre>Onderwerp: </td><td width=600><input type=text name=ond size=80></td></tr>
<tr><td width=100><pre>url: </td><td width=600><input type=text name=url size=80></td></tr>
<tr><td width=100><pre>text </td><td width=600><textarea name=bericht cols=80 rows=15></textarea></td></tr>
<tr><td colspan =2 align = right><pre>Upload pics?<input type=checkbox name=pics value=pic></td></tr>
<tr><td colspan=2 align=right><input type="submit" name="verzenden" value="Toevoegen"></td></tr>
</form>
</table>


het opzet is eenvoudig:
aan de hand van een checkbox laat ik de gebruiker aangeven of hij bestanden wil upoaden (via ftp maar dat maakt nu niet zoveel uit) of niet. Het probleem is dat ik niet achter de waarde kan komen van mijn checkbox. Is deze nu uit of aan? Ik heb voorbeeldcode van een php-handboek, en die werkt ook niet op die server... Hoe bepaal ik of mijn checkbox aan of uit staat? Zoals de code hier staat wordt eraltijd een dir aangemaakt, of de chekbox nu aan of uit staat...

en dan nog een tweede vraag: de dir die ik aanmaak zou als rechten 777 moeten hebben. en hoewel ik in mijn code aangeeft dat dat 777 zou moeten worden, maakt hij de dir aan met rechten 755. De parent dir (dus de dir waarin de nieuwe dir aangemaakt dient te worden, heeft 777 als rechten.

Acties:
  • 0 Henk 'm!

  • M-ThijZ
  • Registratie: Maart 2003
  • Laatst online: 22:57

M-ThijZ

Riding on Rails

Ik zou een HTTP POST gebruiken naar dezelfde pagina met daarin een check, maar er zijn vast veel nettere oplossingen. (met javascript misschien?)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
heu...
HTTP POST, wat bedoel je daarmee?
en javascript wil ik liefst geen gebruik van maken

Acties:
  • 0 Henk 'm!

  • M-ThijZ
  • Registratie: Maart 2003
  • Laatst online: 22:57

M-ThijZ

Riding on Rails

Misschien ben ik wel weer dom bezig, maar je moet toch eerst het form met de checkbox versturen, en daarna uitlezen.

form.html (met checkbox) --> page2.php (waarde van de checkbox uitlezen en actie ondernemen)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
? ik kan een 'post' form toch ook laten uitlezen door de pagina waar het op aangemaakt is?
alle andere velden van mijn form kan ik wel uitlezen.
die haal ik op met $url = $_POST["url"];

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Als een checkbox aangeklikt is, dan wordt de value die je ervoor ingesteld hebt doorgegeven naar de volgende pagina. Is ie niet aangeklikt, dan wordt er totaal niets doorgegeven aan de volgende pagina. Dus voor een checkbox met de naam "check" en de value "val":
PHP:
1
2
3
4
5
if (isset($_POST['check']) && $_POST['check'] == 'val') {
  // checkbox aangevinkt
} else {
  // checkbox uitgevinkt
}

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mooi!
zo doet hij het. Maar toch vreemd dat de 'oude manier' niet werkt.
Want ik heb een boek gekocht over php, met downloadbare voorbeeldbestanden, en daar zit zo'n situatie tussen, ivm checkboxes. Nu deze voorbeeldbestanden werken niet op men server (FC4) terwijl ze dat op mijn vorige server (FC2) wel deden... is er iets veranderd in PHP daaromtrent? ivm veiligheid ofzo? In alle gaval, probleem 1 is opgelost, waarvoor mijn dank!

Nu is het tweede probleem nog het aanmaken van de dir met rechten 777.
het aanmaken werkt perfect, maar enkel met rechten 755 (hoewel ik aan mkdir meegeef dat het 777 moet zijn.) Het is echt noodzakelijk dat de rechten 777 zijn...
hoe moet dat dan?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

is er iets veranderd in PHP daaromtrent? ivm veiligheid ofzo?
register_globals, verder niks. En als die nog aan stond op je vorige server dan heb je nooit een je zooi up to date gemaakt. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mijn vorige server heeft gedraait van 2 dagen na FC2 uitkwam. Verder is daar inderdaad nooit aan geüpdated... (if it ain't broken, don't fix it)
maar nu met een hardware upgrade van server was hij toe aan een nieuwere versie (waarik overigens zeer tevreden over ben)

Maar heeft iemand een oplossing voor het 'dir-probleem?'
op php.net stat dat het gewoon zou moeten gaan, als je de juiste rechten meegeeft... (en dat doe ik toch me dunkt...?)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
net getest. Minder rechten uitedelen lukt wel...
dus al ik 755 meegeef, doet hij dat wel... (755 dan)

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Je kunt nooit meer rechten uitdelen dan het script zelf heeft volgens mij, missschien is dat het probleem?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
is een interessant standpunt, maar dat is de oplossing niet. Het het net getest door het script (add.php) 777 als rechten te geven. Ook dan zijn de maximum uit te delen rechten 755...

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Dit is trouwens nu wel een P&W topic.

Webdesign & Graphics > Programming & Webscripting

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bedankt :)
nuja, geef toe de grens tussen deze twee is soms wel vaag he :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op woensdag 24 augustus 2005 @ 19:47:
bedankt :)
nuja, geef toe de grens tussen deze twee is soms wel vaag he :)
Nee hoor. Alles dat met clientside zaken te maken heeft (HTML/CSS/JS/enz) hoort in Webdesign & Graphics, alles wat met serverside zaken (PHP/ASP/JSP/Perl/enz) en "echt programmeren" (C/C++/Delphi/enz) te maken heeft hoort in Programming & Webscripting.

Kun je trouwens wel andere rechten uitdelen, lager dan 755? Maak eens een dir aan met de rechten 666? Wedden dat die ook 755 wordt? :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mis...
die wordt dan 644 (en dat kan ik helamaal niet verklaren???)
ik heb op php.net gevonden, dat als je geen rechten meegeeft, hij standaard de rechten van de aangemaakte map op 777 zet... maar niet hier. Als ik niets meegeef, wordt hij ook op 755 gezet...
vreemd, bijzonder vreemd...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
val nu om...
ik heb een workaround gevonden!
eerst de dir maken, zonder rechten toe te kennen, en dan met chmod("path/to/dir",0777); de rechten aanpassen... en dat doet hij wel...
probleem opgelost, maar toch, blijft vreemd...

  • WormLord
  • Registratie: September 2003
  • Laatst online: 21-09 10:10

WormLord

Devver

Op php.net staat dat bij mkdir de meegegeven mode nog wordt aangepast met de huidige umask.

[ Voor 3% gewijzigd door WormLord op 25-08-2005 11:34 ]

Pagina: 1