Autor Zpráva
Help pls
Profil *
z linuxsoftu mám tento script: ale jak definuju že jsem admin?
<?
function jeadmin ()
{
  if (!isset($_SESSION["id"])) return false;
  $vysledek=mysql_query("select id from uzivatele where id=".$_SESSION["id"]." and jeadmin=1", $GLOBALS["link"]);
  return (boolean) mysql_num_rows($vysledek);
}  



?>

Moderátor Joker: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
panther
Profil
Help pls:
v DB máš sloupec „jeadmin“, který nabývá hodnot 0/1.

1 ano, 0 ne.
Joker
Profil
Help pls:
V tabulce uživatelů danému uživateli nastavíte jeadmin = 1
help pls
Profil *
nastavil sem si to, ale vypisuje mi to chybu:
Fatal error: Call to undefined function: jeadmin() in /3w/webz.cz/f/five-fingers/admin.php on line 2
admin.php:
<?
  if (!jeadmin()) return;
  echo "Admin menu: ";
  echo "dd";
?>
Joker
Profil
help pls:
Call to undefined function: jeadmin()
Voláte funkcei jeadmin(), která neexistuje.
help pls
Profil *
V Db to mám i funkci takto:
<?
function jeadmin ()
{
  if (!isset($_SESSION["id"])) return false;
  $vysledek=mysql_query("select id from uzivatele where id=".$_SESSION["id"]." and jeadmin=1", $GLOBALS["link"]);
  return (boolean) mysql_num_rows($vysledek);
}  



?>

CREATE TABLE `uzivatele` (
`id` INT NOT NULL AUTO_INCREMENT ,
`jmeno` VARCHAR( 32 ) NOT NULL ,
`mail` VARCHAR( 64 ) NOT NULL ,
`web` VARCHAR( 128 ) NOT NULL ,
`heslo` VARCHAR( 32 ) NOT NULL ,
`prava` TINYINT NOT NULL ,
`jeadmin` TINYINT DEFAULT '0' NOT NULL ,
`pripomenuto` DATETIME NULL ,
`registracedokoncena` TINYINT DEFAULT '0' NOT NULL ,
`jeblokovan` TINYINT DEFAULT '0' NOT NULL ,
PRIMARY KEY ( `id` )
); 
help pls
Profil *
není potřeba to zapsat do session?
sajgon
Profil *
help pls:
Jak píše Joker, voláte fci, která neexistuje. Ověřte, zda je funkce dobře pojmenována, nebo zda, pokud se nachází v jiném souboru, soubor dobře includován...
help pls
Profil *
kontroloval sem func.php, databázy, admin.php ale nic sem nenašel
help pls
Profil *
poraďte prosíím ty věci mám z PHP linuxsoft
AM_
Profil
[#10] help pls
re-post není nic jiného než signál o tom, že moc nevíš, jak se chovat na fóru.


Ta funkce zkrátka definována není, buď ji nemáš includovanou vůbec, nebo až později, než ji voláš. Mělo by to být možná takhle:
<?php //to PHP nevynechávej!
  require_once 'func.php';
  if (!jeadmin()) return;
  echo "Admin menu: ";
  echo "dd";
?>

//edit: omlouvám se za formátování, opraveno
tatyalien
Profil
Z linuxoftu mě tohle prošlo v pohodě, mám z toho taky stránku a žádný zádrhel nelbyl. V indexu si načtu funkce a pak můžu použít kdekolif jeadmin()...

Možná blbůstka,
ale nenačítáte pouze to "menu" jako jednu stránku? (myšleno, že není načteno do indexu, pokud ano, tak si před jeadmin() načtěte tu funkci znovu :-D
help ls
Profil *
píše mi to:
Warning: mysql_connect(): Lost connection to MySQL server during query in /3w/webz.cz/f/five-fingers/func.php on line 5

<?

include "./db.php";

$GLOBALS["db.php"]=mysql_connect(fivefingers, mysql.webzdarma.cz, 1234567899);
mysql_select_db(fivefingers);

function jeadmin ()
{
  if (!isset($_SESSION["id"])) return false;
  $vysledek=mysql_query("select id from uzivatele where id=".$_SESSION["id"]." and jeadmin=1", $GLOBALS["db.php"]);
  return (boolean) mysql_num_rows($vysledek);
}  
?>

Přitom tam db includuju
help ls
Profil *
pomuzete?
Alphard
Profil
Na řádku 5 je nějaká šílená konstrukce. Tohle v návodu určitě nebylo. fivefingers a spol jsou konstanty?
Ono je těžké radit, když se ztrácíte v základech.
help ls
Profil *
Místo:
$GLOBALS["db.php"]=

Tam je:
$GLOBALS["link"]=

Stejně to nejde :)
tatyalien
Profil
Stáhněte si ten zdrojovej příklad a bude to fachat ;-) podle linuxsoftu jsem si to udělal a žádnej problém...
help ls
Profil *
Warning: mysql_connect(): Lost connection to MySQL server during query in /3w/webz.cz/f/five-fingers/func.php on line 5
<?

include "db.php";

$GLOBALS["link"]=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
mysql_select_db(SQL_DBNAME);

function ukazclanek ()
{ 
  if ((string)$_REQUEST["clanek"]<>'') $mujclanek=$_REQUEST["clanek"]; else $mujclanek="uvod";
  if (is_file("./".$mujclanek.".htm")):
    $nazevclanku=$mujclanek.".htm";
    require $nazevclanku;
  elseif (is_file("./".$mujclanek.".php")):
    $nazevclanku=$mujclanek.".php";
    require $nazevclanku;
  else:
    $nazevclanku=$mujclanek.".htm";
    require "notfound.php";
  endif;
}

function iduzivatele ($prezdivka, $heslo)
{
  $vysledek=mysql_query("select id from uzivatele where registracedokoncena=1 and prezdivka='".$prezdivka."' and heslo='".$heslo."'", $GLOBALS["link"]);
  if (mysql_num_rows($vysledek)==0) 
    return false; 
  else {
    $radek = mysql_fetch_array($vysledek);
    return $radek["id"];
  }
}  

function jeadmin ()
{
  if (!isset($_SESSION["id"])) return false;
  $vysledek=mysql_query("select id from uzivatele where id=".$_SESSION["id"]." and jeadmin=1", $GLOBALS["link"]);
  return (boolean) mysql_num_rows($vysledek);
}  

?>


Nechápu proč to nejde, zde máte db.php:
<?php
 $spojeni = mysql_connect("mysql.webzdarma.cz","fivefingers","tajneheslo" ) or die ('<b>Critical error!</b><br>Nepodarilo se pripojit k databazi!');
  mysql_select_db("fivefingers", $spojeni) or die ('Spatne zadana databaze v db.php');
  mysql_query("SET character_set_client=utf8");
  mysql_query("SET character_set_connection=utf8");
  mysql_query("SET character_set_results=utf8");
?>
Koudis
Profil
Zkuste to dát všechno do jednoho scriptu, popřípadě to přepište pomocí MYSQLI .. mě to přes mysqli vždicky jelo ( není chyba na straně serveru ?)...
tady malinká ukázka mysqli
$connetcion = new mysqli("wwwdatabáze", "user", "password", "tabulka");
if( $conection->query("dotaz") === false) // === toto6nost -vyradime t9m 0 a podobne znaky
  {
  echo "nepoda5ilo se vzkonat dotaz ....";
  } else {
             echo "jede to";
             }
             
  

popřípadě můžete spojení zkontrolovat skrze ping (dokáže odhalit i nastabilní spojení)
if ($mysqli->ping()) {
    printf ("Our connection is ok!\n");
    } else {
              printf ("Error: %s\n", $mysqli->error);
              }
              
AM_
Profil
Pokud rozvinu inkluzi db.php:
<?php 
$spojeni = mysql_connect("mysql.webzdarma.cz","fivefingers","tajneheslo" ) or die ('<b>Critical error!</b><br>Nepodarilo se pripojit k databazi!'); 
mysql_select_db("fivefingers", $spojeni) or die ('Spatne zadana databaze v db.php'); 
mysql_query("SET character_set_client=utf8"); 
mysql_query("SET character_set_connection=utf8"); 
mysql_query("SET character_set_results=utf8"); 
?>
<?php //!!! nevynechávat!!!

include "db.php";

$GLOBALS["link"]=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); //to se připojuješ k MySQL podruhé? kde definuješ ty tři konstanty?
mysql_select_db(SQL_DBNAME);



PHP je třeba studovat od začátku, stáhnout někde (zřejmě ještě k tomu těžce amatérský) nějaký skript a metodou pokus/omyl ho upravovat k obrazu svému není správná cesta.
help ls
Profil *
AM:
Udělal jsem to takto:
include "db.php"

$GLOBALS["link"]=mysql_connect(mysql.webzdarma.cz,fivefingers,tajneheslo); //to se připojuješ k MySQL podruhé? kde definuješ ty tři konstanty?
mysql_select_db(fivefingers);

Připojení už jde, ale:
Parse error: parse error in /3w/webz.cz/f/five-fingers/func.php on line 5
help ls
Profil *
nevíte co s tím?
mattyZEM
Profil
Co je na řádku 5 v souboru func.php?
AM_
Profil
help ls
nevíte co s tím?

Opravit syntaktickou chybu na řádku 5 nebo bezprostředně nad ním v souboru func.php . Syntaxi PHP umíš?
Davex
Profil
help ls:
Chybí ti středník za include "db.php" - v příspěvku [#18] ještě byl. Parametry funkcí, které jsou řetězce, uzavírej do apostrofů nebo uvozovek.

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: