Avatar billede fiil123 Nybegynder
11. januar 2006 - 19:27 Der er 30 kommentarer og
1 løsning

Kalender system Ret/slet funktion

Jeg er ved at lave et kalender system til en side. Men er godt nok ramlet i en mur af håbløshed... jeg kan ikke rigtigt beskriv problemet for jeg aner ikke hvad der går galt. i stedet for at vise noget viser den bare hvid skærm som om PHP filen er tom. Håber virkelig at der er nogen der kan gennemskue hvad der er galt i koden!  Fil med kode ligger her http://www.kfiil.com/mix/rs_kalender.rar !
Filen i "aktion" kan ses her http://morsoegarden.dk/php/admin/rs_kalender_kfiil.php
Avatar billede rednex Nybegynder
11. januar 2006 - 19:38 #1
Prøv at smide disse linier i toppen af scriptet:

error_reporting(E_ALL);
ini_set('display_errors', '1');

Så skulle den gerne sprøjte fejlmeddelelser ud :o)
Avatar billede fiil123 Nybegynder
11. januar 2006 - 19:43 #2
Der sker stadig nada
Avatar billede rednex Nybegynder
11. januar 2006 - 19:58 #3
Jeg har hentet det kode du postede, og jeg får følgende meddelelse:

Parse error: parse error, expecting `','' or `';'' in rs_kalender.php on line 25

Jeg kan godt nok ikke lige få øje på noget deromkring, men jeg tænker på om det måske har noget med strengens længde at gøre. Når jeg skal udskrive så store blokke plejer jeg at bruge denne konstruktion:

echo<<<EOF

Alt det tekst du gerne vil have udskrevet med $variabler og det hele.

EOF; // Afslutter udskrivningen
Avatar billede fiil123 Nybegynder
11. januar 2006 - 20:03 #4
Hvis du bruger mit link, får du så også fejlen?? Øhh det EOF ting der, er ikke lige helt med på hvordan du mener
Avatar billede rednex Nybegynder
11. januar 2006 - 20:08 #5
Nej, på din server er error_reporting slået fra i php.ini. Når der så er syntax-fejl bliver scriptet ikke kørt (og dermed heller ikke de linier som slår error reporting til).

I stedet for at bruge

echo "
En eller anden kæmpe blok text, html osv
";

Kan du bruge
echo<<<EOF
en eller anden kæmpe blok text og html osv. Den udskriver alt indtil den møder 'EOF;' på en linie for sig.
EOF;

Fordelen er, at du slipper for at escape alle dine gåseøjne, og stadig kan indsætte dine variabler med $variabel.
Avatar billede fiil123 Nybegynder
11. januar 2006 - 20:31 #6
Daym vist jeg ikke var slået fra... fedt set...
Nu har jeg skrevet:

echo<<<EOF "
lalalalala php lalalala
" EOF;

så kommer den med fejlen
Parse error: syntax error, unexpected T_SL in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/rs_kalender_kfiil.php on line 18
Avatar billede rednex Nybegynder
11. januar 2006 - 22:33 #7
Du skal ikke have gåseøjne med når du bruger det. Det skal skrives ligesom jeg gjorde i eksemplet med echo<<<EOF på en linie for sig selv, og EOF; på en linie for sig selv.
Avatar billede fiil123 Nybegynder
12. januar 2006 - 15:50 #8
Så har jeg prøvet:
echo<<<EOF
<form action='kalender_ret.php' method='post'>
Overskrift:
osv osv osv
EOF;
}
?>
Så kommer fejlen

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/rs_kalender_kfiil.php on line 20
Avatar billede rednex Nybegynder
12. januar 2006 - 15:56 #9
Kan du ikke lige prøve at poste din kode her. Det er lidt svært at hjælpe når man arbejder i blinde :o)
Avatar billede fiil123 Nybegynder
12. januar 2006 - 16:22 #10
Jeg har prøvet lige frem og tilbage nu og fået noget til at virke, det ligger her:
http://www.morsoegarden.dk/php/admin/rs-kalender_prove.php
koden er :

<?php
   
$conn = mysql_connect("localhost", "morsoegarden_dk", "XZDXzC2Y");
mysql_select_db("morsoegarden_dk");
$result = mysql_query("select * from kalender");
while ($row = mysql_fetch_array($result)) {
echo "
<form action='kalender_ret.php' method='post'>
<table id='boks1' width='498px'>
<tr>
<td><div id='indhold'><p>Overskrift:</p></td><td><input type='text' value=\"".$row['overskrift']."\" name='overskrift' /></div></td>
</tr>
<tr>
<td colspan='2'><div id='indhold'><input type='hidden' name='id' value=\"".$row['id']."\"></div></td>
</tr>
<tr>
<td><div id='indhold'><p>Beskrivelse:</p></td><td><textarea name='beskrivelse' cols='33' rows='2' maxlength=100>".$row['beskrivelse']."</textarea></div></td>
</tr>



//her der er fjernet noget



<tr>
<td><p><div id='indhold'>Skal aktiviteten slettes?</div></p></td><td>
<select name='slet'>
<option value='0'>NEJ
<option value='1'>JA
</select>
</tr>
<tr>
<td></td><td><input type='submit' value='Rediger / Slet'></td>
</tr>
</table>
</form><hr>";
}
?>

Jeg fik det til at virke ved at fjerne dette fra koden:

<tr>
    <td><div id='indhold'>Dato (DD-MM-YYYY)
    <input type='text' size="2" value=\"".$row['day']."\" name='day' />
    <input type='text' size="2" value=\"".$row['month']."\" name='month' />
    <input type='text' size="2" value=\"".$row['year']."\" name='year' /></td>
</div></tr>
<tr>
    <td><div id='indhold'>Slutdato (DD-MM-YYYY)
    <input type='text' size="2" value=\"".$row['day']."\" name='day' />
    <input type='text' size="2" value=\"".$row['month']."\" name='month' />
    <input type='text' size="2" value=\"".$row['year']."\" name='year' /></td>
</div></tr>

Dette skulle helst gøre så man kan rette i datoen men det er åbenbart her det går galt?
Avatar billede rednex Nybegynder
12. januar 2006 - 16:39 #11
Hvad problemet med den originale kode er, ved jeg virkelig ikke. Det virker som om der mangler der noget (backslash, punktum eller gådeøjne), men jeg synes ikke jeg kan få øje på hvor.

Jeg har lavet det her til dig. Det er testet og det virker.

while ($row = mysql_fetch_array($result)){
echo<<<EOF
<form action="kalender_ret.php" method="post">
Overskrift:
<input type="text" value="{$row['overskrift']}" name="overskrift" />
<input type="hidden" name="id" value="{$row['id']}">
<br>
Beskrivelse:
<textarea name="beskrivelse" cols="33" rows="2" maxlength="100">{$row['beskrivelse']}</textarea>
<br>
Dato (DD-MM-YYYY)
    <input type="text" size="2" value="{$row['day']}" name="day" />
    <input type="text" size="2" value="{$row['month']}" name="month" />
    <input type="text" size="2" value="{$row['year']}" name="year" />
<br>
Slutdato (DD-MM-YYYY)
    <input type="text" size="2" value="{$row['day']}" name="day" />
    <input type="text" size="2" value="{$row['month']}" name="month" />
    <input type="text" size="2" value="{$row['year']}" name="year" />
<br>
Skal aktiviteten slettes?
<select name="slet">
<option value="0">NEJ
<option value="1">JA
</select>
<input type="submit" value="Rediger / Slet">

</form>
EOF;
}
Avatar billede rednex Nybegynder
12. januar 2006 - 16:43 #12
Det er den modificerede udgave af den fil du lagde op i det originale spørgsmål, så der mangler godt nok tabellen. Når du skal tilgå et array skal det smides ind i {}, så php ved hvad der er en del af variabelnavnet og hvad der hører til teksten.
Avatar billede fiil123 Nybegynder
12. januar 2006 - 16:45 #13
Det ser ud til at virke som det skal... Nu opstår problemet så bare i den næste fil:

Warning: mysql_query() [function.mysql-query]: Access denied for user: 'morsoegarden.dk@localhost' (Using password: NO) in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/kalender_ret.php on line 23

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/kalender_ret.php on line 23

Warning: mysql_query() [function.mysql-query]:
Access denied for user: 'morsoegarden.dk@localhost' (Using password: NO) in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/kalender_ret.php on line 26

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/kalender_ret.php on line 26
Aktiviteten er opdateret i kalenderen, gå tilbage til -Skriv i kalender Eller til Admin Delen

filen er kalender_ret, koden er:
<html>
<head>
<title>Behandler 8 sek</title>
<meta http-equiv="refresh" content="8; url=index.php">
<link rel="stylesheet" type="text/css" href="../style/style.css">
<link href="../../css.css" rel="stylesheet" type="text/css">
<?php include('conn.txt'); ?>
</head>


<?php

$day = $_REQUEST["day"];
$month = $_REQUEST["month"];
$year = $_REQUEST["year"];
$daye = $_REQUEST["daye"];
$monthe = $_REQUEST["monthe"];
$yeare = $_REQUEST["yeare"];
$overskrift = $_REQUEST["overskrift"];
$beskrivelse = $_REQUEST["beskrivelse"];

$insertSQL = "insert into $kalender (day, month, year, daye, monthe, yeare, overskrift, beskrivelse) values ('$day', '$month', '$year', '$daye', '$monthe', '$yeare', '$overskrift', '$beskrivelse')";
mysql_query($insertSQL);

$updateSQL = "UPDATE $kalender SET day='$day', month='$month', year='$year', daye='$daye', monthe='$monthe', yeare='$yeare', overskrift='$overskrift', beskrivelse='$beskrivelse' WHERE id = $id";
mysql_query($updateSQL);

if ($slet==1) {

conn();

$resultat = mysql_query("delete from $gruppe where id = $id limit 1");

}

echo "Aktiviteten er opdateret i kalenderen, gå tilbage til -<a href='kal-skriv.php'>Skriv i kalender</a> Eller til <a href='index.php'>Admin Delen</a>";




?>

</html>
Avatar billede rednex Nybegynder
12. januar 2006 - 16:52 #14
OK, der er lige et par ting du skal skynde dig at gøre.

Send mig en mail på exp@tgltech.dk ASAP - jeg vil helst ikke uddybe her.
Avatar billede fiil123 Nybegynder
12. januar 2006 - 17:04 #15
Er den modtaget?
Avatar billede rednex Nybegynder
12. januar 2006 - 17:07 #16
Jeps, og den er også besvaret :o)
Avatar billede fiil123 Nybegynder
12. januar 2006 - 17:16 #17
<?php

$day = $_REQUEST["day"];
$month = $_REQUEST["month"];
$year = $_REQUEST["year"];
$daye = $_REQUEST["daye"];
$monthe = $_REQUEST["monthe"];
$yeare = $_REQUEST["yeare"];
$overskrift = $_REQUEST["overskrift"];
$beskrivelse = $_REQUEST["beskrivelse"];

$insertSQL = "insert into $kalender (day, month, year, daye, monthe, yeare, overskrift, beskrivelse) values ('$day', '$month', '$year', '$daye', '$monthe', '$yeare', '$overskrift', '$beskrivelse')";
mysql_query($insertSQL);

$updateSQL = "UPDATE $kalender SET day='$day', month='$month', year='$year', daye='$daye', monthe='$monthe', yeare='$yeare', overskrift='$overskrift', beskrivelse='$beskrivelse' WHERE id = $id";
mysql_query($updateSQL);

if ($slet==1) {

conn();

$resultat = mysql_query("delete from $gruppe where id = $id limit 1");

}

echo "Aktiviteten er opdateret i kalenderen, gå tilbage til -<a href='kal-skriv.php'>Skriv i kalender</a> Eller til <a href='index.php'>Admin Delen</a>";




?>
Hvordan flytte conn();?
Avatar billede rednex Nybegynder
12. januar 2006 - 17:19 #18
Flyt conn(); op i toppen af scriptet, så du får oprettet forbindelsen til databasen før du bruger den første gang (mysql_query($insertSQL);).
Avatar billede rednex Nybegynder
12. januar 2006 - 17:22 #19
Altså sådan her:
<?php

conn();

$day = $_REQUEST["day"];
$month = $_REQUEST["month"];
$year = $_REQUEST["year"];
$daye = $_REQUEST["daye"];
$monthe = $_REQUEST["monthe"];
$yeare = $_REQUEST["yeare"];
$overskrift = $_REQUEST["overskrift"];
$beskrivelse = $_REQUEST["beskrivelse"];

$insertSQL = "insert into $kalender (day, month, year, daye, monthe, yeare, overskrift, beskrivelse) values ('$day', '$month', '$year', '$daye', '$monthe', '$yeare', '$overskrift', '$beskrivelse')";
mysql_query($insertSQL);

$updateSQL = "UPDATE $kalender SET day='$day', month='$month', year='$year', daye='$daye', monthe='$monthe', yeare='$yeare', overskrift='$overskrift', beskrivelse='$beskrivelse' WHERE id = $id";
mysql_query($updateSQL);

if ($slet==1) {

$resultat = mysql_query("delete from $gruppe where id = $id limit 1");

}

echo "Aktiviteten er opdateret i kalenderen, gå tilbage til -<a href='kal-skriv.php'>Skriv i kalender</a> Eller til <a href='index.php'>Admin Delen</a>";

?>
Avatar billede rednex Nybegynder
12. januar 2006 - 17:24 #20
Og så ved jeg ikke lige hvor du får $slet fra. Mon ikke det skal være $_REQUEST['slet'] ?
Avatar billede fiil123 Nybegynder
12. januar 2006 - 17:26 #21
<html>
<head>
<title>Behandler 8 sek</title>
<meta http-equiv="refresh" content="8; url=index.php">
<link rel="stylesheet" type="text/css" href="../style/style.css">
<link href="../../css.css" rel="stylesheet" type="text/css">
<?php include('conn.php'); ?>
</head>


<?php
conn();
$day = $_REQUEST["day"];
$month = $_REQUEST["month"];
$year = $_REQUEST["year"];
$daye = $_REQUEST["daye"];
$monthe = $_REQUEST["monthe"];
$yeare = $_REQUEST["yeare"];
$overskrift = $_REQUEST["overskrift"];
$beskrivelse = $_REQUEST["beskrivelse"];

$insertSQL = "insert into $kalender (day, month, year, daye, monthe, yeare, overskrift, beskrivelse) values ('$day', '$month', '$year', '$daye', '$monthe', '$yeare', '$overskrift', '$beskrivelse')";
mysql_query($insertSQL);

$updateSQL = "UPDATE $kalender SET day='$day', month='$month', year='$year', daye='$daye', monthe='$monthe', yeare='$yeare', overskrift='$overskrift', beskrivelse='$beskrivelse' WHERE id = $id";
mysql_query($updateSQL);

if ($slet==1) {



$resultat = mysql_query("delete from $gruppe where id = $id limit 1");

}

echo "Aktiviteten er opdateret i kalenderen, gå tilbage til -<a href='kal-skriv.php'>Skriv i kalender</a> Eller til <a href='index.php'>Admin Delen</a>";




?>

</html>

Er koden nu... og den brokker sig ikke mere... men der sker tilgengæld også nada!
Avatar billede rednex Nybegynder
12. januar 2006 - 17:37 #22
Så vidt jeg kan se er der flere variabler som ikke er defineret nogen steder. F.eks. er $kalender (bruges til at angive tabellen i dine queries) ikke defineret nogen steder. Det samme gælder $id (brugt i din update sql).

En god idé er at rette
mysql_query($xxx);
til
mysql_query($xxx) or die(mysql_error());

Så skulle den gerne fortælle dig når der er fejl i dine SQL sætninger.
Avatar billede fiil123 Nybegynder
12. januar 2006 - 17:40 #23
Prøvede at rettet
mysql_query($xxx) or die(mysql_error());
og fik fejlen: Query was empty
Avatar billede rednex Nybegynder
12. januar 2006 - 17:42 #24
$xxx repreæsenterer jo så den query du gerne vil udføre. I dit script er det jo så $insertSQL og $updateSQL
Avatar billede fiil123 Nybegynder
12. januar 2006 - 17:49 #25
<?php
conn();
$id = $_REQUEST['id'];
$day = $_REQUEST["day"];
$month = $_REQUEST["month"];
$year = $_REQUEST["year"];
$daye = $_REQUEST["daye"];
$monthe = $_REQUEST["monthe"];
$yeare = $_REQUEST["yeare"];
$overskrift = $_REQUEST["overskrift"];
$beskrivelse = $_REQUEST["beskrivelse"];

$insertSQL = "insert into kalender (day, month, year, daye, monthe, yeare, overskrift, beskrivelse) values ('$day', '$month', '$year', '$daye', '$monthe', '$yeare', '$overskrift', '$beskrivelse')";
mysql_query($insertSQL) or die(mysql_error());


$updateSQL = "UPDATE kalender SET day='$day', month='$month', year='$year', daye='$daye', monthe='$monthe', yeare='$yeare', overskrift='$overskrift', beskrivelse='$beskrivelse' WHERE id = $id";
mysql_query($updateSQL) or die(mysql_error());

if ($slet==1) {



$resultat = mysql_query("delete from $gruppe where id = $id limit 1");

}

echo "Aktiviteten er opdateret i kalenderen, gå tilbage til -<a href='kal-skriv.php'>Skriv i kalender</a> Eller til <a href='index.php'>Admin Delen</a>";




?>
Dette er koden nu. Nu kan jeg rette i det, for det meste det virker lidt rodet og prøv at kigge på http://www.morsoegarden.dk/php/admin/rs-kalender.php det gentager det som om det bliver skrevet ind i kalenderen igen!
Avatar billede fiil123 Nybegynder
12. januar 2006 - 17:51 #26
Og jeg kan ikke slette i det!
Avatar billede rednex Nybegynder
12. januar 2006 - 17:58 #27
Det er altså ikke fordi jeg ikke vil hjælpe dig, men det er jo ikke meningen at jeg skal skrive dit script. Prøv at kigge en ekstra gang på det kode du har, og se om ikke du kan finde ud af hvorfor det går galt.

Et lille hint ang. slet - min kommentar fra 12/01-2006 17:24:28
Avatar billede fiil123 Nybegynder
12. januar 2006 - 18:05 #28
det er helt oki... det e r ikke mig der har skrevet scriptet der problemet ligger... jeg har stort set kun erfaring i c++
Avatar billede fiil123 Nybegynder
12. januar 2006 - 18:07 #29
Men du har jo faktisk svaret på mit spørgsmål så smid lige et svar også
Avatar billede rednex Nybegynder
12. januar 2006 - 18:37 #30
Du får lige et svar :o)

Det var nu ikke for at skræmme dig væk, men meningen med exp.dk er at man kan få hjælp hvis man er kørt fast, og på den måde lære af det. Når du nu har noget erfaring fra C++, så skulle jeg mene at du burde kunne gennemskue det kode du har hvis du gjorde et forsøg.

Du er selvfølgelig velkommen til at spørge igen hvis du kører fast, men prøv først om du ikke selv kan gennemskue det.
Avatar billede fiil123 Nybegynder
12. januar 2006 - 18:55 #31
Kan godt gennemskue den og kan godt se hvad den gør... men kan ikke gennemskue hvor det lige er det går galt... Men vil lige prøve mig lidt frem!!
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