Anders Moen Skrevet 31. januar 2007 Del Skrevet 31. januar 2007 (endret) Har nå laget en ganske simpel søkemotor, men det er et problem...hvis personen ikke fyller ut noe i inputen, så får man opp alt som står i database (den spesifiserte tabellen mener jeg). Dette vil jeg ikke at skal skje, men i stedet for vil jeg at man bare får en beskjed om at man må fylle ut alle feltene. (*online demo* Her er koden jeg bruker: <form action="" method="POST"> <h1>SØK</h1> <input type="text" name="check" /> <input type="submit" name="submit" value="Search" /> </form> </div> <?php $con = mysql_connect("localhost","brukernavn","passord"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("db_navn", $con); if (isset($_POST[submit])) { $check = $_POST['check']; echo "You searched for: {$check} <br />"; echo "<br />"; echo "<br />"; echo "<b>You got"; $result = mysql_query("SELECT * FROM nyheter_1 WHERE tittel LIKE '%$check%'"); echo " " . mysql_num_rows($result) . " result(s).</b>"; while ($row = mysql_fetch_array($result)) { echo "<br />"; echo "<h3>"; echo "<a href=\"$row[id].php\"><i>".$row['tittel']."</i></a>"; echo "</h3>"; } if (empty($check)) { echo "Fyll ut alle feltene!"; // Hvis man ikke fyller ut, kommer alt som står i tabellen + denne teksten og jeg // vil bare ha denne teksten ut hvis man ikke har fylt ut noe. Noen som kan hjelpe? } } ?> </div> Edit: la på mer på tittelen: Jeg skulle gjerne gjort slik at den stripper tags fra gjesteboka mi for ellers blir ikke sida mi valid XHTML mer. Men når jeg bruker den koden jeg har nå og legger på strip tags, så fungerer ikke f. eks <span style='font-size: 16pt'>tekst</span> hvis de har valgt å ha stor skriftstørrelse. Koden jeg har: <?php $con = mysql_connect("localhost","brukernavn","passord"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("database_navn", $con); function bbcode($tekst) { $tekst = str_replace("\n", "<br />", $tekst); $tekst = str_replace("[url]", "<a target='newframe' href=", $tekst); $tekst = str_replace("[*url]", ">", $tekst); $tekst = str_replace("[/url]", "</a>", $tekst); $tekst = str_replace("[size=1]", "<span style='font-size: 6pt;'>", $tekst); $tekst = str_replace("[size=2]", "<span style='font-size: 8pt;'>", $tekst); $tekst = str_replace("[size=3]", "<span style='font-size: 10pt;'>", $tekst); $tekst = str_replace("[size=4]", "<span style='font-size: 12pt;'>", $tekst); $tekst = str_replace("[/size]", "</span>", $tekst); // Når jeg putter inn denne koden også, så vil ikke de over fungere for da blir det vist som < > sånn som her på forumet. Noen som kan fikse noe? $tekst = str_replace("<", "<" ,$tekst); $tekst = str_replace(">", ">" ,$tekst); $tekst = str_replace("&", "&" ,$tekst); return $tekst; } $result = mysql_query("SELECT * FROM comments ORDER BY `id` DESC LIMIT 0, 10"); echo "<div style='width: 600px; margin: 0 auto; text-align: left;'>"; while($row = mysql_fetch_array($result)) { echo "<div style='background-color: transparent; background-image: url(images/S.jpg);'>"; echo "<p style='padding: 15px;'>"; echo "<span style='background-color: #DFDFDF;'>"; echo "<em>"; echo " Written by "; echo "<a href='mailto:$row[epost]'>$row[navn]</a> "; echo "</em>"; echo "</span>"; echo "<br />"; echo "<br />"; echo "".bbcode($row[innhold]).""; echo "</p>"; echo "<p>"; echo " "; echo "</p>"; echo "</div>"; echo "<br />"; } echo "</div>"; mysql_close($con); ?> Endret 1. februar 2007 av Andy-Pandy Lenke til kommentar
CruellaDeVille Skrevet 31. januar 2007 Del Skrevet 31. januar 2007 Sitat av førstepost slettet av JohndoeMAKT Du må flytte sjekken din inni isset($_post['submit'])) og før du henter ut resultat fra db Lenke til kommentar
Anders Moen Skrevet 31. januar 2007 Forfatter Del Skrevet 31. januar 2007 Hmm...prøvde bare å sette den på litt forskjellige stedet, men ingenting hjalp. Ble akkurat det samme hver gang bare at "Du må fylle ut ......" kom et annet sted. Du kunne ikke ha plassert den inn i koden min,vær så snill? Lenke til kommentar
Met_Fredrik Skrevet 31. januar 2007 Del Skrevet 31. januar 2007 (endret) if (empty($check)) { die('Fyll ut alle feltene!'); } Kan du bare sette inn rett etter $check = $_POST['check']; og den stopper der. ELLER SÅ KAN DU: Etter $check = ¤_POST['check']; sette if(!empty($check)) { foran alt innholdet ditt, og sette else til slutt med echo "Fyll ut alle feltene!"; Endret 31. januar 2007 av Met_Fredrik Lenke til kommentar
Anders Moen Skrevet 31. januar 2007 Forfatter Del Skrevet 31. januar 2007 Ah, nå fungerte det nydelig Min søkemotor er nå helt ferdig, takket være kjappe svar på hw.no Tusen takk for svar folkens Lenke til kommentar
trrunde Skrevet 31. januar 2007 Del Skrevet 31. januar 2007 Denne koden er utsatt for mysql injections Lenke til kommentar
Anders Moen Skrevet 31. januar 2007 Forfatter Del Skrevet 31. januar 2007 =/ Har du en annen søkemotor kode, som ikke er det da? Lenke til kommentar
ZoRaC Skrevet 31. januar 2007 Del Skrevet 31. januar 2007 $check = mysql_real_escape_string($_POST['check']); sikrer den Lenke til kommentar
Anders Moen Skrevet 31. januar 2007 Forfatter Del Skrevet 31. januar 2007 Ah, takk Skjønner ikke hvor dere lærer alt, jeg... Noen PHP bøker som er mulig å få kjøpt av noen? *billlig* Lenke til kommentar
Ståle Skrevet 31. januar 2007 Del Skrevet 31. januar 2007 En kul link: http://amazon.com Lenke til kommentar
zreak Skrevet 1. februar 2007 Del Skrevet 1. februar 2007 isset($_POST['submit']) ^^ den der vil ikke funke i alltid, er en av nettleserene, tror det er IE, som ikke sender verdien på submitknappen hvis du trykker på Enter i søkefeltet. Når det gjelder å lære seg php, så anbefaler jeg å lese igjennom funksjonsbeskrivelsene på følgende: http://no2.php.net/strings http://no2.php.net/mysql http://no2.php.net/array Da lærer du vanvittig mye. Iallefall sånn jeg lærte meg php Lenke til kommentar
Anders Moen Skrevet 1. februar 2007 Forfatter Del Skrevet 1. februar 2007 Takk alle sammen Skal prøve å få lest de tre sidene nå. Får god tid nå som jeg er sjuk Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå