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

Sign in to follow this  
europt

Problema num Script!

Recommended Posts

europt

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 ;)

Share this post


Link to post
Share on other sites
jreis

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


"Pensa positivo: tudo pode piorar"

Share this post


Link to post
Share on other sites
europt

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:


Share this post


Link to post
Share on other sites
djthyrax

Tudo o que tens deste género:

$name = $_POST['name'];

$name = stripslashes($name);

Deveria ser:

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


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
europt

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

:confused:

Cumprimentos

Share this post


Link to post
Share on other sites
Bjecas

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:

Share this post


Link to post
Share on other sites
europt

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!

Share this post


Link to post
Share on other sites
djthyrax

Boa compra europt. :confused:


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
europt

acham que valeu a pena comprar?

Cumprimentos

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

Share this post


Link to post
Share on other sites
djthyrax

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

NOOXML? Tou.

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.