PHP Error

ivanov123

Registered
дава грешка Error от време на време, не мога да схвана логика защо я дава .... някои път дава грешка друг път не ///

---------------------------------------------------------------------------------------------



<?php

$server="localhost";
$user="imeeeeee";
$pass="VUHuPhu6";
$db="imetonabd";
$con=mysql_connect("$server", "$user", "$pass") or die("Error 1");
mysql_select_db($db,$con) or die("Error 2");
$chars="set character set cp1251";mysql_query($chars);
$mysql_db=mysql_query("SELECT * FROM `chat` ORDER BY id DESC LIMIT 0,20") or die("Error 3");
while($row=mysql_fetch_array($mysql_db))
{
$data=$row['data'];
$chas=$row['chas'];
$username=$row['username'];
$msg=$row['msg'];
$username2=htmlspecialchars("$username", ENT_QUOTES);
$msg2=htmlspecialchars("$msg", ENT_QUOTES);

echo "$data: | $chas: <b> $username2</b>: $msg2<br>";
}

if (isset($_POST['submit'])) {
$username=$_POST['username'];
$msg=$_POST['msg'];
$ip=$_SERVER['REMOTE_ADDR'];
$data=date("j F - Y");
$chas=date("g:i:s a");
if($username==""){ die(""); }
if($msg == ""){ die(""); }
$ins = mysql_query("INSERT INTO `chat` (`username`, `msg`, `ip`, `data`, `chas`) VALUES ('$username', '$msg', '$ip', '$data', '$chas')") or die("error");
echo "<meta http-equiv='refresh' content='0; url=index.php?p=guestbook'>";
}
?>
 
gamena007 каза:
А каква грешка ти дава?

то не е точно грешка
на страницата ми изписва Error

нищо друго
това става когато натисна бутона за изпращане
 
Какъв бутон за изпращане натискаш ако не е тайна ;]
 
PHP_Masters каза:
ами $user="imeeeeee";

не имеееее...
a а трябва да е root

а и каква е тая парола...

е не е това грешката !

нали си работи скрипта записват се съобщенията .....


и това

$server="localhost";
$user="imeeeeee"; - така съм кръстил усера на базата - imeeeeee - това проблем ли е?
$pass="VUHuPhu6"; - какво й е на паролата ?
$db="imetonabd"; - името на базата данни ?
 
$ins = mysql_query("INSERT INTO `chat` (`username`, `msg`, `ip`, `data`, `chas`) VALUES ('$username', '$msg', '$ip', '$data', '$chas')") or die("error");
баш еррор си е, и не може да запише някакви данни в базата данни - затова слагаш
$ins = mysql_query("INSERT INTO `chat` (`username`, `msg`, `ip`, `data`, `chas`) VALUES ('$username', '$msg', '$ip', '$data', '$chas')") or die(mysql_error());
и при следващата грешка може да ни я покажеш.
 
Нямаш addslashes. Най-вероятно при постове с ' дава грешката
Така го направи:
Код:
$username=addslashes($_POST['username']);
$msg=addslashes($_POST['msg']);
$ip=$_SERVER['REMOTE_ADDR'];
$data=date("j F - Y");
$chas=date("g:i:s a");
if($username==""){ die(""); }
if($msg == ""){ die(""); }
$ins = mysql_query("INSERT INTO `chat` (`username`, `msg`, `ip`, `data`, `chas`) VALUES ('$username', '$msg', '$ip', '$data', '$chas')") or die(mysql_error());

А това при изкарването да е така:
Код:
$data=$row['data'];
$chas=$row['chas'];
$username=stripslashes($row['username']);
$msg=stripslashes($row['msg']);
$username2=htmlspecialchars("$username", ENT_QUOTES);
$msg2=htmlspecialchars("$msg", ENT_QUOTES);
 
Replace каза:
$ins = mysql_query("INSERT INTO `chat` (`username`, `msg`, `ip`, `data`, `chas`) VALUES ('$username', '$msg', '$ip', '$data', '$chas')") or die("error");
баш еррор си е, и не може да запише някакви данни в базата данни - затова слагаш
$ins = mysql_query("INSERT INTO `chat` (`username`, `msg`, `ip`, `data`, `chas`) VALUES ('$username', '$msg', '$ip', '$data', '$chas')") or die(mysql_error());
и при следващата грешка може да ни я покажеш.

това го направих

но имам едно поле в което всеки може да си въвежда каквото си иска

сега не може да има две едни и същи неща изписва:

Duplicate entry 'нещо' for key 2

--------------------------------

и това дава: Duplicate entry 'нещо' for key 2


alex95_bg_2 каза:
Нямаш addslashes. Най-вероятно при постове с ' дава грешката
Така го направи:
Код:
$username=addslashes($_POST['username']);
$msg=addslashes($_POST['msg']);
$ip=$_SERVER['REMOTE_ADDR'];
$data=date("j F - Y");
$chas=date("g:i:s a");
if($username==""){ die(""); }
if($msg == ""){ die(""); }
$ins = mysql_query("INSERT INTO `chat` (`username`, `msg`, `ip`, `data`, `chas`) VALUES ('$username', '$msg', '$ip', '$data', '$chas')") or die(mysql_error());

А това при изкарването да е така:
Код:
$data=$row['data'];
$chas=$row['chas'];
$username=stripslashes($row['username']);
$msg=stripslashes($row['msg']);
$username2=htmlspecialchars("$username", ENT_QUOTES);
$msg2=htmlspecialchars("$msg", ENT_QUOTES);
 
Код:
<?php

$server="localhost";
$user="imeeeeee";
$pass="VUHuPhu6";
$db="imetonabd";
$con=mysql_connect("$server", "$user", "$pass") or die(mysql_error());
mysql_select_db($db,$con) or die(mysql_error());
$chars="set character set cp1251";mysql_query($chars);
$mysql_db=mysql_query("SELECT * FROM `chat` ORDER BY id DESC LIMIT 0,20") or die(mysql_error());
while($row=mysql_fetch_array($mysql_db))
{
$data=$row['data'];
$chas=$row['chas'];
$username=$row['username'];
$msg=$row['msg'];
$username2=htmlspecialchars("$username", ENT_QUOTES);
$msg2=htmlspecialchars("$msg", ENT_QUOTES);

echo "$data: | $chas: <b> $username2</b>: $msg2<br>";
}

if (isset($_POST['submit'])) {
$username=$_POST['username'];
$msg=$_POST['msg'];
$ip=$_SERVER['REMOTE_ADDR'];
$data=date("j F - Y");
$chas=date("g:i:s a");
if($username==""){ die(""); }
if($msg == ""){ die(""); }
$ins = mysql_query("INSERT INTO `chat` (`username`, `msg`, `ip`, `data`, `chas`) VALUES ('$username', '$msg', '$ip', '$data', '$chas')") or die(mysql_error());
echo "<meta http-equiv='refresh' content='0; url=index.php?p=guestbook'>";
}
?>
и кажи когато ти излезе грешка каква е
и си дай структурата на таблицата
 
UNIQUE не е поле, като отвориш таблицата под нея излиза едно Indexes (Индекси), намираш полето което ти прави проблем, най-вероятно с индекс UNIQUE или PRIMARY и цъкаш до него Drop (Изтрий)
 
направих това което каза @raiden и не дава че се дублират

сега само да видя дали няма да даде някоя друга грешка
 
Код:
CREATE TABLE IF NOT EXISTS `chat` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(32) NOT NULL,
  `msg` varchar(255) NOT NULL default '0',
  `ip` varchar(255) default NULL,
  `data` text NOT NULL,
  `chas` text NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
в предна тема ти намерих таблицата напрвия така

Код:
	CREATE TABLE IF NOT EXISTS `chat` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(32) NOT NULL,
  `msg` varchar(255) NOT NULL default '0',
  `ip` varchar(255) default NULL,
  `data` text NOT NULL,
  `chas` text NOT NULL,
  PRIMARY KEY  (`id`),
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
 
Грешка

SQL заявка:

CREATE TABLE IF NOT EXISTS `chat` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`username` varchar( 32 ) NOT NULL ,
`msg` varchar( 255 ) NOT NULL default '0',
`ip` varchar( 255 ) default NULL ,
`data` text NOT NULL ,
`chas` text NOT NULL ,
PRIMARY KEY ( `id` ) ,
) ENGINE = MYISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT =0


MySQL отговори:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0' at line 9
 

Back
Горе