Autor Zpráva
XAMPP
Profil *
Ahoj, potřebuju poradit. Nevím, proč mi tento kod nefunguje.
  $email1 = mysql_real_escape_string($_POST["email"]);
  $heslo = mysql_real_escape_string($_POST["heslo"]);
  Vypis();  
  function PrevedNaMala($email1)
  {     
    return strtolower($email1);
  }
  function Vypis()
  {
    echo PrevedNaMala();
  }

Teoreticky by to mělo fungovat, jenže to nic nedělá. prosím poradte mi. Dík
Tori
Profil
Vždyť té funkci PrevedNaMala() nepředáváte žádnou hodnotu, tak co má převádět?
XAMPP
Profil *
No a jak by to teda mělo vypadat? s funkcemi teprve začínám, jenom tak experimentuju :)
BuGeR
Profil
$email1 = mysql_real_escape_string($_POST["email"]);
$heslo = mysql_real_escape_string($_POST["heslo"]);
Vypis($email1);  
function PrevedNaMala($email1) {     
   return strtolower($email1);
}
function Vypis($text) {
   echo PrevedNaMala($text);
}

.. Jinak, myslím, že funkce "Vypis" je zbytečná, pokud jí používáte jenom kvůli "echa".
XAMPP
Profil *
Nene funkce výpis je jenom tak na zkoušku jestli to funguje, místo ní tam bude jiná funkce, která potom bude pracovat s PrevedNaMala
Jinak díky
XAMPP
Profil *
Omlouvám se že otravuju s takovou ptákovinou, ale snažím se ty funkce naučit. napadlo mě Místo funkce Vypis dát funkci, ktera bude ten mail ukládat do db ale nějak mi to nejde:
$email1 = mysql_real_escape_string($_POST["email"]);
 ulozDb($email1);
function PrevedNaMala($email1) {     
   return strtolower($email1);
}

function ulozDb($text){
  $zapis = "INSERT INTO login(Jmeno,Email)
VALUES('Jmeno',".PrevedNaMala($text).")";
$uloz=mysql_query($zapis) or die(mysql_error());
}

Můžete mi prosím někdo vysvětlit to volání těch funkcí? třeba jak to bylo v tom předchozím případě, měl jsem function Vypis($text) a potom jsem volal Vypis($email1). moc nerozumím tomu kam kterou proměnnou dávat. ještě jednou dík
BuGeR
Profil
Máš chybu v syntaxi - konkrétně v uvozovkách.
$email1 = mysql_real_escape_string($_POST["email"]);
ulozDb($email1);
function PrevedNaMala($email1) {     
   return strtolower($email1);
}

function ulozDb($text){
   $zapis = "INSERT INTO login(Jmeno,Email) VALUES('Jmeno', '".PrevedNaMala($text)."')";
   $uloz = mysql_query($zapis) or die(mysql_error());
}
XAMPP
Profil *
No, ale stejně, nefunguje to. To Jmeno se uloží, ale to z funkce PrevedNaMala ne. nevím v čem je problém. takto ten skript ted vypadá:
<?php
require "db.php";
$email1 = mysql_real_escape_string($_POST["email"]);
ulozDb($email1);
function PrevedNaMala($email1) {     
   return strtolower($email1);
}

function ulozDb($text){
   $zapis = "INSERT INTO login(Jmeno,Email) VALUES('Jmeno', '".PrevedNaMala($text)."')";
   $uloz = mysql_query($zapis) or die(mysql_error());
}
?>
Tori
Profil
XAMPP:
Nechte si vypsat ten SQL dotaz, jestli je v pořádku (mezi ř.10 a 11). Pokud by náhodou v $_POST['email'] byla diakritika, tak fce strtolower ji může zmršit -> použijte mb_strtolower.
edit: ten problém se strtolower se týká vícebajtových znaků. Zkoušela jsem teď "příliš žluťoučkého koně". Ač se v manuálu píše, že strtolower je "multi-byte safe", v UTF-8 se znaky s diakritikou po převodu zobrazily jako otazníčky, v cp1250 je funkce (správně) ignorovala.
XAMPP
Profil *
Díky, ono to funguje i s strtolower, jediný problém který jsem měl byl s xamppem. ted jsem to dal na server a už to funguje a na xamppu nic
Tori
Profil
XAMPP:
jediný problém který jsem měl byl s xamppem
Někde v serverovém logu nebyla žádná chyba (třeba Notice)?
XAMPP
Profil *
No na xamppu právě nebyla, ale na serveru jo
Majkl578
Profil
XAMPP:
byl s xamppem
Hodí se zmínit, že XAMPP a PHP jsou dvě naprosto odlišné věci. Říkat tedy, že script nefunguje v XAMPPu je nicneříkající.

XAMPP:
ale na serveru jo
A jaká?

Tori:
Ač se v manuálu píše, že strtolower je "multi-byte safe"
Kde? V manuálu se jen píše, že je binary-safe.
Tori
Profil
Majkl578:
V manuálu se jen píše, že je binary-safe.
Omlouvám se, máte pravdu, spletlo se mi to dohromady.

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:

0