Ga terug   Computer Idee Forum > Internet > Websites maken

Antwoord
 
Discussietools Weergave
Oud 18 May 2011, 14:13   #1
anoniem31645
Guest
 
Berichten: n/a
Standaard form actie "self"

Op me website Wil ik eenm tip van de week plaatsen welke ik wil aanroepen via een tabel in mijn database. Nu ben een klein scriptje aan het maken om een nieuwe tip in te voegen.

zover gaat alles goed, echter heb ik altijd gebruik gemaakt van een extern update_exe.php bestand waar de functie action van het formulier naar verwees bijvoorbeeld:
Code:
<form action="cat_update-exe.php" method="post">
Omdat het hier om slechts 1 tekst vak gaat wil ik het graag in 1 php bestand houden dus moet het formulier naar zichzelf verwijst en het update .exe scriptje uitvoeren als met op invoegen klikt.
Hier gaat het dus fout wand hoe doe ik dit? inmidels heb ik het onderstaande waarbij ik de manier die ik via google vond heb ingevoegd maar dit werkt dus niet.

PHP-code:
 <form action="" method="post">
<input type="hidden" name="week" id="week" Value="<?php echo date("m-y"); ?>" >

<table width="200" border="1" cellspacing="6">
  <tr>
    <td>Tip: </td>
    <td><input name="tip" type="text" class="stijl71" id="tip" size="29" maxlength="50" /></td>
  </tr>
  <tr>
    <td colspan="2">
    <input name="send" type="submit" id="send" onClick="MM_validateForm('email','','NisEmail');return document.MM_returnValue" value="Invoegen:">
            
     </td>
  </tr>
</table>
</form>

<?php
if (isset ($_POST['submit'])){ // Waneer het formulier verstuurd word.
$query "INSERT INTO `stekje_tip_vd_week` SET 
`item_id`= NULL, 
`tip`='"
.mysql_real_escape_string($_POST['tip'])."',
`week`='"
.mysql_real_escape_string($_POST['week'])."'";   
mysql_query($query);  
}
?>
  Met citaat antwoorden
Oud 18 May 2011, 14:36   #2
anoniem15124
Guest
 
Berichten: n/a
Standaard

Wat werkt er niet? Krijg je een foutmelding? Zorg voor foutafhandeling van je query (ik blijf het herhalen). Heb je de query al ge-echoot naar het scherm? Klopt hetgeen er dan staat met wat je zou verwachten?

Controleren of een formulier verstuurd is: if($_SERVER['REQUEST_METHOD'] == "POST")

Formulier naar zichzelf verwijzen kan ook met
<form method="post" action="<?php $_SERVER['SCRIPT_NAME']; ?>">

Doorgaans plaats je eerst php en dan html.

Code:
onClick="MM_validateForm('email','','NisEmail');return document.MM_returnValue" value="Invoegen:"
Je laat een stukje javascript de boel controleren? Waar is die code? Waarom geen controle met php? De term email lijkt me ook niet erg logisch gezien de rest van je code.
Waarom doe je `item_id`= NULL ?
  Met citaat antwoorden
Oud 18 May 2011, 15:39   #3
anoniem31645
Guest
 
Berichten: n/a
Standaard

was er met <?php $_SERVER['SCRIPT_NAME']; ?> niet iets met de beveiliging?

Ik heb het nu opgelost als volgt:

PHP-code:
 <?php
$send 
= ($_GET['send']);
 
if (
$send == "yes"){ // Waneer het formulier verstuurd word.
$query "INSERT INTO `stekje_tip_vd_week` SET 
`tip`='"
.mysql_real_escape_string($_POST['tip'])."',   
`week`='"
.mysql_real_escape_string($_POST['week'])."'";   
mysql_query($query);  
}

?> 
<form method="post" action="test2.php?send=yes">   
<table width="200" border="1" cellspacing="6">
  <tr>
        <td colspan="3">week-jaar:&nbsp;&nbsp;<input name="week" type="text" id="week" Value="<?php echo date("W-Y"); ?>" size="10" maxlength="8" ></td>
    </tr>
  <tr>
    <td width="35" valign="top">Tip: </td>
    <td colspan="2"><textarea name="tip" cols="20" rows="10" maxlength="125" id="tip"></textarea></td>
    </tr>
  <tr>
      <td colspan="3">
      <input type="submit" name="verstuuren" id="verstuuren" value="Verzenden">
      <input type="reset" name="reset" id="reset" value="wissen">     </td>
    </tr>
</table>
</form>

Laatst gewijzigd door Sjoukito : 18 May 2011 om 16:07
  Met citaat antwoorden
Oud 18 May 2011, 17:04   #4
anoniem14945
Guest
 
Berichten: n/a
Standaard

Waarom dit:
PHP-code:
$send = ($_GET['send']);
 
if (
$send == "yes"){ 
en niet gewoon:
PHP-code:
if ($_GET['send'] == "yes"){ 
Die tussenstap met $send voegt echt niets toe. Het maakt hooguit je script langzamer, omdat er een extra variabele geinitialiseerd moet worden.

Overigens doe ik meestal
PHP-code:
if ($_POST) { 
  Met citaat antwoorden
Antwoord

Discussietools
Weergave

Regels voor berichten
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Forumnavigatie


Alle tijden zijn GMT +1. Het is nu 23:44.


Powered by vBulletin Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.