Kezdőoldal » Számítástechnika » Weblapkészítés » Egy php s gondom van, mit...

Egy php s gondom van, mit csinálok rosszul?

Figyelt kérdés

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.


2011. szept. 13. 18:04
 1/6 anonim ***** válasza:
100%

ő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é...

2011. szept. 14. 15:01
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:

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.

2011. szept. 14. 15:28
 3/6 anonim ***** válasza:
100%

semmi para... mindenki így kezdte... :


De: tanács: mond el, mi az amit csinálni szeretnél és megmondjuk, mit hogyan..

2011. szept. 14. 23:14
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

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.

2011. szept. 15. 08:32
 5/6 anonim ***** válasza:
100%

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/

2011. szept. 19. 13:03
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Köszi ez nagy segítség, neki is ugrok csak most a ház körül segítek.
2011. szept. 19. 14:02

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!