Egy php s gondom van, mit csinálok rosszul?
Bocsánat de nagyon kezdő vagyok és van egy progim csak nem értem miért nem azt csinálja amit kellene.
Ime a progi:
if (($_POST['nev'] && $_POST['cim'] && $_POST['tel'] && $_POST['email']) == ""){
print "<h4><font color=#ff0000>Töltsön ki legyenszíves minden</font><font size=6 color=#ff0000> * </font><font color=#ff0000>jelölt mezőt!</font></h4><br><a href=vasarlas.php TARGET=_parent>Vissza a megrendelőre</a>";
return;
}
if (ereg("[a-zA-Z]",$_POST['tel'])){
print "<h4><font color=#ff0000>Telefonszámként csak számokat adhat meg!</font></h4><br><a href=vasarlas.php TARGET=_parent>Vissza a megrendelőre</a>";
return;
}
if (!eregi("[@]",$_POST['email'])){
print "<h4><font color=#ff0000>Az emailcímet helytelenül adta meg!</font></h4><br><a href=vasarlas.php TARGET=_parent>Vissza a megrendelőre</a>";
return;
}
if (!eregi("[.]",$_POST['email'])){
print "<h4><font color=#ff0000>Az emailcímet helytelenül adta meg!</font></h4><br><a href=vasarlas.php TARGET=_parent>Vissza a megrendelőre</a>";
return;
}
$lekerdez = mysql_query("select * from email");
while($sor = mysql_fetch_row($lekerdez)){
$email = $sor[0];
}
$aru =$_SESSION['kosar']."Összár:".$_SESSION['osszar'].",-Ft <a href=# onmouseover=doTooltip(event,0) onmouseout=hideTip()><b>+ Szállítási költség.</b></a>";
$ido=date("Y.m.d-G:i:s");
$fejlec = "Content-type: text/html";
$adatok = "<font face=tahoma size=3 color=#009966><strong>Megrendelés érkezett!</strong></font>"."<br>__________________________________________________<br><font face=tahoma size=1 color=#0000CC><strong>ipcím: $ip"."<br>Elküldés ideje: $ido"."<br></strong></font><font face=tahoma size=2 color=#0000CC><strong>Név:</strong></font> ".$_POST['nev']."<br><font face=tahoma size=2 color=#0000CC><strong>Cím:</strong></font> ".$_POST['cim']."<br><font face=tahoma size=2 color=#0000CC><strong>Számlázási cím:</strong></font> ".$_POST['szcim']."<br><font face=tahoma size=2 color=#0000CC><strong>Tel:</strong></font> ".$_POST['tel']."<br><font face=tahoma size=2 color=#0000CC><strong>Email:</strong></font> ".$_POST['email']."<br><font face=tahoma size=2 color=#0000CC><strong>Rendeltmár tőlünk?</strong></font> ".$_POST['rendelt']."<br>----------------------------------------------------<br><font face=tahoma size=2 color=#0000CC><strong>Egyéb közlendő: </strong></font> ".$_POST['egyeb']."<br>___________________________________________________<br><font face=tahoma size=2 color=#0000CC><strong>Áru:</strong></font><br><br> "."<font face=tahoma size=2 color=#0000CC><strong>$aru</strong></font>";
mail($email,'Rendelés érkezett',$adatok,$fejlec);
$lekerdez = mysql_query("select * from general");
$numrows = mysql_num_rows($lekerdez);
$id = $numrows+1 ;
$aru = $_SESSION['kosar']."Összár:".$_SESSION['osszar'].",-Ft <a href=# onmouseover=doTooltip(event,0) onmouseout=hideTip()><b>+ Szállítási költség.</b></a>";
$ujaru = "INSERT INTO megrendelesek (nev,cim,szcim,tel,email,rendelt,egyeb,aru,datum,id)
VALUES ('$_POST[nev]','$_POST[cim]','$_POST[szcim]','$_POST[tel]','$_POST[email]','$_POST[rendelt]','$_POST[egyeb]','$aru','$_POST[datum]','$id')";
mysql_query($ujaru) or die("<font color=#FF0000 size=2 face=tahoma>Sikertelen küldés!</font>");
mysql_query("insert into general(id) values('$id')") or die("<font color=#FF0000 size=2 face=tahoma>Sikertelen küldés!</font>");
print "<center><font color=#0000ff size=2 face=tahoma><br><b>Köszönjük, hamarosan vissza igazoljuk a megrendelését!</b></font><br><br><strong><br><br>Ön a következő rendelést küldte el:</strong><br><br> Név: $nev <br>Cím: $cim <br> Számlázási cím: $szcim <br> Telefon: $tel <br> E-mail: $email<br> Egyéb közlendő: $egyeb<br><hr>Rendelt áru:<br><br>$aru</strong>";
Az a gondom, hogy elküldi a rendelést, csak ha kitöltetlenül küldik el akkor szétesett oldalként jön vissza.
A másik gondom pedig vele, hogy ha kitöltve elküldöm akkor rendbe elküldi de visszaigazolásnál a rendelő adatai nem jelennek meg csak a z email és a termékek.
Biztosan én vagyok a hunyó csak mibe.
őszintén megmondva: szerintem azt hibáztad el, hogy random mód copypaste-eltél össze egy kódot, melynek megírása nem ment volna = nem rendelkezel a megfelelő tudással.
Egy pár dolog így tényleg egy ránézésből: a href elérési útját mondjuk idézőjelek közé szokás írni; valamint használod az eregi() függvényt: ez már elavult: This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
Akkor a post[] ban lévő name tagot nem mindenhol tetted ' és ' közé...
Igen jól látod!
Ez valóban egy erőm felett való munka csak lakcímnélküli vagyok sajnos és egy ismerős befogadott és így próbálom neki meghálálni. De köszi a segítséget.
semmi para... mindenki így kezdte... :
De: tanács: mond el, mi az amit csinálni szeretnél és megmondjuk, mit hogyan..
A megrendelt termékeket szeretném vele elküldeni. Úgy, hogy küldje el a mysql be , és egyet az emailbe, majd térjen vissza egy nyomtatható változattal a rendelés adataival a megrendelőnek. Természetesen a név, cím, email, tel kitöltését ellenőrizze.
Köszi szépen.
Nah, látom felülre tetted a kérdésed.. igaz, hogy ki is ment a fejemből, hogy válaszoljak..
Ám: nem mondtuk, hogy megírjuk helyetted, de segítünk szívesen! De ehhez neked is tenned kell..
Két dolog az elején:
írd le átláthatóan = minden új cucc új sorban.. nézd meg [link] a negyedik hozzászólást, vagy bármely másik topikban lévő kódelrendezést.. így sokkal áttekinthetőbb.
Csináld meg, amit az előző hsz-emben mondtam: minden $_SESSION[] zárójelei között lévő szó legyen 'szó' tehát aposztrófok között..
A hibádat különben majdnem biztos, hogy az első sor okozza:
if (($_POST['nev'] && $_POST['cim'] && $_POST['tel'] && $_POST['email']) == ""){
Ez így hülyeség, mivel ez nem az összeset ellenőrzi, rosszul használod az && operátort; így csak az email-t ellenőrzöd..
helyesen úgy kell, hogy:
if (($_POST['valami']) == "" && $_POST['valamimas']) == "" && $_POST['valamimegintmas']) == ""){
Tehát: az && operátor a feltételek között van: magyar fonetikával elmondva: "Ha valami egyenlő semmivel vagy valamimás egyenlő semmivel vagy valamimegintmas egyenlő semmivel".
/esetleg: nézd meg google-n az isset() függvényt erre a célra/
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!