Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  PHP-MySql 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:  
ener
HV vaatleja

liitunud: 28.12.2010




sõnum 18.04.2011 00:25:36 PHP-MySql vasta tsitaadiga

checkboxiga tuleb veateade, kui ei ole linnukest pandud: Notice: Undefined index: checkbox in C:\..\..\insert.php on line 12. Ma saan aru, et ta peaks olema niisama 0 väärtus. Kuidas seda viga parandada saaks?
$sql="INSERT INTO user (First, Last, Email, Checkbox, Pass, Confirmpass)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[email]','$_POST[checkbox]',
'$_POST[passwd]','$_POST[passwd2]')";


ja äkki keegi oskab öelda, kuidas teha nii, et kui mingi tekstiväli on täitmata( nt email), sis viskab teate, et sisestada e-mail.
tagasi üles
vaata kasutaja infot saada privaatsõnum
keevitaja
AM 10 aastat
keevitaja

liitunud: 05.11.2001




sõnum 18.04.2011 00:31:28 vasta tsitaadiga

proovi nii

$field_1 = $_POST['field_1'];
$field_2 = $_POST['field_2'];

$sql = "INSERT INTO user (field_1, field_2) VALUES('$field_1', '$field_2')";
Kommentaarid: 51 loe/lisa Kasutajad arvavad:  :: 1 :: 3 :: 40
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 18.04.2011 07:29:36 vasta tsitaadiga

Selliselt muutub ainult rida, kus veateade esineb. Pead panema

if(isset($_POST['field_1'])){$field_1 = $_POST['field_1'];}else{$field_1 = 0;}

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

liitunud: 28.12.2010




sõnum 18.04.2011 10:39:27 vasta tsitaadiga

aga kuhu mul see lisada tuleks? kas nagu eraldi veel kuidagi või pean sinna $_POST{checkbox} asemele?
ma proovisin asemele panna ja ka eraldi selle järele.
tagasi üles
vaata kasutaja infot saada privaatsõnum
madisxxx
HV kasutaja

liitunud: 11.09.2004



Autoriseeritud ID-kaardiga

sõnum 18.04.2011 10:58:11 vasta tsitaadiga


$cb_1 = 0;

if(isset($_POST['checkbox'])) $cb_1 = $_POST['checkbox'];

$sql="INSERT INTO user (First, Last, Email, Checkbox, Pass, Confirmpass)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[email]','$cb_1',
'$_POST[passwd]','$_POST[passwd2]')";


Peaks toimiv ja korrektne olema
Kommentaarid: 104 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
hexmex
HV kasutaja

liitunud: 13.06.2006




sõnum 18.04.2011 11:03:29 vasta tsitaadiga

Et su ülesannet mitte ära lahendada, siis lihtsalt mõningad näpunäited.

Esiteks on taoline andmebaasi andmete sisestamise praktika ülimalt riskantne - märksõnaks on SQL injection

Teiseks konkreetne veateade on tingutud sellest, et PHP's on soovitav muutujad eeldefineerida enne nende kasutamist. Veateatest lahti saamiseks on kaks võimalust. Kas ütelda php'le et ta enam E_NOTICE veateateid ei kuvaks/logiks. Või kontrollida enne muutuja kasutamist tema defineeritust - märksõna isset()

Kolmandaks peaks antud vihjete põhjal saama ülesande lahendatud küll (kui just päris võhik ei ole ja PHP'st enne midagi kuulnud polegi)

Neljandaks ei oska mina küll õpetada php'le asjade viskamist (kui exceptionid välja arvata) .. icon_lol.gif

_________________
Olgem sõbralikud!
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
ener
HV vaatleja

liitunud: 28.12.2010




sõnum 18.04.2011 11:49:08 vasta tsitaadiga

pole varem php-ga eriti midagi teinud.
Aga sain tööle küll selle asja, enam ei viska seda errorit.
Tänud!
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  PHP-MySql
[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.