Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  php algajale märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
mine lehele eelmine  1, 2, 3  järgmine
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 02.09.2007 16:18:49 vasta tsitaadiga

Ma tean ,et neid on nats vähe,parandan millagi ära.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 02.09.2007 16:47:25 vasta tsitaadiga

ma eeldan et sul on siis php poole pealt samuti ära piiratud märkide kogus ?
kui ei, siis saab ikkagist sassi pommitada su lehe icon_smile.gif
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 14.09.2007 21:25:11 vasta tsitaadiga

Äkki keegi oskab aidata, mis moodi ma need pildid lehele kuvama saan, kui nad on sinna massivi ära topitud.
Praegu olen abiga nii plaju valmis saanud:
$kaust="failid/";
$ava=opendir($kaust);
while ($lisa=readdir($ava)){
if ($file="." && $file="..") {
$files[]=$lisa;
}
}
closedir($ava);
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 14.09.2007 21:38:03 vasta tsitaadiga

karlcrutch kirjutas:

Äkki keegi oskab aidata, mis moodi ma need pildid lehele kuvama saan, kui nad on sinna massivi ära topitud.
Praegu olen abiga nii plaju valmis saanud:
php:
  1.  
  2. $kaust="failid/";
  3. $ava=opendir($kaust);
  4. while ($lisa=readdir($ava)){
  5.     if ($file="." && $file="..") {
  6.             $files[]=$lisa;
  7.     }
  8. }
  9. closedir($ava);
  10.  


hetkel teeb ta sul kontrolli nii:
if ($file="." && $file="..")
kui: määrame $file väärtuseks "." JA määrame $file väärtuseks "..", siis
peaks aga olema: kui: $file väärtus ei ole "." või $file väärtus ei ole "..", siis
nüüd aga on probleem kuna sul ei ole üldse $file varem deklareeritud, mistõttu ei saa ta selle väärtust üldse kontrollidagi
ehk siis: $file peaks asendama $lisa'ga

php:
  1.  
  2. $kaust="failid/";
  3. $ava=opendir($kaust);
  4.  
  5. while ($lisa=readdir($ava)){
  6.     if ($lisa != "." || $lisa != "..") {
  7.         $files[]=$lisa;
  8.     }
  9. }
  10. closedir($ava);
  11.  
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 14.09.2007 22:48:44 vasta tsitaadiga

jup...

= on omistamine
== on võrdlemine

et pmst selliselt käib muidu asi... (noh "ei ole võrdne" on !=. Hüüumärk keerab võrdluse pmst tagurpidi. pmst võis vist kirjutada ka !==)

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 117 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 108
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 14.09.2007 22:58:06 vasta tsitaadiga

mikk36 kirjutas:
kui: määrame $file väärtuseks "." JA määrame $file väärtuseks "..", siis
peaks aga olema: kui: $file väärtus ei ole "." või $file väärtus ei ole "..", siis

icon_rolleyes.gif
Sellisel kujul pole sellest if-lausest mingit kasu.
Kui faili nimi ei ole "." ega "..", siis lisatakse see massiivi.
Kui faili nimi on ".", siis ($file != ".") on false ja ($file != "..") on true ja false || true = true, ehk siis lisatakse massiivi.
Kui faili nimi on "..", siis ($file != ".") on true ja ($file != "..") on false ja true || false = true ja jälle lisatakse massiivi.
Välja ei filtreerita midagi.
Õige on ikkagi (($file != ".") && ($file != ".."))
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 15.09.2007 14:05:11 vasta tsitaadiga

DoS kirjutas:
mikk36 kirjutas:
kui: määrame $file väärtuseks "." JA määrame $file väärtuseks "..", siis
peaks aga olema: kui: $file väärtus ei ole "." või $file väärtus ei ole "..", siis

icon_rolleyes.gif
Sellisel kujul pole sellest if-lausest mingit kasu.
Kui faili nimi ei ole "." ega "..", siis lisatakse see massiivi.
Kui faili nimi on ".", siis ($file != ".") on false ja ($file != "..") on true ja false || true = true, ehk siis lisatakse massiivi.
Kui faili nimi on "..", siis ($file != ".") on true ja ($file != "..") on false ja true || false = true ja jälle lisatakse massiivi.
Välja ei filtreerita midagi.
Õige on ikkagi (($file != ".") && ($file != ".."))
yayy damn
selle || asemel peaks jah olema &&
tänud icon_smile.gif

eks õhtul oli pea väheke väsinud juba
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 15.09.2007 17:42:33 vasta tsitaadiga

ok ja mis moodi ma need kuvama saan lehel?
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 15.09.2007 19:07:20 vasta tsitaadiga

Pead sealt masiivist $files[] need aadressid IMG tagide vahele echo´' ma.
echo '<img src="failid/'.$files[0].'" height="" width="">';
Se arv asenda muutujaga ja kord nii mitu korda, kui palju sul pilte kaustas on. Muidugi võid pildid välja lasta juba kaustalugemise käigus ja kui rohkem neid kuvada vaja pole, võid ka selle masiivi tegemata jätta. (ära unusta kausta teed ette kirjutamast, kui failid samas kaustas ei asu)


$kaust="failid/";
$ava=opendir($kaust);

while ($lisa=readdir($ava)){
    if ($lisa != "." || $lisa != "..") {
   echo '<img src="failid/'.$lisa.'" height="" width="">';   

    }
}
closedir($ava);

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 16.09.2007 10:45:14 vasta tsitaadiga

Ma ei saa ikka pihta :S
Kood on selline:
$kaust="failid/";
$ava=opendir($kaust);
while ($lisa=readdir($ava)){
if ($lisa !="." || $lisa !="..") {
$files[]=$lisa;
echo '<img src="failid/'.$files[0].'" height="100" width="200">';
}
}
closedir($ava);

Kaustas failid on fail nimega piko.jpg, aga ta ikka ei näita seda seal lehel.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 16.09.2007 11:13:20 vasta tsitaadiga

$kaust="failid/";
$ava=opendir($kaust);

while ($lisa=readdir($ava)){
    if ($lisa != "." && $lisa != "..") {
   echo '<img src="failid/'.$lisa.'" height="" width="">';   

    }
}
closedir($ava);

Sa tegid ju selle koodi ümber, mis ma andsin, muide ennem ei pannud tähele, seal if lauses peab ikkagi && olema.
Kui soovid kasutada massiivist faili võtmist, nagu sa tegid, pead massiivi elemendi numbri asemele panema muutuja. Hetkel sul annab ainult esimese elemendi massiivist ja kuna sul oli if lause vale, sattus selleks kaust, muida ta otse loomulikult ei olnud võimeline pildiks kuvama.
Kui soovid massiivi kasutada võiks midagi sellist olla:

$kaust="failid/";
$ava=opendir($kaust);
$i=0;
while ($lisa=readdir($ava)){
    if ($lisa != "." && $lisa != "..") {
   $files[]=$lisa;
   echo '<img src="failid/'.$files[$i].'" height="100" width="200">';   
    $i=$i+1;
    }
}
closedir($ava);

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 21.09.2007 18:15:27 vasta tsitaadiga

Mõtlesin, et aretan seda guestbooki edasi ja teeksin selle logimissysteemi.Äkki oskate öelda, mis moodi oleks seda kergem teha algajal , kas mysqliga või siis mingi text failiga aretamine??
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 21.09.2007 18:51:42 vasta tsitaadiga

Kui sa pole ennem MySQL kasutanud ja oled loogilise mõtlemises kõva, siis on lihtsam teha txt failiga, kuna seal on sul kõik peopeal, ise mõtled seosed välja ja teed, kuid MySQL on tunduvalt lihtsam ja turvalisem, ainult tuleb paar põhi asja omale selgeks teha.
1.Andmebaasi tegemine
2.Tabelite tegemine
3Andmebaasi sisse logimine.
4.Päringute tegemine
5.Tabelitesse andmete sisestamine ja nende muutmine.

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 22.09.2007 23:16:42 vasta tsitaadiga

Äkki keegi oskab öelda, mis ma valesti teen.Kood siis selline:
<?php
echo "<form action='logi.php' method='POST'>
<b>Kasutaja: </b><input type='text' name='kasutaja'/><br />
<b>Parool: </b><input type='password' name='password'/><br />
<input type='submit' value='Registreeru'/>
</form>";
if ($_POST["kasutaja"]!="" && $_POST["parool"]!=="") {
$yhendus=mysql_connect("localhost","root","");
mysql_select_db("proov");
$tulemus=mysql_query("tabel");
$kasutaja=$_POST["kasutaja"];
$parool=$_POST["password"];
mysql_query("INSERT INTO kasutajad(kasutaja,parool) VALUES('$kasutaja','$parool');");
echo "Oled Registreerunud";

}
?>

Tegin phpmainadminis databaasi nimega proov ja sinna sisse tegin tabeli nimega kasutaja ja siis tegin mingi fieldid sinna kasutaja,parool, aga kui seda yelmist koodi kasutada ja vajutada registreerumis nuppu siis ta millegi pärast ei lisa databaasi midagi.
Ma olen midagi väga valesti teinud või lihtsalt valesti aru saanud asjast.


Lahendasin ära.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 22.09.2007 23:21:19 vasta tsitaadiga

Kas see kood on sul kõik ühes failis? Failis logi.php ?
Märki != kirjutatakse ühekordse võrdus märgiga sul on && $_POST["parool"]!=="")
päring on valesti peaks olema selliselt:

"INSERT INTO kasutajad ( id , kasutaja , parool) VALUES ( NULL , '".$kasutaja."' , '".$parool."')"

rida
$tulemus=mysql_query("tabel");
on praegusel juhul ülearune. Seda kasutatakse andmebaasi päringus ja päringu jaoks on sul sealt osa puudu. Sisestamisel seda vaja pole.
Lõppu oleks viisakas kirjutada
mysql_close();

Lõpp kokkuvõttes võiks asi midagi sellist välja näha.

echo "<form action='logi.php' method='POST'>
<b>Kasutaja: </b><input type='text' name='kasutaja'/><br />
<b>Parool: </b><input type='password' name='password'/><br />
<input type='submit' value='Registreeru'/>
</form>";
if ($_POST["kasutaja"]!="" && $_POST["parool"]!="") {
$yhendus=mysql_connect("localhost","root","");
$yhendus = mysql_connect("localhost","root","")
or die('Ühenduse loomine ebaõnnestus : ' . mysql_error());
mysql_select_db("proov")
or die('Andmebaasi määramine ebaõnnestus : ' . mysql_error());

$kasutaja=$_POST["kasutaja"];
$parool=$_POST["password"];

$sql="INSERT INTO kasutajad ( id , kasutaja , parool) VALUES ( NULL , '".$kasutaja."' , '".$parool."')" ;
$result = mysql_query($sql);
      if ( $result )
      {
      print("<b><font color=\"#cc3300\">Andmed on lisatud.</font></b>");
      }
      else
      {
      printf("Kirje lisamine tabelisse  ebaõnnestus ", mysql_error());
      }
mysql_close();
}

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 23.09.2007 00:37:18 vasta tsitaadiga

Tegelikult töötab see karlcrutch'i variant ka, kui tabeli nimi õige on (kirjutasid, et tegid tabeli "kasutaja", aga koodis kirjutab tabelisse "kasutajad")
Ja andrusny, !== on ka õige võrdlus, natuke rangem kui !=, st. kontrollib, et võrreldavad asjad ei oleks erinevat tüüpi ka http://ee.php.net/manual/en/language.operators.comparison.php
id lahter ei ole seal tabelis esialgu vajalik, aga edaspidises mõttes võib kasuks tulla. Kasutaja lisamisel ei ole seda vaja päringusse kirjutada, kui tegu on auto-increment arvuga.
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 23.09.2007 11:24:03 vasta tsitaadiga

MA sain selle enda koodi jupi ka tööle, aga tänud ikkagi.
-----------------------------------------------------------------
Kuidas ma saan kontrollida ,et väljad täidetud on?
Ise aretasin midagi sellist, aga see ei taha töötada

$tyhi=$_POST["kasutaja"];$_POST["parool"];
if (empty($tyhi)) {
echo "Täida väljad!";
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
AMD
HV veteran
AMD

liitunud: 29.07.2003




sõnum 23.09.2007 11:40:28 vasta tsitaadiga

strlen()
_________________
From now on, the forum is owned by AMD.That means that you are NO LONGER allowed to talk about, or even mention *ntel.
Kommentaarid: 335 loe/lisa Kasutajad arvavad:  :: 145 :: 3 :: 12
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 24.09.2007 19:47:52 vasta tsitaadiga

mis moodi ma seda strleni kasutan?
kood on selline ja oleks vaja siis,et ta ei regaks ära, kui väljad pole täidetud.
<?php
echo "<form action='rega.php' method='POST'>
<b>Kasutaja: </b><input type='text' name='kasutaja'/><br />
<b>Parool: </b> <input type='password'name='parool'/><br />
<input type='submit' value='Registreeru'/>";
if ($_POST["kasutaja"]!="" && $_POST["parool"]!="") {
include("dp.php");
$kasutaja=$_POST["kasutaja"];
$parool=$_POST["parool"];
//Kui väli on tyhi
if (strlen ($_POST["kasutaja"] && $_POST["parool"])<1) {
echo "Täida väljad";
}


else {
//Äkki on olemas
$olemas=mysql_query("SELECT * FROM kasutajad WHERE kasutaja='$kasutaja'");
while($q=mysql_fetch_array($olemas)){
$mysql_user=$q["kasutaja"];
}
if ($kasutaja==$mysql_user) {
echo "<br />Selline kasutaja on juba olemas!";
}
else{
//Kui ei ole siis
mysql_query("INSERT INTO kasutajad(ksutaja,parool) VALUES('$kasutaja','$parool');");
echo "<br />Oled Registreerunud";
echo "<br />Mine logi sisse <a href=logi.php>vajuta siia.";
}
}
}




?>
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 24.09.2007 19:56:34 vasta tsitaadiga

if ( trim($_POST["kasutaja"])!="" && trim($_POST["parool"])!="")

Kas see ei aita siis sul, tegelikult peaks ju ka sellest aitama, kui üks neist väljadest on tühi, siis ei tohiks asi sellest ifist ju edasi minna. Pane kogu salvestus selle ifi sisse.

if (trim($_POST["kasutaja"])!="" && trim($_POST["parool"])!="") {
// Eeldusel, et sul seal dp.php on andmebaasi avamine
include("dp.php");

$kasutaja=$_POST["kasutaja"];
$parool=$_POST["parool"];




//Äkki on olemas
$olemas=mysql_query("SELECT * FROM kasutajad");
while($q=mysql_fetch_array($olemas)){
$mysql_user=$q["kasutaja"];$parol=$q["parool"];
}

if ($kasutaja==$mysql_user || $parol==$parool) {
echo "<br />Selline kasutaja või parool on juba olemas!";
$stop=1;
}


if ($stop!=1){
//Kui ei ole siis
mysql_query("INSERT INTO kasutajad(ksutaja,parool) VALUES('$kasutaja','$parool');");
echo "<br />Oled Registreerunud";
echo "<br />Mine logi sisse <a href=logi.php>vajuta siia.";
}
}

_________________


viimati muutis andrusny 24.09.2007 20:15:28, muudetud 4 korda
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 24.09.2007 20:07:42 vasta tsitaadiga

võiks panna trim($_POST['kasutaja'])!="" muidu saab ühe tühiku ka kasutajaks panna... icon_razz.gif (sama ka siis parooliga)
_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 117 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 108
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 24.09.2007 22:08:06 vasta tsitaadiga

tänu, aga äkki oskab keegi anda mõnde lehte, kus on õpetus, kuidas logimist teha?
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 24.09.2007 23:44:09 vasta tsitaadiga

andrusny, praegu õhtu ja võib-olla ajan jama, aga miks sul nii keeruliseks kasutaja nime kontroll tehtud on? Kas ei võiks lihtsalt otse päringu teha antud kasutajale ja vaadata, kas vastus tuleb või ei tule?
_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 117 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 108
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 25.09.2007 14:00:16 vasta tsitaadiga

andrusny kirjutas:
php:
  1. //Äkki on olemas
  2. $olemas=mysql_query("SELECT * FROM kasutajad");
  3. while($q=mysql_fetch_array($olemas)){
  4. $mysql_user=$q["kasutaja"];$parol=$q["parool"];
  5. }
  6.  
  7. if ($kasutaja==$mysql_user || $parol==$parool) {
  8. echo "<br />Selline kasutaja või parool on juba olemas!";
  9. $stop=1;
  10. }
kirjutad iga kord $mysql_user ja $parol väärtuse üle, seega saad vaid viimase tulemuse rea nendesse
samuti pole vaja vaid kasutaja ja parooli kontrollimiseks tõmmata kogu tabelit sisse

lisaks: $stop ei ole sul eelnevalt iga kord defineeritud, kui kontrollid selle väärtust, tekitab notice
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Urmet
HV vaatleja

liitunud: 29.07.2005




sõnum 25.09.2007 17:05:05 vasta tsitaadiga

pealegi kasutusel olevate paroolide välja reklaamimine haiseb turvaaugu järele. niikaua kui kasutajanimed erinevad on, pole samade paroolide kasutamine mingi probleem
Kommentaarid: 10 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 10
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 25.09.2007 18:35:38 vasta tsitaadiga

See kontroll tuleb jah sinna while tsükli sisse panna, ei mõelnud ennem korralikult.
Kas peab ikka defineerima? Php vist ei eelda seda, kuigi viisakas vast oleks jah algul öelda, et $stop=0;
Aitaks vist jah ka ainult selle kasutaja kontrollist ning päring peaks kah kiirem tulema. Minul tõmbab ju terve tabeli läbi.
//Äkki on olemas
$stop=0;
$olemas=mysql_query("SELECT * FROM kasutajad");
while($q=mysql_fetch_array($olemas)){
$mysql_user=$q["kasutaja"];$parol=$q["parool"];

if ($kasutaja==$mysql_user || $parol==$parool) {
$stop=1;
}
}
if($stop==1){
echo "<br />Selline kasutaja või parool on juba olemas!";
}}

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 25.09.2007 19:33:09 vasta tsitaadiga

ok, aga äkki keegi oskab anda mõnda linki, et mis moodi teha logimissysteemi.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 25.09.2007 20:17:24 vasta tsitaadiga

andrusny kirjutas:
See kontroll tuleb jah sinna while tsükli sisse panna, ei mõelnud ennem korralikult.
Kas peab ikka defineerima? Php vist ei eelda seda, kuigi viisakas vast oleks jah algul öelda, et $stop=0;
Aitaks vist jah ka ainult selle kasutaja kontrollist ning päring peaks kah kiirem tulema. Minul tõmbab ju terve tabeli läbi.
//Äkki on olemas
$stop=0;
$olemas=mysql_query("SELECT * FROM kasutajad");
while($q=mysql_fetch_array($olemas)){
$mysql_user=$q["kasutaja"];$parol=$q["parool"];

if ($kasutaja==$mysql_user || $parol==$parool) {
$stop=1;
}
}
if($stop==1){
echo "<br />Selline kasutaja või parool on juba olemas!";
}}
eelnev defineerimine pole vajalik, aga tekitab notice, mis pole kena (hea kood ei tekita isegi ühtegi noticet, ehk siis kui miski kuskil on katki, siis näed kohe, mitte ei pea megakarja noticeid ärapeitma)
samuti võiksid sinna ifi sisse panna käsu break();
siis peatatakse koheselt while tsükli jooksutamine (mõttetu jooksutada kui leitud juba vaste, et kasutaja olemas)
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
julmu
HV kasutaja
julmu

liitunud: 20.12.2004




sõnum 25.09.2007 20:27:54 vasta tsitaadiga

Miks seda while tsüklit on üldse vaja? doh.gif
Siin teemas oli ju juba üks mõistlikum lahendus välja pakutud, kus WHERE abil kontrollitakse kasutaja olemasolu.
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 25.09.2007 20:31:15 vasta tsitaadiga

julmu kirjutas:
Miks seda while tsüklit on üldse vaja? doh.gif
Siin teemas oli ju juba üks mõistlikum lahendus välja pakutud, kus WHERE abil kontrollitakse kasutaja olemasolu.
vaja tõesti pole, on palju inimlikemaid lahendusi, lihtsalt korrigeerin tema pakutud koodi
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 13.01.2008 18:10:50 vasta tsitaadiga

Võtsin jälle siis php õppimise käsile icon_biggrin.gif Põhimõtteliselt pean otsast peale hakkama õppima. Kas keegi teab, kas eesti keelseid php'st raamatuid on olemas?
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 13.01.2008 18:30:36 vasta tsitaadiga

Kas sa PHP Aabitsat oled uurinud. Päris asjalik. http://iou.pri.ee/failid/PHP-AABITS.CHM
_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 13.01.2008 19:06:48 vasta tsitaadiga

See on olemas mul juba. Äkki on mingi raamat ka olemas , jube nõme on lugeda arvuti taga. Ja seal php aabitas on osad õpetused vigased nagu ma aru olen saanud.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
Brom
HV kasutaja
Brom

liitunud: 18.07.2005




sõnum 13.01.2008 19:19:41 vasta tsitaadiga

Usu mind, lihtsalt lugedes ei tule midagi välja..

Kunagi olin ka sellises faasis, et üritasin algust teha, kordi läks nii 3, enne, kui sain jalad alla. Teoorias on kõik ilus seni, kui reaalseks kirjutamiseks läheb.

Esimeseks projektiks, peale natukest katsetamist, võta külalisteraamat mysqli põhjal.
Kommentaarid: 13 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 13.01.2008 19:48:51 vasta tsitaadiga

Selles suhtes on php aabits hea, kui hakkad midagi tegema tuleb vajadus mingi operatsiooni järele. On näiteks sul mingi pikem pildi aadress "/Pildid/Lilled/Suured/tulp.jpg" ja vaja on ainult pildi nime, nüüd lähed php aabitsasse ja hakkad lappama vaatad, mida asjad teevad ja kas sellega sul midagi pistmist on. basename peaks selleks sobima.

Edit: Nii sama lugemisega õppida, sul peab ikka s****s hea mälu olema, et kõik asjad meelde jäävad kohe ja hiljem, kui teed midagi on kohe peast vajalik võtta. Paljusid, kui mitte enamus funktsioone tava kirjutajad ei kasutagi.

_________________


viimati muutis andrusny 13.01.2008 19:51:35, muudetud 1 kord
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 13.01.2008 19:51:01 vasta tsitaadiga

andrusny, ma lähenen sellele probleemile jällegi dokumentatsiooni kaudu
dokumentatsioonis on kategooriatesse jaotatud funktsioonid ning kui ei tule meelde et mis mõne funktsiioni nimi oli, siis lähen võtan sobiva kategooria lahti ning otsin endale sobiva funktsiooni
antud juhul siis http://ee.php.net/manual/en/ref.filesystem.php
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 13.01.2008 20:07:43 vasta tsitaadiga

See ka hea lahendus. Eks kõik võimalused tuleb ära kasutada. Suur tõenäosus, et googli otsingusse split filename php ja leiad sealt mingi toreda lahenduse. Teise tulemuse pealt saaks kohe midagi aretada.
edit:Kõige raskem on õieti küsida.

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Telempe
Kreisi kasutaja
Telempe

liitunud: 02.11.2002




sõnum 13.01.2008 20:15:49 vasta tsitaadiga

tsitaat:

edit:Kõige raskem on õieti küsida.

Veel raskem on õigesti küsida.

_________________
ORLY? I hardly know her!
Kommentaarid: 22 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 21
tagasi üles
vaata kasutaja infot saada privaatsõnum
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 14.01.2008 21:33:06 vasta tsitaadiga

Brom kirjutas:
Usu mind, lihtsalt lugedes ei tule midagi välja..

Kunagi olin ka sellises faasis, et üritasin algust teha, kordi läks nii 3, enne, kui sain jalad alla. Teoorias on kõik ilus seni, kui reaalseks kirjutamiseks läheb.

Esimeseks projektiks, peale natukest katsetamist, võta külalisteraamat mysqli põhjal.


Seda kylalisteraamatut ma hakkasin siis tegema, kui mõned kuud tagasi alustasin selle php õppimist. Mõtlesin, et teen edasi nüüd, aga avastasin , et ma ei mäleta mitte mõhkugi enam :Sicon_biggrin.gif Võtsin w3schooli lahti uuesti ja hakkasin uuesti otsast peale õppima.
---------------------------------------------------------------------------------------------------------------
Äkki keegi oskab aidata, miks ma ei saa mysql baasiga yhhendust?Kasutan xampp'd ja koodi tegin sellise:

<?php
$serv="localhost";
$user="root";
$pass="";
mysql_connect($serv,$user,$pass);
if (mysql_query("CREAT DATABASE test22")) {
   echo "Tehtud";
}
else {
echo "Vot ei teinud!";
}
?>

Ja kui jooksutan seda siis annab selle viimase "Vot ei teinud".
xampp's mysql on tööle panud.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 14.01.2008 21:45:09 vasta tsitaadiga

karlcrutch kirjutas:

Äkki keegi oskab aidata, miks ma ei saa mysql baasiga yhhendust?Kasutan xampp'd ja koodi tegin sellise:

<?php
$serv="localhost";
$user="root";
$pass="";
mysql_connect($serv,$user,$pass);
if (mysql_query("CREAT DATABASE test22")) {
   echo "Tehtud";
}
else {
echo "Vot ei teinud!";
}
?>

Ja kui jooksutan seda siis annab selle viimase "Vot ei teinud".
xampp's mysql on tööle panud.

alustada võiks sellest, et see käsk on siiski CREATE DATABASE, mitte CREAT. Ja arvatavasti oleks sa oluliselt kergemini selle asja ise selgeks saanud, kui sa oleks else blokki kirjutanud mysql_error(), oleks vähemalt teada saanud, mis valesti läks icon_smile.gif

_________________
Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 15.01.2008 22:28:48 vasta tsitaadiga

Ei no jah , ma eriti loll, ei saa aru, mis moodi ma seda tähele ei pannud icon_biggrin.gif Tänud.

Äkki keegi oskab öelda, kub on mõttekam, kas teha nii, et kylalisteraamat lisab postitused txt faili või siis äkki saab lisada ka sql andmebaasi?
nüüd on mul nii palju valmis kylalisteraamatust, et saab registreeruda(andmed lisatakse sql baasi) ja sisse logida.Aga nüüd on mul juuhe suht koos, et mis moodi ma peaks tegema selle lehe, kuhu suunatakse sisse loginud kasutaja?Aga see peaks nagu nii olema, et näiteks, kui ma panen selle faili aadressi aadressi reale brauseris siis ta ei laseks mind sinna ligi vms, et ainult sisse loginud kasutajad saavad sinna ligi.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 15.01.2008 23:32:41 vasta tsitaadiga

karlcrutch kirjutas:
Äkki keegi oskab öelda, kub on mõttekam, kas teha nii, et kylalisteraamat lisab postitused txt faili või siis äkki saab lisada ka sql andmebaasi?


Lihtsam ja töökindlam on kasutada andmebaasi.

karlcrutch kirjutas:
Aga nüüd on mul juhe suht koos, et mis moodi ma peaks tegema selle lehe, kuhu suunatakse sisse loginud kasutaja? Aga see peaks nagu nii olema, et näiteks, kui ma panen selle faili aadressi aadressi reale brauseris siis ta ei laseks mind sinna ligi vms, et ainult sisse loginud kasutajad saavad sinna ligi.


Uuri PHP sessioone.

Sisselogimislehel näiteks salvestad sessioonimuutujasse $_SESSION['sees'] = true; hiljem vajalikus kohas kontrollid, kas on sees: if (!$_SESSION['sees']) echo "Enne pead sisse logima!";
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 16.01.2008 21:31:29 vasta tsitaadiga

Ma vb sain valesti aru, aga ma tegin nii:
Selles failis, kus kontrollib, kas kasutaja ja parool klapivad, tegin nii ,et kui kõik ok ja klapivad siis:
//Kas ühtivad
if ($user==$m_user and $pass==$m_pass) {
$_SESSION["sees"]=true;
echo "<center><b>Te olete sisse loginud</b><br />
<a href=tools.php>Vajuta siia</a></center>";


Ja siis selles tools.php failis tegin nii alguses:
<?php
session_start();
if ($_SESSION["sees"]) {
   echo "sees";
}
else {
echo "väljas";exit;
}


Kui sisse login siis ytleb sees ja kui selle faili(tools.php) niisama avan brauseris siis ytleb ka sees.
Mis moodi nii saaks, et kui niisama avan siis ytleb, et väljas ja faili muudele võimalustele ligi ei saaks?
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
webromps
HV kasutaja

liitunud: 13.06.2005




sõnum 16.01.2008 22:27:32 vasta tsitaadiga

Ma ei tea kas keegi mainis siin seda, aga ühed võimalused php õppimiseks on osta www.lynda.com 'st omale cd php videoõpetustega või osta omale kasutaja sinna. Muidugi leiab sealt ka alates xp tavakasutaja videõpetustest kuni profitarkvara õpetusteni välja. Vihjeks muide, et internetis on ka liikvel osadest õpetustest piraat plaate.
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 17.01.2008 00:18:48 vasta tsitaadiga

Aga kui sa brauseri vahepeal kinni paned ja siis otse sellele tools.php lehele lähed, kas siis ütleb ka "sees"?

Üldiselt saad sa ju väljumiseks teha ka mingi logout lehe, kus $_SESSION["sees"] saab väärtuseks false.
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 17.01.2008 22:53:30 vasta tsitaadiga

Kuule nii toimib jah, et kui brauser kinni panna ja uuesti avada ja siis otse tools.php faili minna siis annab väljas. Ma tegin nii enne, et logisin sisse ja siis panin tabi kinni firefoxis ja siis avasin selle tools.php uuesti.
-----------------------------------------------------------

Äkki keegi oskab öelda, mis moodi saaks nüüd nii teha, et kui sisse logid siis saad poste redigeerida?No ma ise suutsin nii palju aretada, et sain poste redigeerida, aga kui salvesta vajutasin siis muutis ta kõik postid yhe suguseks ja seda ma enam korda ei osanud teha. Kustutasin selle koodi jupi ära ja nüüd nagu juhe jumala koos. Ma tean, et tuleb seda id'd kasutada, et ta need õieti salvestaks, aga ma ei tea mis moodi seda teha.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
skycat
HV kasutaja
skycat

liitunud: 20.05.2003




sõnum 18.01.2008 02:10:54 vasta tsitaadiga

karlcrutch kirjutas:
Kuule nii toimib jah, et kui brauser kinni panna ja uuesti avada ja siis otse tools.php faili minna siis annab väljas. Ma tegin nii enne, et logisin sisse ja siis panin tabi kinni firefoxis ja siis avasin selle tools.php uuesti.
-----------------------------------------------------------

Äkki keegi oskab öelda, mis moodi saaks nüüd nii teha, et kui sisse logid siis saad poste redigeerida?No ma ise suutsin nii palju aretada, et sain poste redigeerida, aga kui salvesta vajutasin siis muutis ta kõik postid yhe suguseks ja seda ma enam korda ei osanud teha. Kustutasin selle koodi jupi ära ja nüüd nagu juhe jumala koos. Ma tean, et tuleb seda id'd kasutada, et ta need õieti salvestaks, aga ma ei tea mis moodi seda teha.


kui sessionide võimalustest väheks jääb uuri küpsiseid!
http://www.w3schools.com/php/php_cookies.asp
-----------------------------------------------------------------
kui sa midagi muudad andmebaasi nagu posti siis sa kirjutad ilmselt midagi sarnast

sql:
  1. UPDATE tabel SET valja_nimi = 'uus vaartus' WHERE id = 8

hetkel muudaks ta ära siis rea kus id=8, kui sa seda WHERE tingimust sinna ei paneks siis ta muudaks ära kõik read
Kommentaarid: 17 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 12
tagasi üles
vaata kasutaja infot saada privaatsõnum
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 18.01.2008 18:44:31 vasta tsitaadiga

ok, sellest ma saan aru, aga mis moodi ma selle nii saaks, et kui ma whilega tsükliga lasen, kõik postitused lehele nii ,et neid muuta saaks, aga mis moodi ma selle id saan lehele sisestada?Natuke segaselt seletasin vist icon_biggrin.gif
Ise tegin midagi sellist umbes:

$pla=mysql_query("SELECT * FROM plapla ORDER BY id");
while ($r=mysql_fetch_array($pla) {
$nimi=$r["nimi"];
$tekst=$r["tekst"];
$mail=$r["mail"];
$id=$r["id"]; <------ see ei anna id'd, kui pärast echo $id sisestada.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 18.01.2008 20:48:59 vasta tsitaadiga

while tsükkel on sul katkine, kontrolli sulud üle
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
karlcrutch
HV kasutaja
karlcrutch

liitunud: 07.04.2006




sõnum 18.01.2008 21:11:52 vasta tsitaadiga

failis on korras see sulu värk, siia kribasin lihtsalt veaga icon_biggrin.gif

$pla=mysql_query("SELECT * FROM plapla ORDER BY id");
while ($r=mysql_fetch_array($pla)) {
$nimi=$r["nimi"];
$tekst=$r["tekst"];
$mail=$r["mail"];
$id=$r["id"]; <------ see ei anna id'd, kui pärast echo $id sisestada.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  php algajale mine lehele eelmine  1, 2, 3  järgmine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.