Avatar billede baitianlong Nybegynder
25. maj 2004 - 20:28 Der er 19 kommentarer og
1 løsning

fortsættelse af min lille "første" php side

Hej. Jeg fik lidt hjælp i går, men nu skal jeg videre...

<?php
$name = $_GET['name'];
$fdag = $_GET['fdag'];
$fmaaned = $_GET['fmaaned'];
$faar = $_GET['faar'];
$birthday = "$fdag  - $fmaaned  - $faar";
if(!isset($_COOKIE['name'])) {
$cookiename = $_COOKIE['name'];
} else {
if($name != "" && $birthday != "") {

setcookie("name", $name, time()+3600);
print "Cookie Sat";

mysql_connect("localhost", "xxxxx", "xxxxx");
mysql_select_db("legende_dk");
$stringsql = "INSERT INTO birthday(name, birthday) VALUES ('".$name."', '".$birthday."')";
mysql_query($stringsql);
$stringsql2 = "SELECT * FROM birthday ORDER BY birthday ASC"
mysql_query($stringsql2);

// Her skal den udskrive hvert navn og hver fødselsdag

mysql_close();

} else {
?>
<form acti...


Den skriver fint i min database, men nu vil jeg have dette cookie halløj på, og desuden udskrive resultaterne enten når cookien er fundet, eller når formularen er submittet...

Dette er blot for at lære at bruge php i stedet for asp, og siden kan prøves på http://www.legende.dk/bonebirthday.php

Håber der er een (eller flere), der vil hjælpe mig med denne lille test :)
Avatar billede bigo Nybegynder
25. maj 2004 - 21:02 #1
Warning: Cannot modify header information - headers already sent by (output started at /customers/legende.dk/legende.dk/httpd.www/bonebirthday.php:9) in /customers/legende.dk/legende.dk/httpd.www/bonebirthday.php on line 20

Så den kalder noget header skidt inden du sætter kagen.

Desuden kan du :

if (setcookie("name", $name, time()+3600)) print "Cookie Sat";
Avatar billede baitianlong Nybegynder
25. maj 2004 - 21:07 #2
Nu har jeg fået den til at vise resultaterne, når man har submittet http://www.legende.dk/bonebirthday.php
. Men hvis der er cookie, skal den gå direkte til resultaterne, og ellers skal den sætte en cookie, når den går videre...

<?php
$name = $_GET['name'];
$fdag = $_GET['fdag'];
$fmaaned = $_GET['fmaaned'];
$faar = $_GET['faar'];
$birthday = "$fdag  - $fmaaned  - $faar";
//if(!isset($_COOKIE['name'])) {
//$cookiename = $_COOKIE['name'];
//} else {
if($name != "" && $birthday != "") {

//setcookie("name", $name, time()+3600);
//print "Cookie Sat";

mysql_connect("localhost", "legende_dk", "MFCLgiz5");
mysql_select_db("legende_dk");
$stringsql = "INSERT INTO birthday(name, birthday) VALUES ('".$name."', '".$birthday."')";
mysql_query($stringsql);
mysql_close();

mysql_connect("localhost", "xxxxxxxx", "xxxxxxx");
mysql_select_db("legende_dk");
$result = mysql_query ("SELECT * FROM birthday ORDER BY birthday ASC");

while($row = mysql_fetch_array($result)) {
  print $row["birthday"];
  print "    -    ";
  print $row["name"];
  print "<br><br>";
}

mysql_close();

} else {
?>

Det kan jeg ikke få til at virke (som du "bigo" har set) : ))
Avatar billede bigo Nybegynder
25. maj 2004 - 21:13 #3
prøv og lav

_GET om til _POST

Går ud fra at du har en form med en action=get
den skal du have lavet om til form action=post

(synes det ser lidt pænere ud men det skulle ikke have nogen indflydelse på koden..)

Men ellers... prøv

//if(!isset($_COOKIE['name'])) {
//$cookiename = $_COOKIE['name'];
//} else {
if($name != "" && $birthday != "") {

//setcookie("name", $name, time()+3600);
//print "Cookie Sat";

til:

// er kagen sat
if(isset($_COOKIE['name']))
{
    $cookiename = $_COOKIE['name'];
}
else
{
    if($name != "" && $birthday != "")
    {
        if(setcookie("name", $name, time()+3600))    print "Cookie Sat";
        mysql_connect("localhost", "legende_dk", "MFCLgiz5");
        mysql_select_db("legende_dk");
        $stringsql = "INSERT INTO birthday(name, birthday) VALUES ('".$name."', '".$birthday."')";
        mysql_query($stringsql);
        mysql_close();
       
        mysql_connect("localhost", "xxxxxxxx", "xxxxxxx");
        mysql_select_db("legende_dk");
        $result = mysql_query ("SELECT * FROM birthday ORDER BY birthday ASC");
       
        while($row = mysql_fetch_array($result))
        {
          print $row["birthday"];
          print "    -    ";
          print $row["name"];
          print "<br><br>";
        }
        mysql_close();
    } else {
   
   
    bla.bla..
Avatar billede baitianlong Nybegynder
25. maj 2004 - 21:17 #4
ok, så den der $_GET er ligeglad med om variabler står i URL'en : )) Det prøver jeg... + naturligvis den mere vigtige cookie-fest
Avatar billede baitianlong Nybegynder
25. maj 2004 - 21:21 #5
Den er ikke smuk nu... Den viser bare formularen een gang til

Jeg prøver lige cookie tingen, men med get stadig
Avatar billede bigo Nybegynder
25. maj 2004 - 21:23 #6
prøv lige at poste hele scriptet
Avatar billede baitianlong Nybegynder
25. maj 2004 - 21:25 #7
Den er ikke vild med setcookie, da headerne allerede er sendt ?!?!?!

Her er hele siden:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$name = $_GET['name'];
$fdag = $_GET['fdag'];
$fmaaned = $_GET['fmaaned'];
$faar = $_GET['faar'];
$birthday = "$fdag  - $fmaaned  - $faar";
// er kagen sat
if(isset($_COOKIE['name']))
{
    $cookiename = $_COOKIE['name'];
}
else
{
    if($name != "" && $birthday != "")
    {
        if(setcookie("name", $name, time()+3600))    print "Cookie Sat";
        mysql_connect("localhost", "legende_dk", "MFCLgiz5");
        mysql_select_db("legende_dk");
        $stringsql = "INSERT INTO birthday(name, birthday) VALUES ('".$name."', '".$birthday."')";
        mysql_query($stringsql);
        mysql_close();
       
        mysql_connect("localhost", "legende_dk", "MFCLgiz5");
        mysql_select_db("legende_dk");
        $result = mysql_query ("SELECT * FROM birthday ORDER BY birthday ASC");
       
        while($row = mysql_fetch_array($result))
        {
          print $row["birthday"];
          print "    -    ";
          print $row["name"];
          print "<br><br>";
        }
        mysql_close();
    } else {

?>
<form action="bonebirthday.php" method="get">
Enter Your Name: <input type="text" name="name" size="40" maxlength="50" value="<? print $_COOKIE['name'] ?>"><br>
Select your Birthday:
<select name="fdag" id="select">
              <script language="JavaScript">
                      for(tal = 1; tal <= 31; tal++)
                      document.write("<option value=" + tal + ">" + tal + "</option>");
              </script>
            </select> <font size="3">
            <select name="fmaaned" id="select2">
              <option value="01" selected>Januar</option>
              <option value="02">Februar</option>
              <option value="03">Marts</option>
              <option value="04">April</option>
              <option value="05">Maj</option>
              <option value="06">Juni</option>
              <option value="07">Juli</option>
              <option value="08">August</option>
              <option value="09">September</option>
              <option value="10">Oktober</option>
              <option value="11">November</option>
              <option value="12">December</option>
            </select>
            </font> <select name="faar" id="select3">
              <script language="JavaScript">
                      tid = new Date();
                      for(tal = 1935; tal <= tid.getYear(); tal++)
                      document.write("<option value=" + tal + ">" + tal + "</option>");
              </script>
              </select>
<input type="Submit" value="Submit" name="Submit">
</form>
<?
}}
?>

</body>
</html>
Avatar billede bigo Nybegynder
25. maj 2004 - 21:27 #8
når du starter med <html> eller lignende html kode, så sætter du headeren til html/text. - header er sat.

derfor .. flyt det :

<?php
$name = $_GET['name'];
$fdag = $_GET['fdag'];
$fmaaned = $_GET['fmaaned'];
$faar = $_GET['faar'];
$birthday = "$fdag  - $fmaaned  - $faar";
// er kagen sat
if(isset($_COOKIE['name']))
{
    $cookiename = $_COOKIE['name'];
}
else
{
    if($name != "" && $birthday != "")
    {
        if(setcookie("name", $name, time()+3600))    print "Cookie Sat";
        mysql_connect("localhost", "legende_dk", "MFCLgiz5");
        mysql_select_db("legende_dk");
        $stringsql = "INSERT INTO birthday(name, birthday) VALUES ('".$name."', '".$birthday."')";
        mysql_query($stringsql);
        mysql_close();
       
        mysql_connect("localhost", "legende_dk", "MFCLgiz5");
        mysql_select_db("legende_dk");
        $result = mysql_query ("SELECT * FROM birthday ORDER BY birthday ASC");
       
        while($row = mysql_fetch_array($result))
        {
          print $row["birthday"];
          print "    -    ";
          print $row["name"];
          print "<br><br>";
        }
        mysql_close();
    } else {

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="bonebirthday.php" method="get">
Enter Your Name: <input type="text" name="name" size="40" maxlength="50" value="<? print $_COOKIE['name'] ?>"><br>
Select your Birthday:
<select name="fdag" id="select">
              <script language="JavaScript">
                      for(tal = 1; tal <= 31; tal++)
                      document.write("<option value=" + tal + ">" + tal + "</option>");
              </script>
            </select> <font size="3">
            <select name="fmaaned" id="select2">
              <option value="01" selected>Januar</option>
              <option value="02">Februar</option>
              <option value="03">Marts</option>
              <option value="04">April</option>
              <option value="05">Maj</option>
              <option value="06">Juni</option>
              <option value="07">Juli</option>
              <option value="08">August</option>
              <option value="09">September</option>
              <option value="10">Oktober</option>
              <option value="11">November</option>
              <option value="12">December</option>
            </select>
            </font> <select name="faar" id="select3">
              <script language="JavaScript">
                      tid = new Date();
                      for(tal = 1935; tal <= tid.getYear(); tal++)
                      document.write("<option value=" + tal + ">" + tal + "</option>");
              </script>
              </select>
<input type="Submit" value="Submit" name="Submit">
</form>
<?
}}
?>

</body>
</html>
Avatar billede bigo Nybegynder
25. maj 2004 - 21:29 #9
og væn dig til at lave noget ala

if (ting==ting2)
{
  bla bla
}
else
{
blablabla
}

istedet for

if(ting==ting2) {
asfdb
}

hvis du altså vil.. jeg føler jeg bedre kan overskue min kode på den måde.. og det er ikke fordi der mistes tid for php at fortolke skidtet..
Avatar billede baitianlong Nybegynder
25. maj 2004 - 21:35 #10
Nej tak... Jeg ved godt nogle formatterer koden på den måde, men jeg har skrevet ActionScript i 4 år og Java i to år, og bruger nu engang den anden formattering, da den er "bedst" for mig : )) ... men det er cookien det handler om
Avatar billede bigo Nybegynder
25. maj 2004 - 21:55 #11
har du lagt det ind som jeg postede?
Avatar billede baitianlong Nybegynder
25. maj 2004 - 22:09 #12
Den viser bare en blank side når der er Cookie sat
Avatar billede bigo Nybegynder
25. maj 2004 - 22:12 #13
prøv:

if(isset($_COOKIE['name']))
{
    $cookiename = $_COOKIE['name'];
}
else

til

if(isset($_COOKIE['name']))
{
    $cookiename = $_COOKIE['name'];
    echo "Kage lagt";
}
else
Avatar billede bigo Nybegynder
25. maj 2004 - 22:18 #14
plus

if(setcookie("name", $name, time()+3600))    print "Cookie Sat";

den skriver kun "Cookie Sat" hvis kagen bliver lagt uden fejl.

du kan også

setcookie("name", $name, time()+3600) or die ("Cookie set fail");
Avatar billede baitianlong Nybegynder
25. maj 2004 - 22:18 #15
Så skriver den (som forventet) "kage lagt"

Den skal bare gå direkte til at vise resultaterne :)
Avatar billede bigo Nybegynder
25. maj 2004 - 22:20 #16
det er din første ifsætning der begrænser.

<?php
$name = $_GET['name'];
$fdag = $_GET['fdag'];
$fmaaned = $_GET['fmaaned'];
$faar = $_GET['faar'];
$birthday = "$fdag  - $fmaaned  - $faar";
// er kagen sat
if(isset($_COOKIE['name']))
{
    $cookiename = $_COOKIE['name'];
}
if($name != "" && $birthday != "")
{
    setcookie("name", $name, time()+3600)) or die("Cookie Set Fail");
    mysql_connect("localhost", "legende_dk", "MFCLgiz5");
    mysql_select_db("legende_dk");

    $stringsql = "INSERT INTO birthday(name, birthday) VALUES ('".$name."', '".$birthday."')";
    mysql_query($stringsql);

  $result = mysql_query ("SELECT * FROM birthday ORDER BY birthday ASC");
   
  while($row = mysql_fetch_array($result))
  {
    print $row["birthday"];
    print "    -    ";
    print $row["name"];
    print "<br><br>";
  }
  mysql_close();
} else {

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="bonebirthday.php" method="get">
Enter Your Name: <input type="text" name="name" size="40" maxlength="50" value="<? print $_COOKIE['name'] ?>"><br>
Select your Birthday:
<select name="fdag" id="select">
              <script language="JavaScript">
                      for(tal = 1; tal <= 31; tal++)
                      document.write("<option value=" + tal + ">" + tal + "</option>");
              </script>
            </select> <font size="3">
            <select name="fmaaned" id="select2">
              <option value="01" selected>Januar</option>
              <option value="02">Februar</option>
              <option value="03">Marts</option>
              <option value="04">April</option>
              <option value="05">Maj</option>
              <option value="06">Juni</option>
              <option value="07">Juli</option>
              <option value="08">August</option>
              <option value="09">September</option>
              <option value="10">Oktober</option>
              <option value="11">November</option>
              <option value="12">December</option>
            </select>
            </font> <select name="faar" id="select3">
              <script language="JavaScript">
                      tid = new Date();
                      for(tal = 1935; tal <= tid.getYear(); tal++)
                      document.write("<option value=" + tal + ">" + tal + "</option>");
              </script>
              </select>
<input type="Submit" value="Submit" name="Submit">
</form>
<?
}}
?>

</body>
</html>
Avatar billede bigo Nybegynder
25. maj 2004 - 22:20 #17
sorry

</form>
<?
}}
?>

</body>
</html>

til

</form>
<?
}
?>

</body>
</html>
Avatar billede baitianlong Nybegynder
25. maj 2004 - 22:21 #18
ok, så er det fikset, jeg kopierede naturligvis bare 2. database hentning op under print "kage lagt", nu må jeg lige rode med lidt refactoring, så koden bliver smukkere.... Men jeg har hvad jeg skal bruge, så tak for hjælp og forklaring

: )))


..smid et svar
Avatar billede bigo Nybegynder
25. maj 2004 - 22:22 #19
cewl ..

glad 2 help
Avatar billede baitianlong Nybegynder
25. maj 2004 - 22:41 #20
ja mand.. nu er den smuk :)

http://www.legende.dk/bonebirthday.php
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester