een install.php

Status
Niet open voor verdere reacties.

KaWouter

Terugkerende gebruiker
Lid geworden
9 mei 2002
Berichten
1.032
Ik ben al een tijdje bezig met een foto album script en nu wil ik daar een install.php aanhangen nu heb ik al gezocht op google maar weinig interesants kunnen vinden.
Op php.net heb ik wel het een en ander gevonden maar het lukt me voor geen meter om alle data juist in de file te krijgen...

Wat ik in de file wil krijgen is:
$mysql_host = waarde
$mysql_user = waarde
$mysql_pass = waarde
$mysql_dtabase = waarde
$upload_dir = waarde
$foto_user = waarde
$foto_admin = waarde

Ik gebruik nu de volgende code maar krijg het niet goed.....
Wie heplt.....

PHP:
<?php
$filename = 'test.php';

$data =

$mysql_host = (isset($HTTP_POST_VARS['mysql_host'])) ? trim($HTTP_POST_VARS['mysql_host']) : "";
$mysql_user = (isset($HTTP_POST_VARS['mysql_user'])) ? trim($HTTP_POST_VARS['mysql_user']) : "";
$mysql_pass = (isset($HTTP_POST_VARS['mysql_pass'])) ? trim($HTTP_POST_VARS['mysql_pass']) : "";
$mysql_database = (isset($HTTP_POST_VARS['mysql_database'])) ? trim($HTTP_POST_VARS['mysql_database']) : "";
$upload_dir = (isset($HTTP_POST_VARS['upload_dir'])) ? trim($HTTP_POST_VARS['upload_dir']) : "";
$foto_user = (isset($HTTP_POST_VARS['foto_user'])) ? trim($HTTP_POST_VARS['foto_user']) : "";
$foto_admin = (isset($HTTP_POST_VARS['foto_admin'])) ? trim($HTTP_POST_VARS['foto_admin']) : "";


if (is_writable($filename)) {
   if (!$handle = fopen($filename, 'a')) {
         print "Kan het bestand niet openen ($filename)";
         exit;
   }
   if (!fwrite($handle, $data)) {
       print "Kan niet schrijven naar bestand ($filename)";
       exit;
   }
	print "Succes, geschreven ($somecontent) naar bestand ($filename)";
   fclose($handle);
} else {
   print "Het bestand $filename is niet schrijfbaar";
}
?>
 
Script je altijd met die 'stijl' ?
Want echt overzichtelijk is het niet. Ik neem aan dat je eerst een scherm krijgt waar je gegevens in velden moet invoeren ?
 
Mja dus ? :p

Dit is nog steeds een incompleet script mag ik aannemen :o
 
Je hebt 3 files uiteindelijk......

1 Install --> dingen invullen
2 De write --> krijgt dingen uit de install.php zet ze in de test.php
3 De test.php is de uiteindelijke file.....

En als het een compleet script zou zijn was ik hier niet.....
 
Waarom doe je stap 1 en 2 niet in een ?

En je hoeft me niet zo aftesnauwen ..
 
Ik loop je niet aftesnauwen....

En ja je kan die 2 in 1 doen maar als ik het zo al niet aan de praat krijg.....
 
Je komt met 2 lappen code aan. Je verwacht zoals je houding nu is dat wij het script in mekaar zetten.

ipv. dat je een overzichtelijk gaat scripten en fwrite(), fopen(),isset(),is_writeable() en fclose() leest ("mja maar dat heb ik al gedaan" -nog een keer. Raar dat andere mensen het wel snappen en jij dan niet)

Ook wat doe je echt bij $data = :8-0:
 
Deze code komt bijna letterlijk van php.net

Het enigste wat ik vroeg is ik idd die $data goed krijg.....

Want die heb ik even zo gehouden om het "overzichtelijk" te maken van wat ik ermee wilde...

En wat je zegt over "Raar dat andere mensen het wel snappen en jij dan niet "

Waarom bestaat er dan zo`n forum....?!
 
Laatst bewerkt:
PHP:
<?php
$filename = 'test.php';
$data = ("<?php
$"."mysql_host = \"". $HTTP_POST_VARS['mysql_host'] ."\";
$"."mysql_user = \"". $HTTP_POST_VARS['mysql_user'] ."\";
$"."mysql_pass = \"". $HTTP_POST_VARS['mysql_pass'] ."\";
$"."mysql_database = \"". $HTTP_POST_VARS['mysql_database'] ."\";
$"."upload_dir = \"". $HTTP_POST_VARS['upload_dir'] ."\";
$"."foto_user = \"". $HTTP_POST_VARS['foto_user'] ."\";
$"."foto_admin = \"". $HTTP_POST_VARS['foto_admin'] ."\";
?>");

if (is_writable($filename)) {
   if (!$handle = fopen($filename, 'a')) {
         print "Kan het bestand niet openen ($filename)";
         exit;
   }
   if (!fwrite($handle, $data)) {
       print "Kan niet schrijven naar bestand ($filename)";
       exit;
   }
	print "Succes, geschreven ($data) naar bestand ($filename)";
   fclose($handle);
} else {
   print "Het bestand $filename is niet schrijfbaar";
}
?>

Kijk dit wilde ik dus weten.......
 
Totaal geen verificatie, geen beveiliging, je gaat ervanuit dat al die velden bestaan ... Lekker stukje code :thumb:
 
Euhm nee dit was de basis
wat ik nu heb is

PHP:
<?php
$check_1= $HTTP_POST_VARS['mysql_host'];
$check_2= $HTTP_POST_VARS['mysql_user'];
$check_3= $HTTP_POST_VARS['mysql_passwoord'];
$check_4= $HTTP_POST_VARS['mysql_database'];
$check_5= $HTTP_POST_VARS['upload_dir'];
$check_6= $HTTP_POST_VARS['foto_user'];
$check_7= $HTTP_POST_VARS['foto_admin'];

if($check_1){}else{ echo("Veld host niet ingevult!<br>"); }
if($check_2){}else{ echo("Veld user niet ingevult!<br>"); }
if($check_3){}else{ echo("Veld password niet ingevult!<br>"); }
if($check_4){}else{ echo("Veld database niet ingevult!<br>"); }
if($check_5){}else{ echo("Veld upload dir niet ingevult!<br>"); }
if($check_6){}else{ echo("Veld gebruiker fotos niet ingevult!<br>"); }
if($check_7){}else{ echo("Veld admin fotos niet ingevult!<br>"); }

if($check_1 && $check_2 && $check_3 && $check_4 && $check_5 && $check_6 && $check_7) { 
} else {
   print "<a href='javascript:history.back(1)'>Ga terug</a>";
		}

if($check_1 && $check_2 && $check_3 && $check_4 && $check_5 && $check_6 && $check_7) {

$filename = '../include/config.php';
$data = ("<?php
$"."upload_dir = \"". $HTTP_POST_VARS['upload_dir'] ."\";
$"."maxKol = \"". $HTTP_POST_VARS['foto_user'] ."\";
$"."maxKol_admin = \"". $HTTP_POST_VARS['foto_admin'] ."\"; //bla

$"."db = mysql_connect(\"$mysql_host\", \"$mysql_user\", \"$mysql_passwoord\");
mysql_select_db(\"$mysql_database\",$"."db);

?>");
if (is_writable($filename)) {
   if (!$handle = fopen($filename, 'a')) {
         print "Kan het bestand niet openen ($filename)";
         exit;
   }
   if (!fwrite($handle, $data)) {
       print "Kan niet schrijven naar bestand ($filename)";
       exit;
   }
		include("../include/config.php"); 
		$sql_sites =
		"CREATE TABLE `sites` (
  		`userid` int(10) unsigned NOT NULL auto_increment,
  		`naam` varchar(120) default NULL,
  		`username` varchar(200) default NULL,
  		`PASSWORD` varchar(32) default NULL,
  		`email` varchar(200) default NULL,
  		`ip` varchar(20) default NULL,
  		`aanmelddatum` int(10) default NULL,
  		`show_commands` int(2) NOT NULL default '1',
  		`hash` int(8) default NULL,
  		`actief` tinyint(1) default NULL,
		 PRIMARY KEY  (`userid`)
		 ) TYPE=MyISAM AUTO_INCREMENT=1 ";
		 $result = @mysql_query($sql_sites);  
  
	print "<a href=\"../aanmelden.php\">De installatie is nu voltooid, klik hier om je aan te melden</a>";
   fclose($handle);
   
} else {
   print "Het bestand $filename is niet schrijfbaar";
		}}
?>

Mocht je verbeteringen hebben hoor ik het graag
Ook kan je maar 1 keer de install.php runnen
en zolang de install.php bestaat kan je niets met de site
dus moet je hem verwijderen of hernoemen
 
Wow, sorry dat ik 't zeg maar het doet pijn aan me ogen gewoon, zo onwijs onoverzichtelijk scripten :o

PHP:
if($check_1){}else{ echo("Veld host niet ingevult!<br>"); }
...
if($check_7){}else{ echo("Veld admin fotos niet ingevult!<br>"); }

Wat doe je daar echt :8-0:
 
Geplaatst door masterprut
Wow, sorry dat ik 't zeg maar het doet pijn aan me ogen gewoon, zo onwijs onoverzichtelijk scripten :o

PHP:
if($check_1){}else{ echo("Veld host niet ingevult!<br>"); }
...
if($check_7){}else{ echo("Veld admin fotos niet ingevult!<br>"); }

Wat doe je daar echt :8-0:

Als de $check_1....7 leeg is geeft ie een echo lijkt me....
Hoezo heb je een betere oplossing?
 
Geplaatst door KaWouter


Als de $check_1....7 leeg is geeft ie een echo lijkt me....
Hoezo heb je een betere oplossing?

MJaaa, die heb ik zeker

PHP:
if($check_1 == "")
{
  // hier je melding
}

Kijkt u eens ...
 
die had ik kunnen weten.....
die is idd wat makkelijker

thx
 
Hmm nou moet ik eerlijk bekennen dat ik het totaal eens ben met masterprut.. :( Je codestyle is ronduit.. slecht te noemen. Ik kan hier nu een heel ***verhaal op gaan hangen over elk dingetje wat je fout doet maar kijk eens in de tips & handleidingen sectie op dit forum. Daar hebben ik en blaataap een aantal handleidingen geschreven van vaak voorkomende vragen / fouten.
Ik zal eens wat dingetjes opnoemen die jij niet echt efficiënt doet:

- De fout-check gebeurtenis: ik snap wat je doet, if($check_1 &&....) wordt gewoon goed geparsed door de PHP parser MAAR is eigenlijk niet goed. Beetje hetzelfde als een auto op de verkeerde banden laten rijden: het kan wel maar hoort niet.
Beter is om je if's te veranderen in dit:

PHP:
<?php

if(!isSet($check_1))
     print("check 1 NOT OK");
elseif(!isSet($check_2))
     print("check 2 NOT OK");
...
?>

En zo het rijtje af te werken.

- Second thing: de code tussen { } op gescheide lijnen doen en met tabs werken! Zie blaapaap's tutor daarover :)

Ow, btw: ja, ik ben sinds een lange tijd weer proberend actief te zijn in de PHP sectie van Helpmij :D
 
Laatst bewerkt:
Dan zou ik die '!' ook niet gebruiken, staat ook nogal slordig :)
Kijk dan of de waarde die isset() teruggeeft gelijk is aan FALSE.
PHP:
if(isset($check_1) == FALSE)
{
// ...
Ik mis trouwens veel checks op of de veldnamen ($HTTP_POST_VARS['vul_maar_in']) wel bestaan. Als ik inde adresbalk de link naar jouw script typ, krijg ik de ene naar de andere melding. Als je met een professioneel script bezig bent, is dit niet alleen slordig, het is onprofessioneel.
Geplaatst door pcfixer
- Second thing: de code tussen { } op gescheide lijnen doen en met tabs werken! Zie blaapaap's tutor daarover :)
Waarom ?
't Is net waar je liever mee werkt, die { } zijn niet vereist.
(Ik werk btw wel met { }, vind ik prettiger :p).

Succes :thumb:
 
Geplaatst door JPeetje
Dan zou ik die '!' ook niet gebruiken, staat ook nogal slordig :)
[...]
Waarom ?
't Is net waar je liever mee werkt, die { } zijn niet vereist.
(Ik werk btw wel met { }, vind ik prettiger :p).

Succes :thumb:

Misschien... Maar het is de officiële manier van PHP.net om aan te geven if(false). Wat jij doet is gewoonweg onnodig, er ook nog eens false achter plakken.

De { } zijn vereist wanneer een code block langer is dan 1 regel (linecount > 1). Om het dan overzichtelijk te houden kun je het beste met tabs werken:

PHP:
<?php

while($i <= 50)
{
       $q = "SELECT rij FROM tabel";
       $res = mysql_query($q);
       $fetch = mysql_fetch_row($res);

        echo $fetch[0];
        $i++;
}
?>

En niet gelijk achter dee while definitie een { en aan het eind gelijk een } :)
 
Geplaatst door pcfixer
- Second thing: de code tussen { } op gescheide lijnen doen en met tabs werken! Zie blaapaap's tutor daarover :)

Niks moet. Tis net wat je prettiger vind werken. JPeetje werkt iets dat op dit lijkt:

PHP:
<?

echo "hoi";

  if(isset($_GET['doe']) == FALSE
  {
  echo "<br>Niks te doen";
  }
  else
  {
  echo "yeah";
  }

?>

Ik vind dit niet zo overzichtelijk. Ik heb vanhem de tabs aangeleerd maar op de verkeerde manier :p. Ik begon een eigen opmaak te maken:

PHP:
<?

echo "hoi";

if(isset($_GET['doe']) == FALSE)
{
  echo "darn";
}
else
{
  echo "whoo!";
}

?>

Zie je het verschil ? Dus als KaWouter het fijner vind om op die manier met tabs omte gaan, laat het hem dan lekker doen ...

Gr. Thomas
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan