Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  PHP prog. märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
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:  
LinkyB
HV kasutaja

liitunud: 19.06.2005




sõnum 20.07.2009 16:33:52 PHP prog. vasta tsitaadiga

Kuidas saan järgnevas koodis teha sellise lisa, et kui insertimine failib tänu tühjadele väljadele, siis kustutab selle viimase sisestatud ID tabelist või kuidas teha üldse nii, et ta ei lisakski tabelisse ID kui feilib.

php:
  1. if(! $conn )
  2. {
  3.   die('Could not connect: ' . mysql_error());
  4. }
  5.  
  6. if (empty($_POST["nimi"])) {
  7. print 'PS! Nimi puudus!<br>'; $die=1;
  8. }
  9. if (empty($_POST["vanus"])) {
  10. print 'PS! Sünniaasta puudus!<br>'; $die=1;
  11. }
  12. if (empty($_POST["elukoht"])) {
  13. print 'PS! Elukoht puudus!<br>'; $die=1;
  14. }
  15. if (empty($_POST["kuulutus"])) {
  16. print 'PS! Kuulutus puudus!<br>'; $die=1;
  17. }
  18. if(isset($_POST['add']))
  19. {
  20.  
  21. if ($die != 1) {
  22.    $nimi = $_POST['nimi'];
  23.    $vanus = $_POST['vanus'];
  24.    $elukoht = $_POST['elukoht'];
  25.    $kuulutus = $_POST['kuulutus'];
  26.    $class= $_POST['class'];
  27.    $ip = $_SERVER['REMOTE_ADDR'];
  28.    
  29.    
  30. }
  31. $sql = "INSERT INTO kuulutused ".
  32.        "(nimi,vanus,elukoht,kuulutus,class,ip) ".
  33.        "VALUES ".
  34.        "('$nimi','$vanus','$elukoht','$kuulutus','$class','$ip')";
  35. mysql_select_db('np14151_date');
  36. $retval = mysql_query( $sql, $conn );
  37. if(! $retval )
  38. {
  39.   die('Could not enter data: ' . mysql_error());
  40. }
  41. if ($die != 1) {
  42. printf("Kuulutus lisatud edukalt, aktiveerimseks saada sõnum sisuga FOR DATE %d\n numbrile 13011. SMS hind 15 eek, kuulutuse kustutamiseks saada sama sisuga sms!", mysql_insert_id());
  43. }
  44.  
  45. mysql_close($conn);
  46. }
  47. else
  48. {
  49. }
  50. ;

_________________
[img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:]
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004



Online

sõnum 20.07.2009 17:00:18 vasta tsitaadiga

Sul ei tohiks ju üldse sql osani jõuda kui mõni neist neljast tühi on ?
Tegin natuke korrektuuri ka koodis.
php:
  1. <?php
  2. if(!$conn) {
  3.         die('Could not connect: ' . mysql_error());
  4. }
  5. $die = false;
  6. if (empty($_POST["nimi"])) {
  7.         print 'PS! Nimi puudus!<br>';
  8.         $die = true;
  9. }
  10. if (empty($_POST["vanus"])) {
  11.         print 'PS! Sünniaasta puudus!<br>';
  12.         $die = true;
  13. }
  14. if (empty($_POST["elukoht"])) {
  15.         print 'PS! Elukoht puudus!<br>';
  16.         $die = true;
  17. }
  18. if (empty($_POST["kuulutus"])) {
  19.         print 'PS! Kuulutus puudus!<br>';
  20.         $die = true;
  21. }
  22. if(isset($_POST['add']))
  23. {
  24.         if ($die === false} {
  25.                 $nimi = $_POST['nimi'];
  26.                 $vanus = $_POST['vanus'];
  27.                 $elukoht = $_POST['elukoht'];
  28.                 $kuulutus = $_POST['kuulutus'];
  29.                 $class= $_POST['class'];
  30.                 $ip = $_SERVER['REMOTE_ADDR'];
  31.                
  32.                 $sql = "INSERT INTO kuulutused
  33.                         (nimi,vanus,elukoht,kuulutus,class,ip)
  34.                         VALUES
  35.                         ('$nimi','$vanus','$elukoht','$kuulutus','$class','$ip')";
  36.                 mysql_select_db('np14151_date');
  37.                 $retval = mysql_query($sql, $conn);
  38.                 if(!$retval) {
  39.                         die('Could not enter data: ' . mysql_error());
  40.                 }
  41.                 printf("Kuulutus lisatud edukalt, aktiveerimseks saada sõnum sisuga FOR DATE %d\n numbrile 13011. SMS hind 15 eek, kuulutuse kustutamiseks saada sama sisuga sms!", mysql_insert_id());
  42.         }
  43.        
  44.         mysql_close($conn);
  45. }
  46. ?>


viimati muutis mikk36 20.07.2009 17:01:07, muudetud 1 kord
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
LinkyB
HV kasutaja

liitunud: 19.06.2005




sõnum 20.07.2009 17:00:46 vasta tsitaadiga

Kuidas ma ta surema panen seljuhul?
_________________
[img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:]
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 20.07.2009 17:45:03 vasta tsitaadiga

LinkyB,
Aga mikk36 poolt toodud koodis peakski kõik loogiliselt ok olema (kui sql injection feature välja arvata icon_razz.gif millest saaks mööda mysql_real_escape_string() funci kasutades).

Sinu poolt ennem antud koodis oli lihtsalt loogika vigane:
kontrollime kas väljad on tühjad
ehitame sql insert kokku
teeme inserti ära
kui väljad olid tühjad näitame errorit ja teeme die

(kui veel aru ei saanud, siis errori kuvamine ja die tegemine oli jumala mööda kohas)

Muutes järjekorda:
kontrollime kas väljad on tühjad
kui väljad olid tühjad näitame errorit ja teeme die (proge läheb kinni, loogika edasi ei lähe)
ehitame sql insert kokku
teeme inserti ära

Hakkab kõik tööle.

Siinkohal tekib aga küsimus, et miks sellise labase loogikavea kirjutaja üldse vastutab mingite tasuliste teenuste tegemise eest ? icon_biggrin.gif
Kui muu kood on samamoodi apsakaid täis, siis kes korvab apsakatest tuleneva rahalise kahju kasutajatele ? icon_razz.gif

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
LinkyB
HV kasutaja

liitunud: 19.06.2005




sõnum 21.07.2009 15:19:27 vasta tsitaadiga

Mis jama on kuidas saan tööle sms chat nii, et adressireal aksepteeriks täpitähi ka?
http://linkz.pri.ee/smschat.php?message=lol teen nii t66tab k6ik perfektselt AGA -> http://linkz.pri.ee/smschat.php?message=lol teen nii t66tab siiani kuni topin ä tähe ja nüüd seda texti ei näe juba siin alates ä tähest? Kas ainult läbi adressiriba ei tööta või ka läbi sms mitte?!

php-brief:
  1. <?
  2.  
  3. $db = mysql_connect($hostname,$username,$password);
  4. mysql_select_db($database,$db);
  5.  
  6. mysql_set_charset('utf8');
  7.  
  8. $text=$_GET['message'];
  9.  
  10. if($text!=''){
  11. mysql_query("INSERT INTO sms VALUES(NULL, '".$text."', NOW())");
  12. echo 'Tekst edukalt edastatud!';
  13. }else{
  14. $newtext = wordwrap($text, 20, "<br />\n");
  15. echo $new
  16. $q=mysql_query("SELECT * FROM sms ORDER BY id DESC LIMIT 5");
  17. echo '<table border=0><td><div align="center"><span class="style3"><b>SMS CHAT:</b></span></div></td>
  18. </tr>';
  19. while($rida=mysql_fetch_array($q)){
  20. echo '<td><div align="center"><span class="style3">'.$rida['sisu'].'</span></div></td>
  21. </tr>';
  22. }
  23. echo '</table>';
  24. }
  25. ?>

_________________
[img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:]
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 21.07.2009 17:21:47 vasta tsitaadiga

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

liitunud: 19.06.2005




sõnum 22.07.2009 13:16:28 vasta tsitaadiga

Keegi oskab öelda kus leian vanuse piirangu sellise, et indexil tuleb lihtsalt popup 18+ yes or no , yes = lisab cookie, et järgmine kord ei küsiks ja siis kui no siis suunab minema lehelt. Netist täpselt sellist ei leidnud, ehk keegi teab.
_________________
[img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:]
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004



Online

sõnum 22.07.2009 13:23:02 vasta tsitaadiga

Javascript popupiga küsid kasutajalt ja siis vastavalt kas salvestad cookie selle kohta (javascriptiga annab seda teha), edaspidi kontrollid php'ga et kas antud cookie on olemas või mitte.
Pole mõtet otsida spetsiifilist 18+ cookiet, otsi generic tutoriale / dokumentatsioone ja tekita ise midagi kokku.
Kui sa kõiki selliseid ülilihtsaid asju üritad netist leida, siis suurt midagi asjalikku sa ei õpi ja ega kokku lendav süsteem ka ilus ei saa olema.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
LinkyB
HV kasutaja

liitunud: 19.06.2005




sõnum 22.07.2009 13:29:22 vasta tsitaadiga

Mõte on hea, aga javascript on keeruline ja pole tegelikkuses üldse soovi seda õppida icon_razz.gif
_________________
[img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:]
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 22.07.2009 18:26:32 vasta tsitaadiga

Kui vebi tahad kirjutada, on JS ja PHP peaaegu mõlemad vajalikud. Üks toimetab masinas, teine serveris. Tee siis sama PHP s saad ju ka. Küsid form sees vanust saadad, võtad vastu kui sobib teed coocie kui ei suunad ümber.
_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  PHP prog.
[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.