Avatar billede hp-power Nybegynder
18. april 2008 - 17:55 Der er 21 kommentarer og
1 løsning

gå til anden side.

Jeg er ny inden for php og leder efter en funktion

jeg vil gerne have den til at fx. skifte til en anden side hvis der er en fejl. i fx if sætning..

if($navn == "test"){
  mange funtion som automatisk gå til en anden side.
}

håber i kan for står det og hjælpe

Heino
Avatar billede olebole Juniormester
18. april 2008 - 18:11 #1
<ole>

if($navn == "test"){
  header("Location: enandenside.php");
  exit;
}


/mvh
</bole>
Avatar billede yHec Novice
18. april 2008 - 18:11 #2
header(sprintf("location:%s", side.php));

Du må bare ikke lave noget output, inden du skifter til den nye side.

/y
Avatar billede yHec Novice
18. april 2008 - 18:12 #3
Pokkers, ikke hurtig nok ;-)

Ole > hvorfor laver du en exit? Siden skifter jo, og så stoppper scriptet også.

/y
Avatar billede hp-power Nybegynder
18. april 2008 - 18:25 #4
får en fejl:

Warning: Cannot modify header information - headers already sent by (output started at /Volumes/Mega Stock/PHP SERVER/admin/fun_insert.php:10) in /Volumes/Mega Stock/PHP SERVER/admin/fun_insert.php on line 25
Avatar billede olebole Juniormester
18. april 2008 - 18:27 #5
Læs, hvad y skriver til dig:
    "Du må bare ikke lave noget output, inden du skifter til den nye side."  ;o)
Avatar billede olebole Juniormester
18. april 2008 - 18:28 #6
y >> Nej, der kan sagtens afvikles script efter header'en. Der er somregel et lille delay, efter header'en er blevet læst, til siden skiftes. For at være helt sikker sætter jeg derfor en exit  ;o)
Avatar billede olebole Juniormester
18. april 2008 - 18:31 #7
http://dk2.php.net/manual/en/function.header.php

- læg mærke til anden kommentar under 'Parameters'
Avatar billede hp-power Nybegynder
18. april 2008 - 18:41 #8
det er nok men får stadig den samme fejl.
min kode ser sådan ud.

if (mysql_query($sql,$conn)) {
    header("Location: http://www.add_ok.php/");
    exit;
}
Avatar billede hp-power Nybegynder
18. april 2008 - 18:42 #9
det er nok men får stadig den samme fejl.
min kode ser sådan ud.

if (mysql_query($sql,$conn)) {
    header("Location: add_ok.php/");
    exit;
}

sådan.. de første var en gammel kopi
Avatar billede olebole Juniormester
18. april 2008 - 18:47 #10
Jamen du må ikke udskrive noget, før du sætter header'en - så får du nemlig den pågældende fejl.
Avatar billede olebole Juniormester
18. april 2008 - 18:52 #11
Du skal nok indrette din kode på en anden måde, så du adskiller PHP og HTML. Skriv f.eks. din PHP-kode foroven i dokumentet og lav funktioner, som returnerer en HTML-streng. Derefter kan du skrive din HTML med kald til PHP-funktionerne, så du kan få skrevet din 'dynamiske HTML' ind i dokumentet
Avatar billede hp-power Nybegynder
18. april 2008 - 19:23 #12
det tror jeg ikke jeg kan men takker for det...

ved ikke hvem der skal have poits
Avatar billede yHec Novice
19. april 2008 - 16:37 #13
Det bestemmer du vel selv.

Det er ikke så svært at lave php'en øverst på siden, og html'en indenfor <html>-tagget. Det er den bedste måde at gøre det på.

/y
Avatar billede hp-power Nybegynder
19. april 2008 - 17:01 #14
kan du ikke prøve at lave en fx. kan ikke få det til at virke
Avatar billede yHec Novice
19. april 2008 - 17:24 #15
Så giv mig først den kode du har, så skal jeg se på det.

/y
Avatar billede hp-power Nybegynder
19. april 2008 - 18:36 #16
sfor_ny_besked.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Skriv en besked</title>

<link href="../style.css" rel="stylesheet" type="text/css" />

<link href="style.css" rel="stylesheet" type="text/css" />
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationTextarea.js" type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationTextarea.css" rel="stylesheet" type="text/css" />
</head>

<body>

<div id="page">
<h1 align="center">Skriv en besked i gæstebogen</h1>
<br />
<div id="indlag">
<form action="fun_ny_besked.php" method="post">
 
  </p>
  <table width="680" border="0" align="center" cellpadding="5" cellspacing="0">
    <tr>
      <td width="70"><div align="right">Navn:</div></td>
      <td width="590"><span id="sprynavn1">
        <label>
        <input name="navn" type="text" id="navn" size="50" />
        </label>
        <span class="textfieldRequiredMsg">indtast venligst dit navn.</span></span></td>
    </tr>
    <tr>
      <td><div align="right">E-Mail:</div></td>
      <td><span id="sprytextfield2">
      <label>
      <input name="email" type="text" id="email" size="50" />
      </label>
      <span class="textfieldRequiredMsg">Indtast venligst din email.</span><span class="textfieldInvalidFormatMsg">Ugyldig e mail.</span></span></td>
    </tr>
    <tr>
      <td valign="top"><div align="right">Besked:</div></td>
      <td><span id="sprytextarea1">
        <label>
        <textarea name="besked" id="besked" cols="48" rows="10"></textarea>
        </label>
        <span class="textareaRequiredMsg">Skriv venligst en besked.</span></span></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><label>
        <input name="send" type="submit" class="knap" id="send" value="Send besked" />
        <input name="nulstil" type="reset" class="knap" id="nulstil" value="Slet besked" />
      </label></td>
    </tr>
  </table>
</form>





</div>
</div>

<script type="text/javascript">
<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprynavn1");
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "email");
var sprytextarea1 = new Spry.Widget.ValidationTextarea("sprytextarea1");
//-->
</script>
</body>
</html>


fun_ny_besked.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>function</title>
</head>

<body>

<?
include("connect.php");
$dato_array = getdate();
$dato = "D. " . $dato_array["mday"] . "/" . $dato_array["mon"] . "-" . $dato_array["year"] . "  -  " . "Kl. " . $dato_array["hours"] . ":" . $dato_array["minutes"] . ":" . $dato_array["seconds"];
// definer sql text
$sql = "insert into gbog values ('', '$_POST[navn]', '$_POST[email]', '$dato' , '$_POST[besked]')";

// udfør sql text

if (mysql_query($sql,$conn)) {
    echo "<br><br><h1><center>";
    echo "Besked sendt.";
    echo "</h1></center><br><br>";
    @include("status.php");
   
}else{
    echo "<br><br><h1><center>";
    echo "Der skedte en fejl under afsendning af beskeden.";
    echo "</h1></center><br><br>";
    echo die(mysql_error());
    echo "<br><br>";
    @include("status.php");
}










?>

<form action="fun_del.php" method="post">


</body>
</html>


det er nå beskeden er tilføjet jeg gerne vil have den et at gå det en helt anden side, så man er sikker på de ikke reloader siden og beskeden kommer 2 gange.
Avatar billede yHec Novice
20. april 2008 - 11:04 #17
Det var ikke så slemt :-)

Det var ikke så slemt :-)

<?
include("connect.php");
$dato_array = getdate();
$dato = "D. " . $dato_array["mday"] . "/" . $dato_array["mon"] . "-" . $dato_array["year"] . "  -  " . "Kl. " . $dato_array["hours"] . ":" . $dato_array["minutes"] . ":" . $dato_array["seconds"];
// definer sql text
$sql = "insert into gbog values ('', '$_POST[navn]', '$_POST[email]', '$dato' , '$_POST[besked]')";
// udfør sql text
if (mysql_query($sql,$conn)) {
    header("Location: http://www.add_ok.php/");
    exit;

}else{
    $msg="<br><br><h1><center>";
    $msg.="Der skedte en fejl under afsendning af beskeden.";
    $msg.="</h1></center><br><br>";
    $msg.="<br><br>";
    @include("status.php");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>function</title>
</head>

<body>
<?php echo $msg ?>
<form action="fun_del.php" method="post">
</body>
</html>

/y

PS: Jeg har ikke testet løsningen, men det burde virke!
Avatar billede hp-power Nybegynder
20. april 2008 - 14:32 #18
forstadig fejl cannot modify header information
Avatar billede yHec Novice
20. april 2008 - 19:41 #19
Er du sikker på, at du ikke outputter nogetsomhelst??

Der må ikke være et så meget som et mellemrum før location("header..."). Du kan evt tjekke i notepad
Avatar billede hp-power Nybegynder
20. april 2008 - 22:23 #20
det er nok bare mig der er for nynegynder.

har prøvet bare at lave en ny fil med ikke andet i og samme fejl
Avatar billede yHec Novice
20. april 2008 - 22:28 #21
Har du tjekket connect.php? Der må jo heller ikke være noget output i den

/y
Avatar billede hp-power Nybegynder
21. april 2008 - 19:37 #22
ikke hvad jeg ved
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