Kom ihåg mig?
Home Menu

Menu


få formresultat på samma sida

 
Ämnesverktyg Visningsalternativ
Oläst 2006-01-02, 15:37 #11
anders.n anders.n är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 113
anders.n anders.n är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 113
Den koden verkar fungera.. med lite snabb modifikation..

Dock, jag skulle byta ut

Kod:
 if ($_POST['process'] == 1) {
mot
Kod:
if (isset($_POST['process'])) {
och

Kod:
$urlname = urlencode($$_POST['username']);
mot
Kod:
$urlname = urlencode($_POST['username']);


AHA!

Kom på vad som kan strula...

I början av din kod har du ett mellanslag innan <? .. har du det i filen också?

Om följande villkor är uppfyllda, så kan det kanske se ut som att sidan bara visas igen:

1. Du skickar någon text innan PHP-koden (ett mellanslag/en radmatning i början av filen t.ex.)
2. Du har inte PHP inställt på att "buffra" det den skickar
3. PHP är inställt på att inte visa några felmeddelanden

Du använder header-location för att byta sida.. den gör då det genom att skicka en header till webbläsaren som säger att den skall hämta en annan fil (thankyou)... om sidan redan skickat någon text (mellanslag) så kan inte headers ändras (om inte PHP buffrar innan den skickar), så.. då visas ett felmeddelande.. ("Warning: Cannot modify header information - headers already sent").

Sedan fortsätter koden, så den skickar den vanliga resultatsidan också..

Om din PHP inte visar felmeddelanden kan det alltså se ut som att den bara visar sidan igen..

Testa ändra till detta:

Kod:
      header(
       "location: thankyou.php?&username=$urlname");
     exit;
Får du då en "tom" sida istället? Isåfall är det förmodligen problem med headers/redan skickad data..

Testa att lägga till följande kommando i början av koden:
Kod:
error_reporting(E_ALL);
Trött nu, så.. inlägget blev rätt rörigt.. oh well.
anders.n är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-04, 18:27 #12
ashur ashur är inte uppkopplad
Nykomling
 
Reg.datum: Jun 2005
Inlägg: 37
ashur ashur är inte uppkopplad
Nykomling
 
Reg.datum: Jun 2005
Inlägg: 37
först vill jag säga: stort tack till hjälpen och bra förklarat.
Men jag undrar om du kunde sammanfoga koderna, med dina ändringar, så kan jag se bättre på vad som jag gör fel i.

tack på förhand.
ashur är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-05, 15:08 #13
anders.n anders.n är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 113
anders.n anders.n är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 113
Otestat...

Kod:
<?

  error_reporting(E_ALL);

  $message  = "";
  $emailclass = "basictext";
  $username  = "";

 

  if (isset($_POST['process'])) {

    $pattern = '/.*@.*\..*/';
    $email  = $_POST['email'];
    $urlname = urlencode($_POST['username']);

    if (preg_match($pattern, $_POST['email']) > 0) {
      // Here's where you would store
      // the data in a database...
      header(
       "location: thankyou.php?&username=$urlname");
      exit;
    }
    $message  = "Please enter a valid email address.";
    $username  = $_POST['name'];
    $emailclass = "errortext";
  }
?>

<html><title></title><head></head>
<style>
  .basictext {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px; color:#000066;
  }
  .errortext {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px; color:#C00000; font-weight: bold;
}
.errortext.input {background-color:#009933}
</style>
<body>
<form action="email.php" method="post">
  <? if ($message != "") {
    print '<span class="errortext">'.
      $message."<span><br>\n";
  }
  ?>
  <span class="<?print $emailclass; ?>">
    Email address:</span>
 <span class="<?print $emailclass; ?>"> <input name="email" type="text"
    class="<? print $emailclass; ?>"></span><br>
  


 <? if ($message != "") {
    print '<span class="errortext">'.
      $message."<span><br>\n";
  }
  ?>
  <span class="<?print $username; ?>">
    Namn:</span>
 <span class="<?print $username; ?>"> <input name="name" type="text"
    class="<? print $username; ?>"></span><br>
   <input type="hidden" name="process" value="1">
  <input type="submit" name="Button1" value="Sign up!">
</form>
</body></html>
anders.n är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-05, 22:43 #14
ashur ashur är inte uppkopplad
Nykomling
 
Reg.datum: Jun 2005
Inlägg: 37
ashur ashur är inte uppkopplad
Nykomling
 
Reg.datum: Jun 2005
Inlägg: 37
tack för uppläget

Jag får denna error då jag medvetat lämnat fälten tomma eller skriver något.
Notice: Undefined index: username in line 15
Line 15 är: $urlname = urlencode($_POST['username']);
ashur är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-08, 11:33 #15
anders.n anders.n är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 113
anders.n anders.n är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 113
Ja. Det bästa är att kolla att alla värden finns först.

Exempelvis:

Kod:
if (isset($_POST['username'])) $urlname=urlencode($_POST['username']);
anders.n är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-08, 12:23 #16
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Citat:
Originally posted by anders.n@Jan 8 2006, 12:33
Ja. Det bästa är att kolla att alla värden finns först.

Exempelvis:

Kod:
if (isset($_POST['username'])) $urlname=urlencode($_POST['username']);
Njae, det absolut bästa är väl att göra funktioner utav det.

Kod:
<?php
function post($value)
{
return (isset($_POST[$value])) ? $_POST[$value] : false;
}

function get($value)
{
return (isset($_GET[$value])) ? $_GET[$value] : false;
}

$urlname = urlencode(post('username'));
?>
Smidigt som f*n när man gör stora applikationer..
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-08, 17:08 #17
anders.n anders.n är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 113
anders.n anders.n är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 113
Jojo..

Jag brukar göra funktioner som "GetNumber" och "GetString" som loggar/skriker/blir fundersam om man skickar in något oväntat..
anders.n är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 03:54.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017