PHP premenná stratí hodnotu – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

PHP premenná stratí hodnotu – PHP – Fórum – Programujte.comPHP premenná stratí hodnotu – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Peter
~ Anonymní uživatel
2551 příspěvků
31. 1. 2015   #1
-
0
-

Ahojte, učím sa PHP a narazil som na jeden problém. Z URL adresy si potrebujem uložiť premennú a porovnať ju so stringom. Tak najskôr si ju uložím, skúsim vypísať, všetko ide, potom nasleduje jedna podmienka po ktorej je premenná var prázdna, viete mi prosím povedať ,čo sa deje? Prečo je to tak?

Ďakujem.

Tu je kód

<?php

$conn = mysql_connect($host,$user,$pass);

mysql_select_db($db);
mysql_set_charset("utf8");


$var=$_GET["m"];    //tu si nastavim premenenu

echo $var; //tu ju vypíše vporiadku

if(isset($_POST['meno'])){
    echo "ok"; //splní podmienku
    
    $meno = $_POST['meno'];
    $heslo = $_POST['heslo'];
    

    echo $var; //tu nevipíše nič
    if (isset($var)) {   //aj test potvrdí, že nie je nastavená
        echo "This var is set so I will print.";  //keďže sa sem nedostane
    }

    
    if(strcmp("x",$var)==0){  // potrebujem ju tu porovnať, ale už je obsah premennej var prázdy
       //...
    }
    elseif(strcmp("y",$var)==0){
       // ...
    }

}

?>

Nahlásit jako SPAM
IP: 178.143.99.–
Reklama
Reklama
Peter
~ Anonymní uživatel
2551 příspěvků
31. 1. 2015   #2
-
0
-

Ešte jedna vec, ktorú som mohol spomenúť. Pod týmto php kódom je normálne HTML stránka v nej je 

<form method="post" action="login.php">

Meno: <input type="text" name="meno" /><br /><br />
Heslo: <input type="password" name="heslo" /><br /><br />
<input type="submit" name="prihlasit" value="Prihlásiť" />

</form>
Nahlásit jako SPAM
IP: 178.143.99.–
lukas.balaz0
Super člen
31. 1. 2015   #3
-
0
-

#2 Peter
Ja som to vyskúšal a všetko ide ako má. Ale na tvojom kóde mi nie je jasná jedna vec: Keď odošleš formulár, tak budeš mať údaje len v POST. Nič v GET. Môžeš vysvetliť, na čo to "m" v GET slúži ? Lebo podľa kódu, čo si sem dal, to tam vôbec nebude.

Nahlásit jako SPAM
IP: 80.242.41.–
Kit+11
Guru
31. 1. 2015   #4
-
0
-

#1 Peter
Chybí ti definice hodnoty $_GET['m']. Nemáš ji ve formu.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Peter
~ Anonymní uživatel
2551 příspěvků
31. 1. 2015   #5
-
0
-

#4 Kit
Už som na to prišiel. :-) Problém bol v tom, že vo <form method="post" action="login.php"> som zavolal len login.php, potrebujem si tam nejako uložiť hodnotu z $_GET["m"]; .

Ako spavím definíciu vo form?

Ďakujem pekne

Nahlásit jako SPAM
IP: 178.143.99.–
lukas.balaz0
Super člen
31. 1. 2015   #6
-
0
-

#5 Peter
Prečo to nedáš tiež cez POST ??
Ak to musí byť cez GET, ale nie je to niečo, čo zadá uživateľ ale vypočíta PHP, tak: 

<form method="post" action="login.php?m=123">


prípadne: 

<form method="post" action=<?php echo "login.php?m=".$premenna;?>>
Nahlásit jako SPAM
IP: 80.242.41.–
Kit+11
Guru
31. 1. 2015   #7
-
0
-

#5 Peter
Co máš v té proměnné m? Obávám se, že si koleduješ o průšvih.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
lukas.balaz0
Super člen
31. 1. 2015   #8
-
0
-

#7 Kit
No veď aj ja si myslím ... prečo niečo neposlať POSTom, ak sa dá ?

Nahlásit jako SPAM
IP: 80.242.41.–
Kit+11
Guru
31. 1. 2015   #9
-
0
-

#8 lukas.balaz
Pokud v tom má id uživatele, tak je to jedno...

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Peter
~ Anonymní uživatel
2551 příspěvků
31. 1. 2015   #10
-
0
-

Ide o to, robím webovú aplikáciu, mám úvodnú stránku a dva typy používateľov, to je index.php. Po tom ako si vyberie jedného , tak si do URL uložím informáciu, koho si vybral, pripojím to k login.php , teda to vyzerá asi tak, že login.php?m=xyz alebo login.php?m=abc.

A obsah lohin.php som uviedol v prvom, respektíve v druhom príspevku.

Tam sa mi to uloží cez $_GET["m"], používateľ zadá prihlasovacie údaje a potom stlačí tlačítko Prihlásiť.

Takto vyzerá ten form - <form method="post" action="login.php">

Tu je problém, lebo tam zavolám iba login.php a ja tam potrebujem mať login.php?m=xyz , respektíve druhú voľbu.
Potrebujem to takto oddeliť, lebo potom ide porovnanie stringov a select z tabulky. Na užívateľov mám dve rôzne tabuľky, každý má iné parametre.


Už to ide, pomohlo toto <?php "login.php?m=".$_GET["m"];?>
Ďakujem pekne.

PHP vidím prvý týždeň a tak sa učím, neviem s tým robiť dobre ešte.

Nahlásit jako SPAM
IP: 178.143.99.–
peter
~ Anonymní uživatel
2551 příspěvků
2. 2. 2015   #11
-
0
-

Tak, login informace se ukladaji do $_SESSION, abys je prave nemusel tak krkolome prenaset pres formulare.
http://php.net/…on-start.php - example 1 a 2, jsou 2 stranky, jedna do session uklada, druha vypisuje.

Do post bych to dal takto, nebo misto echo $m; tam dej echo $_GET['m'];. Ja bych ta tu action s get zapisem nespolehal. U nekterych prohlizecu s tim byl pred par lety problem, ze to ignorovali. Pro domaci pouziti samozrejme ok.

<?php
$m = isset($_POST['m']) ? $_POST['m'] : isset($_GET['m']) ? $_GET['m'] : ''; // prvni se pokusi ziskat z post a kdyz to nebude, tak zkusi get.
?>
<form method=post>
<input type=hidden name=m value="<?php echo $m;?>">
Nahlásit jako SPAM
IP: 2001:718:2601:1f7:f1a5:d9...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 35 hostů

Podobná vlákna

Premenna a delegat — založil Tayson

Prazdna premenna — založil normi

Globalna premenna — založil Grungy

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý