Avatar billede welcro Nybegynder
22. januar 2006 - 12:58 Der er 17 kommentarer og
1 løsning

flere INCLUDE filer virker ikke??

Jeg har lige prøvet at få include til at sætte indehold på min index.php, men der er noget galt...
insert_main og close virker fint, close og open er lavet ens, men open virker ikke, har også prøvet med include_once og require, samme resultat, open virker, hvis jeg sletter insert_main og close!
kode:
index.php
....
<tr>
      <td><?php include ("insert_main.php"); ?><hr SIZE="4" />         
        <?php include ("open.php"); ?><hr SIZE="4" />
        <?php include ("close.php"); ?></td>
  </tr>

open.php:
<strong>åbn en post</strong>
<form action="<?php print $_server[PHP_SELF] ?>" method="post">
post ID nummer:<br />
<input enctype="text/plain" name="id" size="5"><br />
<input type="submit" value="åbn">
</form>
<?php
$sql = "UPDATE main SET status = 'open' WHERE id = " . mysql_real_escape_string($_POST['id']);
if (mysql_query($sql, $conn)) {echo "post åbnet OK<br /><br />";} else {echo "Fejl ved åbning,<br /> kontroller at id nummeret er korrekt<br /><br />";}
?>
resultat at submit er "post åbnet OK"
hvad er der galt her?
Avatar billede cronaldo Nybegynder
22. januar 2006 - 13:32 #1
Bliver den ikke hentet eller virker form'en ikke?
Avatar billede welcro Nybegynder
22. januar 2006 - 14:33 #2
den bliver hentet, så form'en virker ikke, sammen med de to andre includerede
Avatar billede johan.o Nybegynder
23. januar 2006 - 09:13 #3
Hvis open.php virker når du IKKE inkludere de to andre filer, bliver du nød til at vise hvordan disse to andre filer ser ud.

Derudover tror jeg din form i open.php, selv om den måske virker, bør se sådan her ud :

<form action="<?php print $_SERVER['PHP_SELF'] ?>" method="post">
post ID nummer:<br />
<input type="text" name="id" size="5"><br />
<input type="submit" value="åbn">
</form>

Mvh. Johan
Avatar billede welcro Nybegynder
23. januar 2006 - 20:31 #4
Jeg har ændret min form efter dit forslag Johan, det hjalp desværre ikke, så nu har jeg har prøvet at fjerne insert_main.php, ingen ændring
koden til close.php:
<strong>Luk en post</strong>
<form action="<?php print $_SERVER['PHP_SELF'] ?>" method="post">
post ID nummer:<br />
<input type="text" name="id" size="5"><br />
<input type="submit" value="luk">
</form>
<?php
$sql = "UPDATE main SET status = 'close' WHERE id = " . mysql_real_escape_string($_POST['id']);
if (mysql_query($sql, $conn)) {echo "post lukket OK<br /><br />";} else {echo "Fejl ved lukning,<br /> kontroller at id nummeret er korrekt<br /><br />";}
?>
Min index.php includer også en connect der indeholder:
<?php
$conn = mysql_connect("localhost","zzz","yyy");
mysql_select_db("testdb01",$conn);
?>
Avatar billede johan.o Nybegynder
23. januar 2006 - 21:14 #5
Hvis jeg har forstået det korrekt, så vil du gerne vise både en 'afdeling' til at åbne og en afdeling til at lukke. Du har så 2 forskellige forms til at håndterer disse funktioner. Problemet er, tror jeg, at du bruger samme navn til dine input felter, altså <input name='id'> det skaber lidt problemer. Jeg har lavet det her istedet, det ligner meget det du havde i forvejen, men name attributerne er ændret. Ligeledes er det lavet et lille check af om der er modtaget noget fra formerne. Er det sådan noget du gerne vil have ?

connect.php --> den kender du !

index.php -->

<?php

include("connect.php");

?><html>
<body>

<table>
<tr>
  <td>
  <?php include ("open.php"); ?>
  <hr SIZE="4" />
  <?php include ("close.php"); ?>
  </td>
</tr>
</table>

</body>
</html>

open.php -->

<strong>Åbn en post</strong>
<form action="<?php print $_SERVER['PHP_SELF'] ?>" method="post">
post ID nummer:<br />
<input type="text" name="open_id" size="5"><br />
<input type="submit" value="Åbn">
</form>
<?php

if(isset($_POST['open_id']) && $_POST['open_id']!="") {
$sql = "UPDATE main SET status = 'open' WHERE id = " . mysql_real_escape_string($_POST['id']);

if (mysql_query($sql, $conn)) {
  echo "post åbnet OK<br /><br />"; }
else {
  echo "Fejl ved åbning,<br /> kontroller at id nummeret er korrekt<br /><br />"; } }

?>

close.php -->

<strong>Luk en post</strong>
<form action="<?php print $_SERVER['PHP_SELF'] ?>" method="post">
post ID nummer:<br />
<input type="text" name="close_id" size="5"><br />
<input type="submit" value="Luk">
</form>
<?php

if(isset($_POST['close_id']) && $_POST['close_id']!="") {
$sql = "UPDATE main SET status = 'close' WHERE id = " . mysql_real_escape_string($_POST['id']);

if (mysql_query($sql, $conn)) {
  echo "post lukket OK<br /><br />"; }
else {
  echo "Fejl ved lukning,<br /> kontroller at id nummeret er korrekt<br /><br />"; } }

?>

Lad mig høre mere :)

Mvh. Johan
Avatar billede welcro Nybegynder
23. januar 2006 - 23:04 #6
glæder mig til at prøve din løsning, men jeg får først tid i morgen aften.
Avatar billede welcro Nybegynder
24. januar 2006 - 19:41 #7
Johan, desværre, ingen af dem virker, de returnerer "Fejl ved åbning,<br /> kontroller at id nummeret er korrekt"
Avatar billede johan.o Nybegynder
24. januar 2006 - 20:40 #8
Nej, det gør det da vist ikke...tsk tsk...så kan jeg lære at teste før jeg poster :)

Hvis du udskifter disse to linjer :

open.php -->

$sql="UPDATE main SET status='open' WHERE id='".mysql_real_escape_string($_POST['id'])."'";

close.php -->

$sql="UPDATE main SET status='close' WHERE id='".mysql_real_escape_string($_POST['id'])."'";

Så burde den være der :)

Mvh. Johan
Avatar billede johan.o Nybegynder
24. januar 2006 - 21:06 #9
Nej nej...for s.... Johan...:)

open.php -->

$sql="UPDATE main SET status='open' WHERE id='".mysql_real_escape_string($_POST['open_id'])."'";

close.php -->

$sql="UPDATE main SET status='close' WHERE id='".mysql_real_escape_string($_POST['close_id'])."'";

Naturligvis ....... :) Mvh. Johan
Avatar billede welcro Nybegynder
24. januar 2006 - 22:10 #10
Så virker det,takker og bukker, smid et svar....men gider du lige forklare mig hvad de små forskelle gør???

Mvh
Preben
Avatar billede johan.o Nybegynder
24. januar 2006 - 22:42 #11
Jeg skal prøve :)

Et af problemerne var at du havde 2 input felter med det samme navn i hver deres formular -->

<form><input type='text' name='id'><input type='submit' value='Åbn'></form>
<form><input type='text' name='id'><input type='submit' value='Luk'></form>

Når du så sender en af formularene generer det jo en variabel i PHP der hedder $_POST['id'] men du ved ikke hvor indholdet af variablen stammer fra det kan både være fra 'Åbn' og fra 'Luk'. Så først ændrede jeg dine <input>'s navne således at de er unikke og du kan være sikker på hvor informationerne stammer fra.

Af andre små ændringer til dine forms var :

$_SERVER['PHP_SELF'] du havde skrevet $_server[PHP_SELF], denne returnere ingenting. En pudsig ting i den forbindelse er jo så at action="" rent faktisk sendte formen til index.php Jeg har prøvet at læse mig frem til hvorfor og kan kun komme frem til at det må skyldes at man kan skrive en relativ path, altså en path der tager udgangspunkt i det dokument der sender formen, og når action er tom, opfattes det som index.php. Men jeg gætter her :)

I et <input> objekt havde du skrevet enctype="text/plain". Men enctype hører ikke hjemme i et input felt, den attribut eksisterer ganske enkelt ikke, derimod findes attributten type, som jeg så lavede istedet.

Dine sql sætninger var faktisk iorden, jeg har blot puttet id=$_POST['open_id'] ind i enkelt sistationstegn (').

Jeg sidder lige og kigger på en lidt mere enkel opbygning af ovenstående, men spørg endelig hvis der er noget jeg har glemt eller noget du vil have forklaret yderligere, så vil jeg prøve så godt jeg kan :)

Mvh. Johan
Avatar billede johan.o Nybegynder
24. januar 2006 - 22:46 #12
Nåh ja, så lavede jeg også nogle checks af om der var modtaget noget form data :

if(isset($_POST['open_id']) && $_POST['open_id']!="")

Denne linje checker først om variablen $_POST['open_id'] er sat (modtaget via POST data), dernæst checker den om samme variabel har noget indhold eller om den er tom. Variablen kan jo godt være tom hvis en bruger blot har trykket på knappen uden at skrive noget i feltet.

Mvh. Johan
Avatar billede welcro Nybegynder
24. januar 2006 - 22:59 #13
Tak igen, husk et svar,

/Preben
Avatar billede johan.o Nybegynder
24. januar 2006 - 23:05 #14
Jeg har lavet det her, mest for sjov :), men hvis du kan bruge det så go ahead.

kombi.php -->

<strong>Åbn/Luk en post</strong>
<form action="<?php print $_SERVER['PHP_SELF'] ?>" method="post">
post ID nummer:<br />
<input type="text" name="id" size="5"><br />
<input type="hidden" name="act">
<input type="submit" value="Åbn" onclick="this.form.act.value='open';">
<input type="submit" value="Luk" onclick="this.form.act.value='close';">
</form>
<?php

if(isset($_POST['id']) && preg_match("/^[0-9]+$/", $_POST['id'])) {
if($_POST['act']=="open" || $_POST['act']=="close") {
  $sql="UPDATE main SET status='".mysql_real_escape_string($_POST['act'])."' WHERE id='".mysql_real_escape_string($_POST['id'])."'";
  if($_POST['act']=="close") {
  $msg="post lukket OK<br /><br />"; }
  else {
  $msg="post åbnet OK<br /><br />"; }
  if(mysql_query($sql, $conn)) {
  echo $msg; }
  else {
  echo "Fejl,<br /> kontroller at id nummeret er korrekt<br /><br />"; } } }

?>

index.php -->

<?php

include("connect.php");

?><html>
<body>

<table>
<tr>
  <td>
  <?php include ("kombi.php"); ?>
  </td>
</tr>
</table>

</body>
</html>

Mvh. Johan
Avatar billede johan.o Nybegynder
24. januar 2006 - 23:06 #15
Nåh ja, et svar :)

Hvis du har spørgsmål til ovenstående så skyd :)

Mvh. Johan
Avatar billede johan.o Nybegynder
24. januar 2006 - 23:10 #16
Jeg var lige inde og kigge på din hjemmeside www.eventur.dk.....Wauw det ser dælme spændende ud den tur i har haft der. :)
Avatar billede welcro Nybegynder
24. januar 2006 - 23:27 #17
Ja sådan en tur kan ikke anbefales nok, selv om det er 3½ år siden vi kom hjem, går der nærmest ikke en dag uden at vi tænker på det/ bliver mindet om det...skønt ikke?
hvad angår eventur.dk, er det min første, så alt er HARDKODET!, hold da op den tid /plads jeg kunne have sparet med PHP/MySQL!
/Preben
Avatar billede johan.o Nybegynder
25. januar 2006 - 02:01 #18
Ja, PHP/mySQL kan gøre nogle ting meget lettere :)

Med hensyn til din kode så var jeg lige inde og kigge. Er det med vilje at du ikke har en DOCTYPE deklaration i starten ? Du kan evt. læse om det her :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie60/html/cssenhancements.asp

Og tak for points :) - Mvh. Johan
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