Autor Zpráva
bobo
Profil
Dobrý večer,
Chtěl bych poprosit o pomoc.
Mám 2 soubory,v jednom se generuje heslo a druhý povoluje stahování na základě vlozeneího hesla.
jak to mám udělat aby se vygenerované heslo vložilo do daného pole v souboru2?

Kamil


sobour1 (generátor)
<?
mt_srand((double)microtime()*1000000);

function generuj_heslo($delka) {
$moznosti='ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
'0123456789' ;


$heslo="";
while(strlen($heslo) < $delka) {
$heslo .= substr($moznosti, mt_rand(0, strlen($moznosti) - 1), 1);
}
return($heslo);
}
$heslo=generuj_heslo(6);
echo $heslo;
?>

=================================

soubor2

---------

<?
If ($HTTP_POST_VARS["heslo"]=="heslo"):
session_start();
session_register("user_register");
$user_register = "ANO";
header("location:downloads/neco.rar");

else:
if (isset($HTTP_POST_VARS["heslo"])) echo "<br><b><font size=4 color=#66FFFF>Vložili jste nesprávný kód !!!</font></b><br>" ;
endif;
?>


===========================================================


sobory jsou zde :

soubor1:

soubor2
bobo
Profil
Pradíte někdo?
děkuji předem.
bobik
K
Profil *
uloz si ho treba do session nebo si ho posli POSTem
DaveLister
Profil *
uloz si ho treba do session nebo si ho posli POSTem
mam takovej blbej dotaz.... jak neco poslu POSTem bez formuláře?
djlj
Profil
DaveLister
Třeba pomocí CURL funkcí.
bobo
Profil
No,jste moc hodní,ale v php dost kloužu.... :-(

nenapsal by mi někdo nějaký příklad?
bobo
Profil
Potřeboval bych se něčeho chytit...
K
Profil *
http://interval.cz/clanky/zaciname-pouzivat-sessions-v-php/
bobo
Profil
K díky http://interval.cz/clanky/zaciname-pouzivat-sessions-v-php/ tohle jsem studoval,ale nějak se nemůžu dobrat toho, co a kam mám vložit.... :-(
bobo
Profil
Může mi to někdo ukázat názorně?
K
Profil *
Myslim, ze by si se mel zamyslet co vlastne chces aby to delalo, jelikoz jsem konecne pochopil v cem je problem. Nastuduj si neco o formularich, posilani dat z formularu pomoci metody POST. Tot vse.
bobo
Profil
K

Je to tak,že vygenerovaný kód ze souboru gen.phpby se měl převest do pole heslo v soboru log.php a zároveň jej dostane uživatel třeba na email,nebo mobil.
Tímto vygenerovanám kódem je pak zpřítupněn soubor pro stažení.takže každý uživatel má kód jedinečný který se už neopakuje.
K
Profil *
bobo
Jak jsem jiz psal - pochopil jsem naprosto presne co to ma delat.
Budu hodny a poradim.
Staci logicky premyslet - to heslo vygenerujete a zobrazite ho nejakemu uzivateli - ten ho pak musi nekam napsat aby se mu zpristupnilo stazeni. Tim ze ho nekam zapise a klikne na "odeslat" se vam to heslo odesle na script log.php. Staci pridat dalsi hidden prvek do formulare do ktereho zapisete heslo a nechate si ho poslat s tim heslem co zada uzivatel.
bobo
Profil
je mi líto,jsem uplně vedle..... vůbec to nechápu....
randy
Profil *
Nevim jestli jsem uplne pochopil tvuj umysl, ale tady neco mas... napsal jsem to ted v rychlosti, tak nevim jestli to bude dobre, kdyby to neslo, hod to sem, jeste se na to podivam. Jinak samozrejme by to asi bylo jednodussi udelat v jednom souboru, ale patrne mas nejakej duvod k tomu mit to ve dvou souborech :-)

<?php

// soubor 1

session_start();

mt_srand((double)microtime()*1000000);

function generuj_heslo($delka)
{
  $moznosti='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

  $heslo = "";

  while(strlen($heslo) < $delka)
  {
    $heslo .= substr($moznosti, mt_rand(0, strlen($moznosti) - 1), 1);
  }

  return($heslo);
}

$_SESSION['password'] = generuj_heslo(6);

echo 'Vaše heslo je: '.$heslo;

header('Location: soubor2.php');
?>



<?php

// Soubor 2

session_start();

if(isset($_POST['submit']))
{
  if(!empty($_POST['form_pass']))
  {
    if(isset($_SESSION['password']) && $_POST['form_pass'] == $_SESSION['password'])
    {
      $file = "neco.rar";
  
      header('Content-Description: File Transfer'); 
      header('Content-Type: application/force-download'); 
      header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
  
      readfile($file);
    }
    else
    {
      echo '<br /><b><font size="4" color="#66FFFF">Vložil(a) jste nesprávný kód!!!</font></b><br />'."\n";
    }
  }
  else
  {
    echo '<br /><b><font size="4" color="#66FFFF">Nevyplnil(a) jste kód!!!</font></b><br />'."\n";
  }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta http-equiv="content-language" content="cs" />
  <title>Stažení souboru</title>
</head>

<body>

  <form>
    <input type="text" name="form_pass" />
    <input type="submit" name="submit" value="Stáhnout soubor" />
  </form>

</body>

</html>
randy
Profil *
Hmm, hned jsem par chyb nasel sam :-) sorry.


Oprava:

<?php

// soubor 1

session_start();

mt_srand((double)microtime()*1000000);

function generuj_heslo($delka)
{
  $moznosti='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

  $heslo = "";

  while(strlen($heslo) < $delka)
  {
    $heslo .= substr($moznosti, mt_rand(0, strlen($moznosti) - 1), 1);
  }

  return($heslo);
}

$_SESSION['password'] = generuj_heslo(6);

echo 'Vaše heslo je: '.$heslo.'<br />';
echo 'Za pět vteřin budete přesměrováni.';
echo '<meta http-equiv="Refresh" content="5; url=soubor2.php" />';
?>



<?php

// Soubor 2

session_start();

if(isset($_POST['submit']))
{
  if(!empty($_POST['form_pass']))
  {
    if(isset($_SESSION['password']) && $_POST['form_pass'] == $_SESSION['password'])
    {
      $file = "neco.rar";
  
      header('Content-Description: File Transfer'); 
      header('Content-Type: application/force-download'); 
      header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
  
      readfile($file);
    }
    else
    {
      echo '<br /><b><font size="4" color="#66FFFF">Vložil(a) jste nesprávný kód!!!</font></b><br />'."\n";
    }
  }
  else
  {
    echo '<br /><b><font size="4" color="#66FFFF">Nevyplnil(a) jste kód!!!</font></b><br />'."\n";
  }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta http-equiv="content-language" content="cs" />
  <title>Stažení souboru</title>
</head>

<body>

  <form action="" method="post">
    <input type="text" name="form_pass" />
    <input type="submit" name="submit" value="Stáhnout soubor" />
  </form>

</body>

</html>
bobo
Profil
Díky moc, zkusím to hnedle... :-)
bobo
Profil
randy
tak jsem to zkoušel porůznu.
ale jelokož to nezobrazí vygenerované heslo,nemohu ho zadat.

uzivatel vlastně soubor 1 (gen.php) ani nepotřebuje vidět.
např.
Co uvidí je index http://php-testy.ic.cz/index2.php pro ukázku jsem vygenerovaná hesla zvyditelnil.
normálně ale videt nebudou.protože generátor bude samostatný soubor
a po zadání hesla (kódu) který mu přišel na email,nebo mobil ho zadá a začne stahování.
jde o to,aby heslo např. 111111 nebylo v souboru1 (log.php) natvrdo.Aby mel každy uřivatel,pro dané stahování unikátní vtupní kód který mu vygeneruje soubor 1 (gen.php).ten může být spuštěn třeba mobilem nebo kliknutím na "stahuj" jakmile se stránka opět načte.
když příjde jeden uživate 2x vždy bude mít jiný kód.
Viz zde: http://php-testy.ic.cz/index2.php
bobo
Profil
Tak uč jsem to myslím vyřešil.

randy,diky tobe,

Ještě jednou díky moc.

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