• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

europt

Problema num Script!

11 mensagens neste tópico

Boas pessoal, eu tenho um problema com um script que estou a traduzir e a aperfeiçoar!

Quando tento adicionar um ficheiro, dá-me o seguinte erro:

Parse error: syntax error, unexpected T_CATCH, expecting T_STRING in C:\xampp\htdocs\filecabinet\admin\add_file.php on line 5

E A Aqui vai o ficheiro add_file.php

<?php
session_start();
include ("check.php");

function catch($pvar) {
$x = stripslashes($_POST[$pvar]);
$x = str_replace("'",''',$x);
$x = str_replace("\"",'"',$x);
return $x;
}

$name = catch(name);
$cat = catch(category);
$author = catch(author);
$version = catch(version);
$short = catch(short_description);
$long = catch(long_description);
$screen = catch(screenshot);
$file = catch(download);

if (!$name) {
echo "<html><head><script>alert('You did not enter a name!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}
if (!$cat) {
echo "<html><head><script>alert('You did not select a category!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}
if (!$author) {
echo "<html><head><script>alert('You did not enter an author!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}
if (!$short) {
echo "<html><head><script>alert('You did not enter a short description!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}
if (!$long) {
echo "<html><head><script>alert('You did not enter a long description!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}
if (!$file) {
echo "<html><head><script>alert('You did not enter a file download URL!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}
if ($file == "http://") {
echo "<html><head><script>alert('You did not enter a file download URL!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}

if (!$version) { $version = "Not Available"; }
if (!$screen) { $screen = "na"; }
if ($screen == "http://") { $screen = "na"; }
$date = date("d/m/y");

include ("../db.php");
$sql_name_check = mysql_query("SELECT name FROM downloads WHERE name='$name'") or die (mysql_error());
$name_check = mysql_num_rows($sql_name_check);

if ($name_check == 1) {
echo "<html><head><script>alert('File name is already in use!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}
else {
mysql_query("INSERT INTO downloads (cat, name, author, version, short_description, long_description, url_screenshot, url_download, date) VALUES('$cat', '$name', '$author', '$version', '$short', '$long', '$screen', '$file', '$date')") or die (mysql_error());
echo "<script>alert('File $name added!')</script>";
include ("addfile.php");
}
?>

Preciso de Ajuda urgentemente!

Obrigado desde Já!

Cumprimentos ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

"catch" é uma palavra reservada em PHP5. Usa outro nome para a função, deve resolver.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenho mais uma Duvida, ja estive a ver o codigo, mas isto vai mecher com mysql, e como eu nao pesco muito de PHP + MySQL, gostava que me dessem aqui uma ajudinha.....

eu tenho o ficheiro addfile.php, que é simplesmente um formulário:

<?php
session_start();
include ("check.php");
?>
<html>
<head>
<title>BadBlue</title>
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<b>Adicionar Categoria</b>
<br><form name="adcat" action="add_cat.php" method="post">
Nome: <input type="text" name="name" size="30" maxlength="50">
<br><br>
Descrição: <input type="text" name="descricao" size="30" maxlength="150">
<br><br>
<input type="submit" value="Adicionar Categoria">
</form>
</body>
</html>

e depois tenho o ficheiro que este form trabalha, e o que faz realmente a função de adicionar um categoria...

<?php
session_start();
include ("check.php");
include ("../db.php");

$name = $_POST['name'];
$name = stripslashes($name);
$des = $_POST['description'];
$des = stripslashes($des);

if (!$name) {
echo "<html><head><script>alert('You did not enter a category name!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}
if (!$des) {
echo "<html><head><script>alert('You did not enter a category description!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}

$sql_cat_check = mysql_query("SELECT name FROM categories WHERE name='$name'") or die (mysql_error());
$cat_check = mysql_num_rows($sql_cat_check);

if ($cat_check == 1) {
echo "<html><head><script>alert('Category name is already in use!')</script></head><body onload=javascript:history.go(-1)> </body></html>";
exit();
}
else {
$sql = mysql_query("INSERT INTO categories (name, description) VALUES('$name', '$des')");
echo "<script>alert('Category $name added!')</script>";
include ("addcat.php");
}
mysql_close();
?>

A questão é: Este pequeno script apenas adiciona CATEGORIAS, e eu queria saber, se é possível fazer uma Alteração para que crie tambem SUB-CATEGORIAS!

Desde Já Obrigado!

Espero Resposta :P

Cumprimentos :confused:


0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tudo o que tens deste género:

$name = $_POST['name'];

$name = stripslashes($name);

Deveria ser:

$name = mysql_real_string_escape($_POST['name']);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hummm...eu testei isso, mas nao deu resultado...quer dizer resultado ate tem, é pena é ser um erro...

:confused:

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A questão é: Este pequeno script apenas adiciona CATEGORIAS, e eu queria saber, se é possível fazer uma Alteração para que crie tambem SUB-CATEGORIAS!

É, podes por exemplo criar uma nova tabela na BD com as subcategorias e alterar o script para trabalhar com ela também. Nada como ler tutoriais e a documentação do PHP e MySQL, e se procurares neste fórum vais encontrar também recomendações de livros que te podem ajudar a "pescar mais do assunto".

hummm...eu testei isso, mas nao deu resultado...quer dizer resultado ate tem, é pena é ser um erro...

Toda a gente se engana, o que o djthyrax quis dizer é:

$name = mysql_real_escape_string($_POST['name']);

:confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Thanks Bjecas, vou investigar, aliás já comprei o livro Learning PHP e MYSQL do Michele Davis e Jon Phillips!

Mas ele ainda nao chegou!

Cumprimentos!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

acham que valeu a pena comprar?

Cumprimentos

OFFTOPIC: djthyrax, tu nao tás inscrito no somxl?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

OFFTOPIC: djthyrax, tu nao tás inscrito no somxl?

NOOXML? Tou.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora