webForumDet fria alternativet

poesi

17 svar · 347 visningar · startad av Zanna

ZannaMedlem sedan jan. 2001311 inlägg
#1

hallå.

har en ide om att göra typ ett kylskåpspoesi online.

Man ska ha massor av flytande lager med 1 ord i varje som man ska kunna sätt i hopp till dikter, meningar osv. sen när man är klart ska man kunna spara hela "dikten" i en sorts gästbok där alla kan läsa. Alla dikter ska helst sparas i en textfil och inte en databas eftersom jag inte har tillgång till någon.

nån som kan hjälpa en stackars PHP-okunnig?

------------------
// sanna
// "man ska aldrig ta semester från sanningen"ordspåk gjort av ZANNA när hon lekt med kylskåpspoesi :-)

BABBAMedlem sedan feb. 2000280 inlägg
#2

Hej Sanna

Tja, flytande lager låter som en osedvanligt dum idé, du kanske kan använda drop-downs? (<select><option></option></select> )

Om du har många sådana på en sida med många ord i varje så kan användarna välja ihop någon fin dikt.

Sedan i ditt php-script är det ju bara att läsa in värdena i formulären och spara dem. Demo:

<?

$message = "";

if(isset($submit))
{
  $result = "$ord1 $ord2 $ord3";
  $fp = fopen("datafil.txt","w");
  fwrite($fp,$result);
  fclose($fp);
  $message = "Din dikt är nu sparad!";
}
?>

<html>
<head><title>Poesi</title></head>
<body bgcolor="#FFFFFF">

<?=$message?>

<form name="val">

<select name="ord1">
<option>Titta</option>
</select>

<select name="ord2">
<option>vad</option>
</select>

<select name="ord3">
<option>fint!</option>
</select>

<input type="submit" name="submit" value="Skapa!">
</form>

</body>
</html>

Jag har inte testat koden så risken är väl rätt stor att det kanske finns nån liten bugg. Kom ihåg att du MÅSTE chmodda din txt-fil så att den blir skrivbar!

Lycka till!

------------------
BABBA

/ * It's not a lie if you believe it * /
http://www.webbkontor.com

ZannaMedlem sedan jan. 2001311 inlägg
#3

hur får man det ut på själva sidan så att andra kan läsa sen då?

------------------
// Zanna - cuius ac potissimus

BABBAMedlem sedan feb. 2000280 inlägg
#4

hej

för att läsa från en fil gör du så här:

<?
$file = "datafil.txt";
$fp = fopen($file,"r");
$contents = fread($fp,filesize($file));
fclose($fp);

echo nl2br($contents); // newline to <br>
?>

Något sådant kanske?

// Babba

------------------
BABBA

/ * It's not a lie if you believe it * /
http://www.webbkontor.com

bgustMedlem sedan mars 2000136 inlägg
#5

Vet inte varför det skulle vara en sådan osedvanligt dum ide med lager.
Jag skrev ihop lite kod, men eftersom jag inte är så insatt i javascript och dess funktioner kan vissa lösninar vara ganska klumpiga..

poesi.php

<?php
  mt_srand((double) microtime() * 1000000);
?>
<html>

<SCRIPT language="jscript"><!--
var ord = Array(Array(), Array(), Array(), Array());
var counter = Array(0,0,0,0);
current_object = null;
last_object = null;
function begin_event(object) {
  if (last_object != null) {
    document.all[last_object].style.zIndex = 4;
  }
  current_object = object;
  objectX = window.event.clientX;
  objectY = window.event.clientY;
  document.all[current_object].style.zIndex = 5;
}

function end_event() {
  last_object = current_object;
  current_object = null;
}

function sendPoesi() {
  poesirader = Array("","","","");
  for(var i = 0; i < 4; i++) {
    for(var j = 0; j < counter[i]; j++) {
      poesirader[i] = poesirader[i] + " " + ord[i][j];
    }
  }
  document.location = "block.php?rad1="+poesirader[0]+"&rad2="+poesirader[1]+"&rad3="+poesirader[2]+"&rad4="+poesirader[3];

}
//--></SCRIPT>

<SCRIPT language="jscript" FOR="document" EVENT=onmousemove>
  if (current_object != null) {
    document.all[current_object].style.pixelTop = window.event.clientY - objectY + document.all[current_object].style.pixelTop;
    document.all[current_object].style.pixelLeft = window.event.clientX - objectX +   document.all[current_object].style.pixelLeft;
    objectX = window.event.clientX;
    objectY = window.event.clientY;
  }
  return false;
</SCRIPT>
<SCRIPT language="jscript" FOR="document" EVENT=onmouseup>
  if (current_object != null) { 
    dac = document.all[current_object];
    damb = document.all["metalBox"];
    if( ((dac.style.pixelTop + 10) > (damb.style.pixelTop)) &&
        ((dac.style.pixelTop + 5) < (damb.style.pixelTop + damb.style.pixelHeight)) &&
        ((dac.style.pixelLeft + 10) > (damb.style.pixelLeft)) &&
        ((dac.style.pixelLeft + 5) < (damb.style.pixelLeft + damb.style.pixelWidth)) ) {
      var exist = 0;
      for(var i = 0; i < 4; i++) {
        for(var j = 0; j < counter[i]; j++) {
          if(current_object == ord[i][j]) {
            exist = i+1;
          }
        }
      }
      if(exist) {
        var tmpOrd = ord[exist-1];
        ord[exist-1] = Array();
        var tmpI = 0;
        for(var i = 0; i < counter[exist-1]; i++) {
          if(current_object != tmpOrd[i]) {
            ord[exist-1][tmpI] = tmpOrd[i];
            tmpI++;
          }
        }
        counter[exist-1] = tmpI;
      }
      var line = 0;
      for(var i = 0; i < 4; i++) {
        if( ((dac.style.pixelTop - damb.style.pixelTop) < (20*(i+1) + - 5)) && (!line) ) {
          ord[i][counter[i]] = current_object;
          counter[i]++;
          line = i+1;
        }
      }
      if(line) {
        for(var i=(counter[line-1]-1); i>0; i--) {
          if( (document.all[ord[line-1][i]].style.pixelLeft) < (document.all[ord[line-1][i-1]].style.pixelLeft) ) {
            var tempo = ord[line-1][i];
            ord[line-1][i] = ord[line-1][i-1];
            ord[line-1][i-1] = tempo;
          }
        }
      }
      line1.innerHTML = ord[0];
      line2.innerHTML = ord[1];
      line3.innerHTML = ord[2];
      line4.innerHTML = ord[3];
    } else {
      var tmpOrd = Array();
      for(var i = 0; i < 4; i++) {
        tmpOrd[i] = ord[i] 
        ord[i] = Array("");
        var tmpJ = 0;
        for(var j = 0; j < counter[i]; j++) {
          if(current_object != tmpOrd[i][j]) {
            ord[i][tmpJ] = tmpOrd[i][j];
            tmpJ++;
          }
        }
        counter[i] = tmpJ;
      }
      line1.innerHTML = ord[0];
      line2.innerHTML = ord[1];
      line3.innerHTML = ord[2];
      line4.innerHTML = ord[3];
    }
  }
//  test.innerHTML = ord[0]+" - "+ord[1]+" - "+ord[2]+" - "+ord[3];
  end_event();
</SCRIPT>
<style type="text/css">
<!--
.magnet {  background-color: #FFFFFF}
-->
</style>

<body bgcolor="#99CCFF">
<!--span id="test"></span--> <?php 

  $poesi = file("ord.txt");
  $poesi = array_unique ($poesi);    
  for($i = 0; $i < sizeof($poesi); $i++) {
    $poesi[$i] = str_replace("\n","",$poesi[$i]);
    if($poesi[$i] != ""){
?> 
<div id="<?=$poesi[$i]?>" style="position:absolute; width:1px; height:1px; z-index:1; left: <?=mt_rand(100,600)?>px; top: <?=mt_rand(100,300)?>px" onmousedown="begin_event('<?=$poesi[$i]?>');"  onmouseover="this.style.cursor='hand';" class="magnet">&nbsp;<?=$poesi[$i]?>&nbsp;</div>

<?php } } ?>

<div id="metalBox" style="position:absolute; width:400px; height:85px; z-index:1; left: 40px; top: 400px">
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0" vspace="0" hspace="0">
  <tr><td colspan="3" height="1" bgcolor="#333333"></td></tr>
<tr><td width="1" height="20" bgcolor="#333333"></td><td></td><td width="1" bgcolor="#333333"></td></tr>
<tr><td colspan="3" height="1" bgcolor="#333333"></td></tr>
<tr><td width="1" height="20" bgcolor="#333333"></td><td></td><td width="1" bgcolor="#333333"></td></tr>
<tr><td colspan="3" height="1" bgcolor="#333333"></td></tr>
<tr><td width="1" height="20" bgcolor="#333333"></td><td></td><td width="1" bgcolor="#333333"></td></tr>
<tr><td colspan="3" height="1" bgcolor="#333333"></td></tr>
<tr><td width="1" height="20" bgcolor="#333333"></td><td></td><td width="1" bgcolor="#333333"></td></tr>
<tr><td colspan="3" height="1" bgcolor="#333333"></td></tr>
</table></div>
<div id="textBox1" style="position:absolute; width:200px; height:20px; z-index:1; left: 40px; top: 520px"><span id="line1"></span><br>
<span id="line2"></span><br>
<span id="line3"></span><br>
<span id="line4"></span><br>
<span id="sendPoesi" onClick="sendPoesi(); return true;"  onmouseover="this.style.cursor='hand';">Skicka</span></div>

</body>
</html>

block.php

<html>
<?php
  if($rad1&#0124;&#0124;$rad2&#0124;&#0124;$rad3&#0124;&#0124;$rad4){
  $fp = fopen("poesi.txt",a);
  fwrite($fp, $rad1."<br>".$rad2."<br>".$rad3."<br>".$rad4."\n");
  fclose($fp);
  }
  $poesi = file("poesi.txt");
  for($i = (sizeof($poesi)-1); $i >= 0 ; $i--) {
    echo $poesi[$i]."<br><br><hr>";
  }
?>
</html>

Sen ska det till en fil med ord i. namnge den ord.txt. Ett ord på varje rad. Inga dubletter tillåtna.
Sen vet jag inte hur många ord man kan ha, då det är ett laget till varje(kanske var det som var det dumma?) men jag har iaf provat med över 50.

SannahMedlem sedan dec. 20002 147 inlägg
#6

tack tack tack :e

------------------
// Sannah

SannahMedlem sedan dec. 20002 147 inlägg
#7

jag får inte alla ord att kunna röra på sig :/

även funktionen att skicka själva dikten funkar fel. (felmeddelande: Warning: Use of undefined constant a - assumed 'a' in C:\Inetpub\wwwroot\dikt\block.php on line 4
oekj"

------------------
// Sannah

bgustMedlem sedan mars 2000136 inlägg
#8

Jag kör IE5.5 och servern kör PHP4 nånting, och här funkar det både att flytta på orden och spara. Får hoppas att någon komma med lösning. Jag ska be en vän med annan webläsare att testa.

Jag har lagt upp den här och den funkar fint där också http://codewarriors.nu/esse/martina/bg/poesi/poesi.php

[Redigerat av bgust den 07 jan 2001]

SannahMedlem sedan dec. 20002 147 inlägg
#9

kan du inte fixa alla filer i en zipfil och lägga upp? :e

------------------
// Sannah

bgustMedlem sedan mars 2000136 inlägg
#10

http://codewarriors.nu/esse/martina/bg/poesi/poesi.zip
Hoppas det funkar. Vilken läsare kör du?

RiriMedlem sedan dec. 2000182 inlägg
#11

Kan man få en länk till exempel sen när någon har lagt upp det, eller någon kanske redan har? Låter som kul idé!

------------------
richardhallgren@usa.net

MattiMedlem sedan dec. 19996 592 inlägg
#12

Coolt bgust! :)

Vilken läsare man kör står i botten på varje inlägg, till höger.

------------------
mk.st

BABBAMedlem sedan feb. 2000280 inlägg
#13

..jag menade att det kanske kan vara lite svårt att hantera lager (dhtml) om man är nybörjare. Din lösning är väldigt bra, men jag skulle inte vilja koppla upp mig från den bärbara via mobilen på den sidan...

/ Babba

------------------
BABBA

/ * It's not a lie if you believe it * /
http://www.webbkontor.com

SannahMedlem sedan dec. 20002 147 inlägg
#14

tackar så mycket!

verkligen ett jättebra script!

------------------
// Sannah

SannahMedlem sedan dec. 20002 147 inlägg
#15

http://www.sanna.f2s.com/dikt/poesi.php

javascripterror...?!

------------------
// Sannah

WestCoastMedlem sedan juli 2000136 inlägg
#16

FETT bgust :)

jag skrev två st känner mig som en poet ;)
här e dom vill visa...

(första)
skratta av sval is är som fel groda
----------------------------------------
(andra)
mjuk neon tupp dör fel
vuxen snö groda under skåp luktar
se medan du knappt går
ta på namn är som vända sedan flyga

*stolt :e*
:e

<r>
knas =)
</r>

/ted

------------------
Ingenting existerar längre än ögonblicket.
Sedan förvandlas det till ett minne

[Redigerat av WestCoast den 10 jan 2001]

bgustMedlem sedan mars 2000136 inlägg
#17

Vet inte varför det uppstått error på din, men antagligen beror det på de radbrytningar som uppstått i din kod men som inte uppstår på sidan jag länkat till ovan. Kan vara att du(eller ditt program) ändrat något i koden ofrivilligt.

Gislaved.netMedlem sedan juni 20001 521 inlägg
#18

Funkar inte på Mac... :(

------------------
Gislaved.net
"Tänk på vad du säger så att du inte säger vad du tänker."

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)