Avatar billede webcreator Nybegynder
03. juni 2003 - 23:35 Der er 29 kommentarer og
1 løsning

Fejl i mit script ?

Jeg kan ikke se min fejl i nedenstående :

<?php

session_start();
$nick = $_SESSION[nick];
$rum = $_SESSION[rum];
$chatusers = $_SESSION[chatusers];
$tid = time();

$conn = mysql_connect("localhost", "jemt", "mscool") or die(mysql_error());
mysql_select_db("jemt") or die(mysql_error());
$insertSQL = mysql_query("UPDATE $chatusers SET nick='$nick', time='$tid' WHERE nick = '$nick'");

mysql_close($conn);


$conn = mysql_connect("localhost", "jemt", "mscool") or die(mysql_error());
mysql_select_db("jemt");
$r = mysql_query("SELECT * FROM $chatusers");

while ($row = mysql_fetch_array($s)) {

$tid = $row["time"];
$tid = $row["time"]-60;
$nut = time();

if ($tid >= $nut) {

$conn = mysql_connect("localhost", "jemt", "mscool") or die(mysql_error());
mysql_select_db("jemt") or die(mysql_error());

$delete = mysql_query("DELETE FROM $chatusers WHERE nick = '$nick'") or die(mysql_error());

mysql_close($conn);

} exit;


?>
Avatar billede taskmgr Nybegynder
03. juni 2003 - 23:36 #1
Får du en fejlmeddelelse?
Avatar billede webcreator Nybegynder
03. juni 2003 - 23:36 #2
Ups, 2x mysql_close($conn);
Avatar billede webcreator Nybegynder
03. juni 2003 - 23:36 #3
2 sek..
Avatar billede webcreator Nybegynder
03. juni 2003 - 23:37 #4
Forkert kode :-)

Rigtige :

<?php

session_start();
$nick = $_SESSION[nick];
$rum = $_SESSION[rum];
$chatusers = $_SESSION[chatusers];
$tid = time();

$conn = mysql_connect("localhost", "jemt", "mscool") or die(mysql_error());
mysql_select_db("jemt") or die(mysql_error());
$insertSQL = mysql_query("UPDATE $chatusers SET nick='$nick', time='$tid' WHERE nick = '$nick'");
$r = mysql_query("SELECT * FROM $chatusers");

/*

while ($row = mysql_fetch_array($s)) {

$tid = $row["time"];
$tid = $row["time"]-60;
$nut = time();

if ($tid >= $nut) {

$delete = mysql_query("DELETE FROM $chatusers WHERE nick = '$nick'") or die(mysql_error());

} exit;

*/

mysql_close($conn);

?>
Avatar billede eagleeye Praktikant
03. juni 2003 - 23:37 #5
Du ligger ind i  $r  men looper  på  $s  det skal være samme.

$r = mysql_query("SELECT * FROM $chatusers");

while ($row = mysql_fetch_array($s)) {
Avatar billede webcreator Nybegynder
03. juni 2003 - 23:37 #6
Jeg får fejl i helt andet sted i mit dokument, men har fundet ud af fejlen ligger i mellem /*  og */
Avatar billede webcreator Nybegynder
03. juni 2003 - 23:39 #7
Eagle > Virkede ikke 100 % :-)

Parse error: parse error, unexpected $ in /web/www/frac/users/jemt/chat/chat/show.php on line 83

Så mange linier har jeg ikke. Men længere nede i koden (efter lidt html) har jeg :

<?php

$conn = mysql_connect("localhost", "jemt", "mscool") or die(mysql_error());
mysql_select_db("jemt");
$s = mysql_query("SELECT * FROM $rum where nick = '$nick' or til = '$nick' or til = 'Alle' order by id DESC LIMIT 10");
$t = mysql_query("SELECT nick FROM $chatusers");

echo "
<table width=740 cellspacing=0 cellpadding=0>
<tr>
  <td width=100 style=\"border-bottom: 1px solid #000000\"><b>Fra</b></td>
  <td width=100 style=\"border-bottom: 1px solid #000000\"><b>Til</b></td>
  <td width=540 style=\"border-bottom: 1px solid #000000\"><b>Besked</b></td>
</tr> ";

while ($row = mysql_fetch_array($s)) {

if ($row["til"] == "$nick") {

echo "
<tr>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top>" . $row["nick"] . "</td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top><b><i>" . $row["til"] . "</i></b></td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\">" . $row["besk"] . "</td>
</tr> ";

} else {

echo "
<tr>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top>" . $row["nick"] . "</td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top>" . $row["til"] . "</td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\">" . $row["besk"] . "</td>
</tr> ";

} # afslutter if

}  # afslutter while

echo "</table>";

?>
Avatar billede taskmgr Nybegynder
03. juni 2003 - 23:39 #8
Alt mellem /* og */ bliver ikke parset
Avatar billede webcreator Nybegynder
03. juni 2003 - 23:40 #9
Task > Ved jeg .. Det var for at kunne vise jer det.
Avatar billede taskmgr Nybegynder
03. juni 2003 - 23:41 #10
Ok, skulle bare lige være sikker :)
Avatar billede eagleeye Praktikant
03. juni 2003 - 23:43 #11
Der må da være en som er linje 83 ?
Avatar billede detox Nybegynder
03. juni 2003 - 23:45 #12
men det skal vel stadig være:
while ($row = mysql_fetch_array($r)) {
og ikke $s som eagleeye påpegede.
Avatar billede webcreator Nybegynder
03. juni 2003 - 23:45 #13
Min while-sætning laver den jo nok ?

Linie 83 i mit dokument er slutningen : </html>
Avatar billede eagleeye Praktikant
03. juni 2003 - 23:46 #14
detox>> Læs hvad jeg skrev og ikke kun koden.
Avatar billede detox Nybegynder
03. juni 2003 - 23:48 #15
ok, jeg er lidt bagud
Avatar billede eagleeye Praktikant
03. juni 2003 - 23:52 #16
Prøv at tjekke du har nok slut tuborg  }

Fejlen kommer vist når der mangler sådan en.
Avatar billede eagleeye Praktikant
03. juni 2003 - 23:54 #17
I det føste kode kunne der nemlig godt mangle sådan en:

while ($row = mysql_fetch_array($s)) {      <<------ 1. start {

$tid = $row["time"];
$tid = $row["time"]-60;
$nut = time();

if ($tid >= $nut) {      <<------ 2. start {

$conn = mysql_connect("localhost", "jemt", "mscool") or die(mysql_error());
mysql_select_db("jemt") or die(mysql_error());

$delete = mysql_query("DELETE FROM $chatusers WHERE nick = '$nick'") or die(mysql_error());

mysql_close($conn);

} exit;            <<------ 1. slut }
Avatar billede webcreator Nybegynder
04. juni 2003 - 00:06 #18
Har du ret i. Men det løste ikke helt problemet. Jeg har gjordt lidt ved min kode, så hele dokumentet ser nu sådan ud :

<?php

session_start();
$nick = $_SESSION[nick];
$rum = $_SESSION[rum];
$chatusers = $_SESSION[chatusers];
$tid = time();

$conn = mysql_connect("localhost", "jemt", "mscool") or die(mysql_error());
mysql_select_db("jemt") or die(mysql_error());
$insertSQL = mysql_query("UPDATE $chatusers SET nick='$nick', time='$tid' WHERE nick = '$nick'");

$r = mysql_query("SELECT * FROM $chatusers");
$s = mysql_query("SELECT * FROM $rum where nick = '$nick' or til = '$nick' or til = 'Alle' order by id DESC LIMIT 10");

while ($row = mysql_fetch_array($r)) {

$tid = $row["time"];
$tid = $row["time"]-60;
$nut = time();

if ($tid >= $nut) {

$delete = mysql_query("DELETE FROM $chatusers WHERE nick = '$nick'") or die(mysql_error());

} exit;

}

?>

<html>
<head>
<title>Chat</title>
<meta http-equiv="refresh" content="10">

<body leftmargin=7 topmargin=7 rightmargin=7 bottommargin=7>

<?php

echo "
<table width=740 cellspacing=0 cellpadding=0>
<tr>
  <td width=100 style=\"border-bottom: 1px solid #000000\"><b>Fra</b></td>
  <td width=100 style=\"border-bottom: 1px solid #000000\"><b>Til</b></td>
  <td width=540 style=\"border-bottom: 1px solid #000000\"><b>Besked</b></td>
</tr> ";

while ($row = mysql_fetch_array($s)) {

if ($row["til"] == "$nick") {

echo "
<tr>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top>" . $row["nick"] . "</td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top><b><i>" . $row["til"] . "</i></b></td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\">" . $row["besk"] . "</td>
</tr> ";

} else {

echo "
<tr>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top>" . $row["nick"] . "</td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top>" . $row["til"] . "</td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\">" . $row["besk"] . "</td>
</tr> ";

} # afslutter else>

} # afslutter while>

echo "</table>";

mysql_close($conn);

?>

</body>
</html>


Siden er tom ved load.
Avatar billede webcreator Nybegynder
04. juni 2003 - 00:11 #19
points sat op..
Avatar billede eagleeye Praktikant
04. juni 2003 - 00:13 #20
Tom? Hivs du tager view source er den så helt tom eller der noget af dette HTML kode?
<html>
<head>
<title>Chat</title>
<meta http-equiv="refresh" content="10">
Avatar billede eagleeye Praktikant
04. juni 2003 - 00:16 #21
Jeg smutter i seng nu.
Hvis den er helt blank selv i view source går der noget galt i den føste <?php del. Hvis HTML koden er der går der måske noget galt i bunden. Og du sikker på Session variable er tilgængelige? evt lige tjekke:
echo $chatusers ;
Avatar billede webcreator Nybegynder
04. juni 2003 - 00:17 #22
vil jeg gøre :)
Avatar billede webcreator Nybegynder
04. juni 2003 - 00:36 #23
Hm, jeg har endnu engang ændret lidt i koden, og rettet lidt fejl. Ny kode :

<?php

session_start();
$nick = $_SESSION[nick];
$rum = $_SESSION[rum];
$chatusers = $_SESSION[chatusers];
$tid = time();

echo "$nick , $rum , $chatusers , $tid";

$conn = mysql_connect("localhost", "jemt", "mscool") or die(mysql_error());
mysql_select_db("jemt") or die(mysql_error());
$insertSQL = mysql_query("UPDATE $chatusers SET nick='$nick', time='$tid' WHERE nick = '$nick'");

$r = mysql_query("SELECT * FROM $chatusers") or die(mysql_error());
$s = mysql_query("SELECT * FROM $rum where nick = '$nick' or til = '$nick' or til = 'Alle' order by id DESC LIMIT 10") or die(mysql_error());

while ($row = mysql_fetch_array($r)) {

$tid = $row["time"]-60;
$nut = time();

if ($tid >= $nut) {

# $delete = mysql_query("DELETE FROM $chatusers WHERE nick = '$nick'") or die(mysql_error());
mysql_query("DELETE FROM $chatusers WHERE nick = '$nick'") or die(mysql_error());

} exit;

} # afslutning på while>

echo "
<html>
<head>
<title>Chat</title>
<meta http-equiv=refresh content=10>

<body leftmargin=7 topmargin=7 rightmargin=7 bottommargin=7>

<table width=740 cellspacing=0 cellpadding=0>
<tr>
  <td width=100 style=\"border-bottom: 1px solid #000000\"><b>Fra</b></td>
  <td width=100 style=\"border-bottom: 1px solid #000000\"><b>Til</b></td>
  <td width=540 style=\"border-bottom: 1px solid #000000\"><b>Besked</b></td>
</tr> ";

while ($row2 = mysql_fetch_array($s)) {

if ($row2["til"] == "$nick") {

echo "
<tr>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top>" . $row2["nick"] . "</td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top><b><i>" . $row2["til"] . "</i></b></td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\">" . $row2["besk"] . "</td>
</tr> ";

} else {

echo "
<tr>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top>" . $row2["nick"] . "</td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\" valign=top>" . $row2["til"] . "</td>
  <td style=\"border-bottom: 1px dashed #C0C0C0\">" . $row2["besk"] . "</td>
</tr> ";

} # afslutter else>

} # afslutter while>

echo "
</table>
</body>
</html> ";

mysql_close($conn);

?>
Avatar billede webcreator Nybegynder
04. juni 2003 - 00:37 #24
Siden er næsten tom. Det er kun "echo "$nick , $rum , $chatusers , $tid";" der udskrives.
Avatar billede webcreator Nybegynder
04. juni 2003 - 00:38 #25
Så fejlen må ske omkring den første while eller if sætning.
Avatar billede webcreator Nybegynder
04. juni 2003 - 00:39 #26
Øh, kan man have en if i en while ?
Avatar billede webcreator Nybegynder
04. juni 2003 - 00:43 #27
Hvis jeg fjerner hele while-sætningen, så virker det perfekt. Tror det er min "exit" jeg ikke kan bruge der.
Avatar billede webcreator Nybegynder
04. juni 2003 - 00:45 #28
Det var min exit der drillede :)
Avatar billede webcreator Nybegynder
04. juni 2003 - 01:06 #29
Ah, min kode virker 100 % perfekt nu. Jeg har ikke helt styr på, hvornår exit kan bruges.

Tak for hjælpen alligevel :)
Avatar billede webcreator Nybegynder
04. juni 2003 - 01:07 #30
.
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

IT-JOB