11. marts 2004 - 15:22Der er
26 kommentarer og 2 løsninger
Php begynder hjælp
Jeg har købt mig IDG hæftet - Start på php. Jeg har fulgt toturialen om at lave et nyhedsscript, men jeg kan ikke få det til at virke. koden her er koden for at tilføje nyheden: <HTML> <BODY> <? if($kodeord == "1234"){ echo "Nyheden er tilføjet"; $db = mysql_connect("XXX","XXX","XXX"); mysql_select_db("XXX",$db); $nyhed_dato=time();
mysql_query("INSERT INTO nyheder (dato, overskrift, tekst) Values ('$nyhed_dato','$nyhed_overskrift','$nyhed_tekst')");
Og her er koden for vis nyheden: <HTML> <BODY> <? $db=mysql_connect("XXX","XXX","XX"); mysql_select_db("XXX",$db); $foresp=mysql_query("SELECT dato, overskrift, tekst FROM nyheder ORDER BY dato DESC LIMIT 0,2"); while($data = mysql_fetch_array($foresp)){
Når jeg tilføjer nyheden siger den også at nyheden er tilføjet, men når jeg går ind i vis nyheden er der ikke noget??? Har jeg ikke connectet mellem de to stumper koder ordentligt? På forhånd tak for hjælpen
Har selv haft samme problem efter at have læst hæftet. Det er fordi dine variabler $nyhed_dato, $nyhed_overskrift og $nyhed_tekst ikke automatisk bliver sat med værdierne fra POST eller GET. Brug i stedet $_REQUEST["nyhed_overskift"] eller sæt $nyhed_overskrift = $_REQUEST["nyhed_overskrift"] inden du kalder mysql-sætningen.
mysql_query("INSERT INTO nyheder (dato, overskrift, tekst) Values ('$nyhed_dato','$nyhed_overskrift','$nyhed_tekst')");
} else { ?> <FORM METHOD = POST ACTION=<? echo $PHP_SELF;?>> kodeord:<BR> <INPUT TYPE = PASSWORD NAME = kodeord><BR> overskrift:<BR> <INPUT TYPE=TEXT NAME=nyhed_overskrift><BR> tekst:<Br> <TEXTAREA NAME= nyhed_tekst>her indtastes nyheden</TEXTAREA><BR> <INPUT TYPE=SUBMIT VALUE=skriv> </FORM> <? } ?> <p>Og her er koden for vis nyheden: <? include("connect.php)"; $foresp=mysql_query("SELECT dato, overskrift, tekst FROM nyheder ORDER BY dato DESC LIMIT 0,2"); while($data = mysql_fetch_array($foresp)){
Der er to ting jeg kan se at der kunne gå galt. 1. det kunne være fordi at du ikke har nogle " omkring dine input types name. 2. Hvad jeg tror der er mere sandsynligt er at den server du sidder på ikke har enabled global post vars.
dette vil betyde at du skal bruge
mysql_query("INSERT INTO nyheder (dato, overskrift, tekst) Values ('$_POST['nyhed_dato']','$_POST['nyhed_overskrift']','$_POST['nyhed_tekst']')");
}
Det skulle gøre tricket, hvad for en PHP version benytter du?
Det er ikke nogen helt skæv ide at lægge Db connectionen ind i en seperat fil, det kan varmt anbefales, men hvis du blot kører igennem nogle små ting, så gør det ikke det store.
mr-super>> giv ham lige en chance, han er nybegynder :o) withli>> det vil ikke virker pga dine '' inde i dine $_POST - du bliver nødt til at holde sql og PHP for sig
Og her er koden for vis nyheden: <HTML> <BODY> <? //jeg har ikke rettet herunder $db=mysql_connect("XXX","XXX","XX"); mysql_select_db("XXX",$db); $foresp=mysql_query("SELECT dato, overskrift, tekst FROM nyheder ORDER BY dato DESC LIMIT 0,2"); while($data = mysql_fetch_array($foresp)){
prøv at sætte en or die på din sql udsagn sådan her:
mysql_query("INSERT INTO nyheder (dato, overskrift, tekst) Values ('".$_POST['nyhed_dato']."','".$_POST['nyhed_overskrift']."','".$_POST['nyhed_tekst."')") or die(mysql_error());
Synes godt om
Slettet bruger
12. marts 2004 - 02:39#24
Jeg tror, du er ved at have fået lidt styr på resten, men din formular skal lige rettes lidt til. Der SKAL være anførselstegn om attributværdier og der MÅ IKKE være mellemrum mellem attributnavn og = og værdien. Nogle html-udgaver tillader, at man undlader anførselstegn, hvis og kun hvis værdien er et tal. (Nogle browsere er mere tilgivende, men det kan man ikke gå ud fra.)
Her er en rettet udgave: (Udover det, jeg nævnte, har jeg lavet om til små bogstaver. Så mangler der kun et par /-er hvis du vil skifte til xhtml.)
Avminarm> jeg har prøvet at erstatte det men får en passing fejl i linie 9. Scriptet ser nu sådan ud: <? if($_POST['kodeord'] == "1234"){ echo "Nyheden er tilføjet"; $db = mysql_connect("XXX","XXX","XX"); mysql_select_db("XXX",$db); $nyhed_dato=time();
mysql_query("INSERT INTO nyheder (dato, overskrift, tekst) Values ('".$_POST['nyhed_dato']."','".$_POST['nyhed_overskrift']."','".$_POST['nyhed_tekst."')") or die(mysql_error());
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.