Gå til innhold

PHP kode som andre kanskje kan bruke


Anbefalte innlegg

Ja den var litt unødvendig :)

 

Ikke vet jeg av hva som ligger her av Annenhver farge på tabell (Mysql ) men nå poster jeg min løsning.

 

$color = "1";
$result = mysql_query("SELECT * FROM tabell") or die(mysql_error());  
while ($rad = mysql_fetch_array($result)){

if ($color == "1"){
echo "<tr bgcolor='#C0C0C0'><td>Grå</td></tr>";
$color = "2";
}else {
echo "<tr bgcolor='#FFFFFF'><td>Hvit</td></tr>";
$color = "1";
}
	  }
echo "</table>";

Lenke til kommentar
Videoannonse
Annonse
Ja den var litt unødvendig :)

Hva gjør din kode mer nødvendig? En if-setning er ikke stort mer enn enkel bruk av standard funksjoner. I tillegg er utførelsen lite elegant, det kan gjøres mye bedre. Du er heller ikke konsekvent med indetering og generell kode-formatering, og det gjør at ikke noe av koden din kan brukes av andre, noe som strider litt med poenget å poste i denne tråden.

 

$c = 0;
$result = mysql_query ( 'SELECT my_column FROM table' );

while ( $row = mysql_fetch_array ( $result ) )
echo '<tr style="background: #' . ( $c++ % 2 == 0 ? 'C0C0C0' : 'ffffff' ) . ';"><td>' . $row['my_column'] . '</td></tr>';

Lenke til kommentar
Ja den var litt unødvendig :)

Hva gjør din kode mer nødvendig? En if-setning er ikke stort mer enn enkel bruk av standard funksjoner. I tillegg er utførelsen lite elegant, det kan gjøres mye bedre. Du er heller ikke konsekvent med indetering og generell kode-formatering, og det gjør at ikke noe av koden din kan brukes av andre, noe som strider litt med poenget å poste i denne tråden.

 

$c = 0;
$result = mysql_query ( 'SELECT my_column FROM table' );

while ( $row = mysql_fetch_array ( $result ) )
echo '<tr style="background: #' . ( $c++ % 2 == 0 ? 'C0C0C0' : 'ffffff' ) . ';"><td>' . $row['my_column'] . '</td></tr>';

 

 

Et spørsmål:

 

Hva betyr dette?

' . ( $c++ % 2 == 0 ? 'C0C0C0' : 'ffffff' ) . '

Endret av php_user
Lenke til kommentar
Et spørsmål:

 

Hva betyr dette?

' . (++$c % 2 ? 'C0C0C0' : 'ffffff' ) . '

Det er en ternary if-then-else http://no2.php.net/manual/en/language.oper....comparison.php med modulus av 2 http://mathforum.org/library/drmath/view/55771.html.

Så 7 % 4 = 3. 11 % 4 = 3. Så hver fjerde gang vil det ikke være rest med 4, hver femte gang med 5, etc.

 

' . ( ++$c % 4 ? 'C0C0C0' : 'ffffff' ) . '

Først 3 med C0C0C0 så 1 med ffffff så 3 med C0C0C0 igjen etc.

 

' . ( $c++ % 4 ? 'C0C0C0' : 'ffffff' ) . '

Først 1 med ffffff så 3 med C0C0C0 så 1 med ffffff igjen etc.

 

while ($c++) {
switch ($c % 4) {
	case 1:...
		 break;
	case 2:...
		  break;
	case 3:...
		  break;
	//case 0:
	default: ...
		  break;
}
}

Lenke til kommentar

Dersom du skal ha flere fargealternativer enn to er det langt bedre med lur bruk av arrays enn en switch statement.

 

<?php

$colors = array (
	'#000000',
	'#ff0000',
	'#00ff00',
	'#0000ff',
	'#ffffff'
);

while ( $c < 100 )
	echo $colors[$c++ % count ( $colors )] . "\n";

?>

Lenke til kommentar
  • 1 måned senere...

Administrator system.

 

 

Innlogging:

 

<?php

session_start();

ob_start();

if($_SESSION['admins']) {

?>

<?php if($_POST['uts']) { if(!isset($_SESSION['admins'])) echo "du er ikke logget inn"; else { echo "du er nå logget ut"; $_SESSION['admins'] = false; }}

?> <br>

 

<form action="?x=<?php echo $URLside; ?>" method="post">

<input type="submit" name="uts" value=" du er allerede logget inn å kan da kun logge logg ut ">

</form>

<?php

}

else{

?>

<?php

 

if (isset($_POST['log'])) {

//////////////////////////////////////////////////////////////////////

$adminpass = "ADMIN PASSORDET HER";

//////////////////////////////////////////////////////////////////////

$ps = trim($_POST['pass']);

if(empty($ps)) echo "du fylte ikke inn passord";

else {

session_start();

if($ps == "$adminpass") {

$_SESSION['admins'] = true;

echo "Du er nå logget inn!";

}

else echo "du skrev inn feil passord";

}

}

else {

?>

 

Passord:<br />

<form action="?x=<?php echo $URLside; ?>" method="post">

<input type="password" name="pass" /><input type="submit" name="log" value=" ok " /><br />

</form>

<br />

<?php

}

}

?>

 

 

 

Bruk:

 

if($_SESSION['admins']) {

// innhold for admin her

}

Endret av creAtiive
Lenke til kommentar

WOW - verste kodesuppa postet her på lenge. Tar meg frihet til å kommentere siden du valgte å poste den.

 

* Du blander sammen PHP og HTML

* Du er ikke konsekvent når du koder

* Absolutt ingen indetering gjør at ingen i det hele tatt vil vurdere å lese den

 

I tillegg har du en hel haug med små-feil man ikke forventer å se i kode som deles, bla.:

 

* Dårlige variabel-navn

* Trim på passord?

* Henting av login-info fra en statisk variabel

* Ingen brukernavn

* ob_start() skal ikke bruker slik du bruker den

 

Det der kunne du virkelig holdt for deg selv. :no:

Vil heller ikke kalle dette et administrasjonssystem, heller et primitivt login-script.

Endret av Jonas
Lenke til kommentar
WOW - verste kodesuppa postet her på lenge. Tar meg frihet til å kommentere siden du valgte å poste den.

 

* Du blander sammen PHP og HTML

* Du er ikke konsekvent når du koder

* Absolutt ingen indetering gjør at ingen i det hele tatt vil vurdere å lese den

 

I tillegg har du en hel haug med små-feil man ikke forventer å se i kode som deles, bla.:

 

* Dårlige variabel-navn

* Trim på passord?

* Henting av login-info fra en statisk variabel

* Ingen brukernavn

* ob_start() skal ikke bruker slik du bruker den

 

Det der kunne du virkelig holdt for deg selv. :no:

Vil heller ikke kalle dette et administrasjonssystem, heller et primitivt login-script.

 

 

Du vet alt du ?

- Si meg, hva kunne skjed feil i det scriptet?

 

 

Og en ting til:

Kan ikke du holde kommentarene dine for deg selv?

Endret av creAtiive
Lenke til kommentar
Du vet alt du ?

Om ikke annet, så vet jeg i hvert fall vesentlig mer enn deg innenfor det gitte emne. :thumbup:

 

Og nei - jeg klarer ikke å holde kommentarene mine for meg selv. Denne tråden er for koder som kan være nyttig for andre og det du postet er ikke godt for fem blanke øre, ærlig talt. Ikke at jeg ønsker å begrense deling av kode på forumet; for all del, denne tråden kan være utrolig nyttig, men ting som administrasjonspanel burde være en smule mer sofistikert og sikkert.

Endret av Jonas
Lenke til kommentar

Jeg er helt enig med Jonas. Altså, denne tråden heter jo "PHP kode som andre kanskje andre kan bruke", men jeg håper jo at alle sier "nei takk" når de ser den suppen der.

 

Fint at folk har lyst til å dele kode, men da burde du faktisk ha en viss peiling på hva du driver med. Å dele kode etter første uka med "PHP for dummies" (e.l.) minner enten om total mangel på selvinnsikt, eller total arroganse.

 

Dessverre (og nå tråkker jeg på mange tær samtidig) er kvaliteten på koden i hele denne tråden relativt dårlig. Det er noen lysglimt innimellom, men stort sett kommer det bare en uoversiktlig suppe.

 

Stort sett kan man stille seg et spørsmål, som har to muligheter, og det vil allerede luke ut det meste av koden i denne tråden.

Er koden et fullverdig program, eller bare en kodesnutt:

Program) Programmet burde distribueres som en zip, med oversiktlig kode og dokumentasjon. Logikk burde være adskilt fra presentasjon.

Kodesnutt) Koden din burde ikke inneholde presentasjon, den burde være en eller flere funksjoner som returnerer en struktur man kan bruke videre. En funksjon burde være så liten at den kan forklares med èn setning.

 

(Dette var en veldig kort oppsummering. Jeg kunne skrevet side opp og side ned om temaet.)

Lenke til kommentar

Ja da var jeg endelig ferdig med versjon 2.0 av et mini-community "script" jeg har.

Skal nevnes at 2.0 blir den første versjonen som jeg har gjort klar til å brukes av andre enn meg selv.

Det mangler foreløpig README fil, men dette kommer nok snart.

 

http://alexander.no-ip.org/script/mini-community/

 

I disse så er alle meldinger på norsk.

Det kommer også (så snart jeg er ferdig) en versjon der hvor meldingene er på engelsk.

 

 

Håper noen tar i bruk scriptet, det har vist seg å fungere utmerket på mindre grupper, felleskjøpet av Neo FreeRunner bruker denne siden (Vi kjører riktig nok versjon 2.0-2 da, noen spesial ting der).

 

Alle meldinger ligger i .msg.php (Disse kommer i database i neste versjon)

De fleste (om ikke alle) verdiene ligger i .values.php

Siden bruker mySQL

 

Og for en kjapp install:

Kjør mini-community2.0.sql

Kopier mini-community mappa inn i www mappen din på servern.

Endre brukernavn og passord i .config.php

Også er du oppe.

Registrer deg og gå inn i tabellen users

Sett valid til 1 og admin til 1

Logg inn

Tada, da skal du være ferdig.

 

Ønsker du å fjerne validering av brukere.

Gå til .values.php

Endre verdien i $uservalidation til 0

 

Ønsker du å fjerne validering av oppslagstavle oppføringer som blir skrevet av vanlige brukere.

Endre verdien i $validation til 0

 

Og hvis du ønsker et annet dato format enn "d-m-Y H:i"

Endre dette i funksjonen datformat() i .values.php

 

Ellers så er det litt annet små tweeking i .values.php

Prøv deg fram, skal skrive en readme så snart jeg er ferdig med oversettelsen.

 

Og en ting til

Trenger du hjelp, send en PM til meg (IKKE MAIL)

Hvis du vil hjelpe, så er det bare å ta kontakt (da er mail lov)

 

Ellers så er det bare å kommentere så mye du vil.

Forslag til endringer eller ting som burde fjernes/legges til, send det til meg.

Og varsle om bugs.

 

EDIT:

La til filene her også

 

EDIT2:

Skal også nevnes at jeg ikke er en designer

Og mottoet for denne sia er: Det enkle er ofte det beste

mini_community2.0_norsk.zip

mini_community2.0_norsk.tar.gz

Endret av AlecTBM
Lenke til kommentar

*sukk*

 

Som nevnt lenger opp her er det bra at det deles kode. Men for å sitere Peter:

Fint at folk har lyst til å dele kode, men da burde du faktisk ha en viss peiling på hva du driver med. Å dele kode etter første uka med "PHP for dummies" (e.l.) minner enten om total mangel på selvinnsikt, eller total arroganse.

Når det gjelder community-opplegget til AlecTBM, så er dette nok et eksempel på laber kodekvalitet, og et script som jeg mener ikke hører hjemme i denne tråden. Communitysiden fungerer sikkert fint, men jeg vil anbefale andre å bruke et litt mer gjennomtenkt opplegg, selv for veldig små communities. Koden bærer preg av mangel på kompetanse hos programmereren (altså... while($select12 = mysql_fetch_array($select11)) - skaff deg et rammeverk, det er bare latterlig upraktisk å gjøre det på denne måten) og hele opplegget ser generelt lite fleksibelt ut. Det kan hende det funker bra out-of-the-box, men slike script synes jeg det er unødvendig å poste her.

 

Med "PHP-kode som andre kanskje kan bruke", så forventer jeg noe sånt som:

  • En god løsning på et problem mange kommer borti (zebra rows i tabeller, regulære uttrykk for å utføre bestemte oppgaver, etc.).
  • En nyttig funksjon eller script som kan brukes as-is i en eksisterende applikasjon (hash/salt-funksjoner, tilfeldig passord-funksjoner, etc.).
  • Fullstendige klasser og funksjoner som enkelt kan implementeres i en eksisterende applikasjon (en databaseklasse, brukerhåndtering, templating, RSS-parsere, caching, etc.).

Forutsetningen fra alle punktene ovenfor er at koden faktisk funker, at den er er skrevet på en ryddig måte og at den er enkel å ta i bruk.

 

Med "PHP-kode som ikke hører hjemme i denne tråden", så tenker jeg på f.eks.:

  • Et helt communitynettsted som kun kan brukes for seg selv og ikke implementeres i eksisterende applikasjoner.
  • Et adminpanel som verken er sikkert, fleksibelt eller enkelt å videreutvikle.
  • Kode du har skrevet rett etter at du ble ferdig med å lese en nybegynnerbok for PHP-programmering ("jeg har nettopp fått til et script som kan gjøre om tekst så den blir baklengs!").
  • Simple supportspørsmål ("hvordan redirecter jeg til en annen side?").
  • Generelt kode av dårlig kvalitet og kode som ikke har noen praktisk nytteverdi for noen.

Tenk også over disse tingene før dere poster mer kode i denne tråden:

  1. Kan noen andre ha bruk for denne koden?
  2. Er det noe jeg kan forbedre i koden?
  3. Har jeg sjekket at det ikke er noen bugs i koden?
  4. Er det enkelt for andre å bruke koden i sin egen applikasjon?

Takk.

Lenke til kommentar

Okey

Koden bærer preg av mangel på kompetanse hos programmereren (altså... while($select12 = mysql_fetch_array($select11)) - skaff deg et rammeverk, det er bare latterlig upraktisk å gjøre det på denne måten) og hele opplegget ser generelt lite fleksibelt ut. Det kan hende det funker bra out-of-the-box, men slike script synes jeg det er unødvendig å poste her

 

Nå ble jeg faktisk fornærma.

Jeg bruker allerede siden et par plasser, siden blir også brukt av et par andre personer jeg kjenner.

Ser ikke hvorfor det skulle være vanskelig å endre?

Skal nevnes at av de plassene (som jeg vet om) der siden blir brukt, så er den modifisert.

 

OG kan du vennligst forklare HVA som er så latterlig upraktisk??

 

Og som svar så lukter det arroganse av innlegget ditt

Endret av AlecTBM
Lenke til kommentar

For å rapportere alle feil som oppstår:

 

<?php
error_reporting(E_ALL); // everything
error_reporting(E_ERROR | E_PARSE); // only major problems
error_reporting(E_ALL & ~E_NOTICE); // everything but notices
?>

 

.. i toppen av en fil.

 

 

By default, the error reporting level is E_ALL & ~E_NOTICE, which means all error types

except notices. The & is a logical AND, and the ~ is a logical NOT. However, the php.inirecommended configuration file sets the error reporting level to E_ALL, which is all error types.

 

Error messages flagged as notices are runtime problems that are less serious than warnings. They're not necessarily wrong, but they indicate a potential problem.

Endret av creAtiive
Lenke til kommentar
For å rapportere alle feil som oppstår:

 

<?php error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING); ?>

 

.. i toppen av en fil.

 

Den koden der vil vel faktisk vise alle feilmeldinger untatt E_NOTICE og E_WARNING.

 

;error_reporting = E_ALL & ~E_NOTICE

;

; - Show all errors, except for notices

Lenke til kommentar

Et "endre koden på siden" system.

 

 

Bare fyll inn $sti med riktig bane til .txt filen.

 

:

 

<?php
				$STI = "sti til fil..";
				//session_start();
				//if($_SESSION['admins']) {
				if(isset($_POST['Send']))
{
// Først, formater litt
$fildata = str_replace("\r\n", "\n", $_POST['html']);
$fildata = str_replace('\"', '"', $fildata);

// Åpne filen
$fil = @fopen($_POST['fil'], 'w+');

if($fil)
{
// Lagre
fwrite($fil, $fildata);
fclose($fil);
?>
<span class="ok">Filen ble endret!</span>
<?php
}
if(!$fil)
{
?>
<span class="error">Kunne ikke redigere fil! Riktig fil ? CHMOD 777 ?</span>
<?php
}
}
//} // Slutt 
				?>
				<?php

					  $fil  = file_get_contents($STI);

						$fil = str_replace(":rofl:","<img src=\"../bilder/ikoner/458.gif\">", $fil);
						$fil = str_replace(":kjekk:","<img src=\"../bilder/ikoner/484.png\">", $fil);
						$fil = str_replace(":D","<img src=\"../bilder/ikoner/biggrin.gif\">", $fil);
						$fil = str_replace(":cool:","<img src=\"../bilder/ikoner/cool.gif\">", $fil);
						$fil = str_replace(":fun:","<img src=\"../bilder/ikoner/fun.gif\">", $fil);
						$fil = str_replace(":hmm:","<img src=\"../bilder/ikoner/hmm.gif\">", $fil);
						$fil = str_replace(":lol:","<img src=\"../bilder/ikoner/laugh.gif\">", $fil);

					echo $fil;

				  ?>

<?php
//if($_SESSION['admins']) {
if(!isset($_POST['Send']))
	{
		echo "
		<br><br><span class=\"fvd1r\"><center><form method='post' action=''>
		<label for='velg'>Rediger side:</label>
		<select size='1' name='velg' id='velg'>
		<option value=\"$STI\">SIDE NAVN</option>
		</select>  
		<input type='submit' name='submit2' value=' Hent Fil '>
		</form></center></span>
		";
?>
<br>
<script LANGUAGE='JavaScript'>  
function ssl(which) { 
 document.endre.html.value = document.endre.html.value + which; 
}  
</SCRIPT>
<img src="../bilder/ikoner/458.gif"> = :rofl:<br>
<img src="../bilder/ikoner/484.png"> = :kjekk:<br>
<img src="../bilder/ikoner/biggrin.gif"> = :D<br>
<img src="../bilder/ikoner/cool.gif"> = :cool:<br>
<img src="../bilder/ikoner/fun.gif"> = :fun:<br>
<img src="../bilder/ikoner/hmm.gif"> = :hmm:<br>
<img src="../bilder/ikoner/laugh.gif"> = :lol:<br>
<input type="button" onClick="java script:ssl('<br />')" value="<br />">
<input type="button" onClick="java script:ssl('<strong></strong>')" value="<strong>">
<input type="button" onClick="java script:ssl('<em></em>')" value="<em>">
<input type="button" onClick="java script:ssl('<u></u>')" value="<u>">
<input type="button" onClick="java script:ssl('<center></center>')" value="<center>">
<?php
echo "<form method=\"post\" action=\"\" name=\"endre\">\n
<input type=\"hidden\" name=\"fil\" value=\"".$_POST['velg']."\" size=\"40\">
<textarea name=\"html\" id=\"tekstarea1\">".file_get_contents($_POST['velg'])."</textarea>\n
<input type=\"submit\" name=\"Send\" id=\"tekstarea1\" value=\"Rediger side\">";
//Redigerings-script slutt
}
?><br><br>
<?php
if(isset($_POST['kh'])) {
header("Location: /admin1414/");
}
?>
<form action="" method="post">
<input type="submit" id="tekstarea2" value=" Til adminpanelet " name="kh" >
</form>
<?php

//}
?>

Endret av creAtiive
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...