Vraag & Antwoord

Webprogrammeren & scripting

Invulformulier maken met PHP, moeilijk?

15 antwoorden
  • Hoi, Ik ben een absolute beginner wat PHP betreft. Ik weet wel wat van html en java af. Nu heb ik een site waar ik een invoerformulier op wil maken waarop ik de films die ik aangeschaft heb, op wil laten verschijnen. Dus ik vul in, in een formulier bijv. the Matrix en dat ie dat wegschrijft naar een database en dat het verschijnt op de site. Is dit moeilijk om te maken, zijn er voorbeelden te vinden die ik zou kunnen gebruiken? Of zou ik anders een cursusje php moeten volgen, misschien ergens op Internet? Alvast bedankt
  • Mod: (Bill Gates) kan dit [url=http://forum.computertotaal.nl/phpBB2/viewforum.php?f=13]hier naartoe[/url] verplaatst worden? En antwoord op je vraag: Leer eerst maar eens basis php en MySql o.i.d., in de C!T staat een basiscursus PHP. (deel 2) In een phptutorial kom je eerst de 'html'-php basis tegen, en daarna de samenwerking met een eventuele Database, zoals een (My)Sql-database.
  • [quote:9a9b558e2b="philipo"]Hoi, Ik ben een absolute beginner wat PHP betreft. Ik weet wel wat van html en java af. Nu heb ik een site waar ik een invoerformulier op wil maken waarop ik de films die ik aangeschaft heb, op wil laten verschijnen. Dus ik vul in, in een formulier bijv. the Matrix en dat ie dat wegschrijft naar een database en dat het verschijnt op de site. Is dit moeilijk om te maken, zijn er voorbeelden te vinden die ik zou kunnen gebruiken? Of zou ik anders een cursusje php moeten volgen, misschien ergens op Internet? Alvast bedankt[/quote:9a9b558e2b] Het invulformulier zelf kun je trouwens in html schrijven!
  • [quote:8ea22a0954="turbo-pascal"]Mod: (Bill Gates) kan dit [url=http://forum.computertotaal.nl/phpBB2/viewforum.php?f=13]hier naartoe[/url] verplaatst worden?[/quote:8ea22a0954]Omdat je het zo lief vraagt ;)
  • Echt moeilijk is het niet wat je wil. Voor een php beginner is dit dus wel te doen. Je moet echter wel basis kennis hebben. Op php.net staat bij documentation heel veel informatie voor zowel beginners als experts. Dit is het adres: http://www.php.net/manual/nl/index.php Je kan Chapter I wel overslaan. Als je Chapter II (Syntax) begrijpt heb je de basis van php wel een beetje onder de knie. Als je al een andere programeertaal kent leer je dit vrij snel Hier nog wat beknopte info over php met MySQL: http://www.php.net/manual/nl/ref.mysql.php Veel succes ermee!
  • ik geloof dat het zo kan post.html [code:1:c41af54fb8]<form name="film" method="post" action="afwerk.php"> <p>film : <input type="text" name="film"> </p> <p> <input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Reset"> </p> </form> [/code:1:c41af54fb8] afwerk.php [code:1:c41af54fb8]<? $host = "localhost";// meestal localhost $gebruikersnaam = "test"//gebruikersnaam van database $wachtwoord = "bleh"//wachtwoord van je database $database = "bleh";// datbase naam mysql_connect($host,$gebruikersnaam,$wachtwoord); mysql_select_db($database); $insert = "INSERT INTO films (id,film) VALUES ('','$film)"; mysql_query($insert) or die(mysql_error()); echo "toegevoeg klik<a href='index.php' target='_self'>hier</a>"; ?>[/code:1:c41af54fb8] index.php [code:1:c41af54fb8]<? $host = "localhost";//meestal localhost $gebruikersnaam = "test";//je gebruikersnaam van database $wachtwoord = "wacht";// je wachtwoord $database = "blabla";//je database naam mysql_connect($host,$gebruikersnaam,$wachtwoord); mysql_select_db($database); $sql = "SELECT * FROM films"; $query = mysql_query($sql); $aantal = mysql_num_rows($query); while ($show = mysql_fetch_object($query)) { echo"$show->film"; } echo"er zijn $aantal films"; ?>[/code:1:c41af54fb8] tabel: [code:1:c41af54fb8] CREAtE TABLE films id int(10) not null auto_increment PRIMARY KEY, film varchar(255) not null)[/code:1:c41af54fb8]
  • Voordat ik weer een nutteloze post moet beantwoorden waarin gesteld wordt "het formulier doet het niet" zal ik vast op de zaken vooruit lopen en even melden dat variabelen in PHP vanaf versie 4.1 of 4.2 niet meer zomaar zijn aan te roepen als je ze verzend via GET danwel POST. Variabele $bla wordt respectievelijk $_GET["bla"] of $_POST["bla"] Zo, bij deze weer een klein ergernisje weggenomen... :D - Bas
  • [quote:2c0b873ed8="BasHamar"]Voordat ik weer een nutteloze post moet beantwoorden waarin gesteld wordt "het formulier doet het niet" zal ik vast op de zaken vooruit lopen en even melden dat variabelen in PHP vanaf versie 4.1 of 4.2 niet meer zomaar zijn aan te roepen als je ze verzend via GET danwel POST. Variabele $bla wordt respectievelijk $_GET["bla"] of $_POST["bla"] Zo, bij deze weer een klein ergernisje weggenomen... :D - Bas[/quote:2c0b873ed8]Het formulier kan ook een gewone html-file zijn. Binnen de functie form staat dan b.v. [i:2c0b873ed8]<textarea name="reactie" rows="10" cols="60"></textarea>[/i:2c0b873ed8]<br> en het formulier zelf is b.v. als volgt gedefinieerd: [i:2c0b873ed8]<form method="post" action="toevoegen.php">[/i:2c0b873ed8]. In de php-file toevoegen.php wordt dan automatisch die [i:2c0b873ed8]name="reactie"[/i:2c0b873ed8] ingelezen als variabele $reactie. Ik heb hierbij nooit iets gemerkt van genoemde beperking. Jan de Boer
  • [quote="J. de Boer]Ik heb hierbij nooit iets gemerkt van genoemde beperking.[/quote] De uitspraak van BasH was inderdaad iets kort door de bocht. Vanaf versie 4.2.0 wordt er inderdaad anders om gegaan met de aanroep van variabelen verzonden met GET/POST. Een belangrijke oorzaak hiervoor is het standaard "off"-staan van register_globals in php.ini. Als in de php.ini dus register_globals "on" staat werkt het gewoon. Achtergrond-info hierover op: [url=http://nl2.php.net/manual/nl/security.registerglobals.php]php.net[/url] Overigens kan het ook zo zijn dat de error_trapping erg laag staat, waardoor je nooit ziet dat het fout gaat ;) Er wordt door PHP 'slechts' een notice gegeven. Als laatste kan het nog zijn dat je versie voor 4.2.0 gebruikt. Eerste punt lijkt me de verklaring voor jouw 'gemis' aan deze 'beperking'. Ik vind het persoonlijk wel beter om de variabelen stuk voor stuk uit het formulier te lezen en ze niet klakkeloos over te nemen, maar da's weer een andere discussie.[/url]
  • [quote:cb811addfe="Financial"]De uitspraak van BasH was inderdaad iets kort door de bocht. Vanaf versie 4.2.0 wordt er inderdaad anders om gegaan met de aanroep van variabelen verzonden met GET/POST. Een belangrijke oorzaak hiervoor is het standaard "off"-staan van register_globals in php.ini. Als in de php.ini dus register_globals "on" staat werkt het gewoon. Achtergrond-info hierover op: [url=http://nl2.php.net/manual/nl/security.registerglobals.php]php.net[/url] Overigens kan het ook zo zijn dat de error_trapping erg laag staat, waardoor je nooit ziet dat het fout gaat ;) Er wordt door PHP 'slechts' een notice gegeven. Als laatste kan het nog zijn dat je versie voor 4.2.0 gebruikt. Eerste punt lijkt me de verklaring voor jouw 'gemis' aan deze 'beperking'. Ik vind het persoonlijk wel beter om de variabelen stuk voor stuk uit het formulier te lezen en ze niet klakkeloos over te nemen, maar da's weer een andere discussie.[/url][/quote:cb811addfe]Ik heb zelf helemaal geen php, we beheren een website, en de provider ondersteunt php. Welke versie dat is, weet ik niet, en ik heb daar uiteraard ook geen invloed op. Feit is, dat alles correct functioneert, het "nooit zien dat het fout gaat" is dus niet aan de orde, als een (proef)reactie gewoon geplaatst wordt, gaat het niet fout. Het betreft een gastenboek met het invulformulier in een html-file. Alle variabelen worden gewoon automatisch door de php-file overgenomen met het dollartekentje ervoor. Ik vraag mij af wat daar nog aan verbeterd kan worden. Of gaat de discussie eigenlijk over de situatie waar het formulier ook in php-code geschreven is? Ik kan me voorstellen het dan een beetje anders werkt. Je maakt me wel nieuwsgierig. Jan de Boer
  • [quote:fcc697940a="J. de Boer"]Ik vraag mij af wat daar nog aan verbeterd kan worden.[/quote:fcc697940a]Zoals eerder vermeld, vanaf PHP versie 4.2 is er een nieuwe vorm van Globals geïntroduceerd waardoor het programmeren in PHP overzichtelijker en veiliger wordt. Met name het laatste argument maakt dat "register_globals" standaard op "off" staat én dat hosts deze instelling instellingen gewoon overnemen. Of het formulier door PHP gegenereerd wordt of niet maakt niet uit, de browser krijgt HTML voorgeschoteld en ziet het verschil niet. - Bas
  • [quote:10e6a17f8e="J. de Boer"]Ik vraag mij af wat daar nog aan verbeterd kan worden. [/quote:10e6a17f8e] Je kunt het script aanpassen, zodat het de variabelen netjes uitleest. Nu wordt de variable $bla klakkeloos overgenomen uit het form. Je kunt het ondervangen door aan het begin van het script de variabelen zelf uit te lezen. [code:1:10e6a17f8e]$bla = $_GET["bla"] (of $_POST["bla"]) $bla2 = $_GET["bla2"] en de rest van het script [/code:1:10e6a17f8e] Je zult geen verbetering zien (ook geen verslechtering) maar mocht je provider overstappen naar een nieuwe versie (wat me geen slecht idee lijkt, maar dat terzijde) dan blijft je script ook werken. Providers hebben nog wel eens de neiging te upgraden/zaken te wijzigen zonder je daar over in te lichten. Wil je wat meer info over o.a. de PHP-versie bij je provider zet dan eens hetvolgende script daar neer (noem het info.php ofzo) : [code:1:10e6a17f8e]<?PHP echo phpinfo(); ?>[/code:1:10e6a17f8e]
  • [quote:fbb71391c7="BasHamar"]Zoals eerder vermeld, vanaf PHP versie 4.2 is er een nieuwe vorm van Globals geïntroduceerd waardoor het programmeren in PHP overzichtelijker en veiliger wordt. Met name het laatste argument maakt dat "register_globals" standaard op "off" staat én dat hosts deze instelling instellingen gewoon overnemen. Of het formulier door PHP gegenereerd wordt of niet maakt niet uit, de browser krijgt HTML voorgeschoteld en ziet het verschil niet. - Bas[/quote:fbb71391c7]Bedankt voor de tip, ik kende deze optie nog niet. Nuttig om even rekening mee te houden. De versie (bij Tiscali Business) is php4.1.0 van januari 2002. Jan de Boer Edit: Met die tip die ik nog niet kende, bedoelde ik de reactie van Financial.
  • FF invoeging op: [quote="joyke"]tabel: Code: [code:1:465586b3a6] CREAtE TABLE films id int(10) not null auto_increment PRIMARY KEY, film varchar(255) not null) [/code:1:465586b3a6] Dat moet dit worden: [code:1:465586b3a6] CREATE TABLE films ( id int(10) not null auto_increment PRIMARY KEY, film varchar(255) not null ); [/code:1:465586b3a6] Greetz, Rens_uit_His
  • :oops: vergeten ..... :D haha dankjewel !!! ik had het zelf niet gezien

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.