Autor Zpráva
Mikeses
Profil *
chat.php
<head>
<style>
a:link, a:visited
 { 
color: #000000;
 text-decoration: none
 }

a:active, a:hover
 {
color: #000000;
 font-weight:none ;
}
</style>

<meta http-equiv="Refresh" content="30;URL=http://localhost/odkazy/chat.php">
</head>

<?php


$conn = @mysql_connect("localhost", "ic_mikeses","Toto si necham pro sebe");
if (!@mysql_select_db("ic_mikeses", $conn))
{ 
  echo "<big><pre><b>Omlouváme se, probíhá údržba serveru...</b></pre></big>";
  exit;
}

define ("ROWS", 20);

$vysledek=mysql_query("select * from chat order by time desc LIMIT 15"); 
while ($zaznam=MySQL_Fetch_Array($vysledek)) 
  {
$chatudaj1=mysql_query("select stat, pohlavi, id, online, admin from redirect where user = '".$zaznam["uzivatel"]."'");
while ($chatudaj=MySQL_Fetch_Array($chatudaj1)) {
$admin1=mysql_query("select admin from redirect where user = '".$_COOKIE["nicknam"]."'");
while ($admin=MySQL_Fetch_Array($admin1)) {
if($admin["admin"] > 0) {
mysql_query("DELETE FROM chat WHERE ide=$id");
echo '<a href="chat.php?fce=del&id='.$zaznam["ide"].'"><img src="../images/no.gif" border="0"></a>'; }
$zaznam["radek"]=strip_tags($zaznam["radek"]);
echo "<font face='Verdana'><small>".$zaznam["cas"]." | "; 
echo "<img src='../images/".$chatudaj["stat"].".gif' border='0'> <img src='../images/".$chatudaj["pohlavi"].".gif' border='0'> <img src='../images/".$chatudaj["online"].".png' border='0'> <a href='../index.php?menu=profil&id=".$chatudaj["id"]."' target='_blank'>";
echo " ".$zaznam["uzivatel"]."</a>";
if($chatudaj["admin"] == 1) { echo ' <img src="../images/1.gif" alt="Administrátor">'; } else if($chatudaj["admin"] == 2) { echo ' <img src="../images/2.gif" alt="Hlavní Administrátor">'; }
echo "<code><font face='Verdana'> | ".$zaznam["radek"]."</small><br></font></code></font>";
}
}
}
?>


Chyba : na každém řádku mi napíše Notice: Undefined variable: id in C:\wamp\www\odkazy\chat.php on line 39 .

Na normalnich hostingech zadne warning nepise, ae jelikoz to chcem mit co nejkvalitnejsi dal sem si web na local kde zobrazuje i warn. PLS help nevim si rady
perun
Profil
1. Veď to máš priamo napísané v tej chybovej hláške: používaš nedefinovanú premennú $id na riadku 39:
mysql_query("DELETE FROM chat WHERE ide=$id");

Kde sa tá premenná berie? Z url? V tom prípade máš vypnuté register_globals. Nezapínaj to, radšej použi $_GET['id']

2. S chybou to nesúvisí, ale skús si ten zdrojový kód aj nejako formátovať. Zle sa to číta.
Mikeses
Profil
zapnul sem register globals a nic .. sem este php lama co s $_GET['id'] ?
Mikeses
Profil
vypada to takto http://mikeses.ic.cz/odkazy/chat.php
AM_
Profil
perun:
V tom prípade máš vypnuté register_globals. Nezapínaj to, radšej použi $_GET['id']

Mikeses:
zapnul sem register globals a nic .. sem este php lama
možná bys měl navštívit večerní školu a zlepšit se ve čtení, perun zcela správně radil nezapínat.

Místo $id máš používat $_GET['id'], to je správný přístup k proměnným z URL. Zkus PHP studovat z nějakého aktuálního zdroje, ne několik let starých skriptů používajících tyhle archaismy. Ale abys nedostával tu notice, musíš nejdřív ověřit, že taková proměnná vůbec existuje. takže něco jako
if ($admin ...){
  if (isset($_GET['id'])){ 
    $id=(int)$_GET['id']; //nejjednodussi ochrana cisla proti sql injection
    mysql_query("DELETE FROM chat WHERE id=$id");
  }
}

Také bych pro mazání souboru zvolil příznačnější název proměnné, třeba "deleteId" místo "id"
Mikeses
Profil
OK funguje thx

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: