php trop vieux ou erreur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : php trop vieux ou erreur

Re: php trop vieux ou erreur

par moogli » 19 janv. 2017, 17:49

de rien :)

php à beaucoup évolué avec php5 et php7 à pas mal sabré dans les choses viellottes.

bon courage

@+

Re: php trop vieux ou erreur

par mikinfo » 19 janv. 2017, 17:25

donc mon code a pris un coup depuis le temps et les mises a jours ^^

un grand merci a vous ;)

Re: php trop vieux ou erreur

par moogli » 19 janv. 2017, 16:01

salut,

j'ajouterais que tu utilises l'auto déclaration des variables (register_globals) qui est supprimé (et déconseillé depuis php 4 il me semble).
$pass => $_GET['pass'] (il est plutôt conseillé d'utiliser post pour un formulaire d'authentification).

$SERVER_NAME => $_SERVER['SERVER_NAME'];
$HTTP_COOKIE_VARS => $_COOKIE
variable d'url : $_GET
variable de formulaire : $_POST

ton premier fichier donnerais quelque chose comme ceci (reste à suivre le 1er lien de spols pour utiliser mysqli ou PDO)
<!-- ce serait pas mal d'avoir une vrai entête html plutôt que directement le formulaire ;) -->
<div align="center">
  <!-- pas d'action si c'est le même-->
  <form method="post">
    <p>
      <label for="pseudo">Pseudo :</label>
      <input type="text" name="pseudo" id="pseudo" />
      <br/>
      <lable for="pass">Pass :</label>
        <input type="password" name="pass" id="pass" />
    </p>
    <p>
      <input type="submit" name="admin" value="ok" />
    </p>
  </form>
</div>

<?php
include('conflot.php');

$connexion = mysql_connect($db_host,$db_login,$db_pass);
$db = mysql_select_db($bdd, $connexion);
if (!empty($_POST['pseudo']) && !empty($_POST['passwd']) && $_POST['pseudo'] == $adpd && $_POST['pass'] == $adps) {
    
    // les frames c'est moche :)
    echo '
    <div align="center">
    <p>Administration de la loterie</p>
    <p><a href="lotadmin.php?action=41255" target="_parent">Mettre a vide la loterie</a><br>
    <a href="lotadmin.php?action=21568" target="_parent">Selectionner un gagnant</a></p>
    </div>';
}
else {
    echo 'Erreur Admin';
}
if (!empty($_GET['action']) && $_GET['action'] == '41255') {
    mysql_query('DELETE FROM passlot') or die("Fatal error 2");
    echo 'Remise a zéro de la loterie réussi';
}
else if (!empty($_GET['action']) &&  $_GET['action'] == "21568") {
    
    mt_srand((float) microtime()*1000000);
    $randval = mt_rand();
    $gagnant = mt_rand(0,50);
    
    $query = 'select pseudo,email from loterie where nombre='.mysql_real_escape_string($gagnant);
    $result = mysql_db_query("$bdd", $query);
    $r = mysql_fetch_assoc($result);
    mysql_free_result($result);
    echo <<<result
    <p>Le numero gagnant est le {$gagnant}
    <br/> La personne est : <a href="mailto:{$r['email']}">{$r['pseudo']}</a>
    <br/> Un email lui est  envoy&eacute.</p>
result;
    
    $header = 'From: webmaster@$SERVER_NAME'.PHP_EOL
    .'Reply-To: webmaster@'.$_SERVER['SERVER_NAME'].PHP_EOL
    .'X-Mailer: PHP/' . phpversion();

    mail($r['email'], 'Bravo '. $r['pseudo'].' tu a gagner la loterie', $message, $header);

    $filename = 'gagnants.txt';
    $dateg = date('d/m/y');
    $somecontent = 'Le gagnant de la loterie du '.$dateg.' est <b>'.$pseudog.'</b><br>';
    
    if (is_writable($filename)) {
        file_put_contents($filename,$somecontent);
    } else {
        print 'Le fichier '.$filename.' n\'est pas accessible en &eacute;criture.';
    }
}
@+

Re: php trop vieux ou erreur

par Spols » 19 janv. 2017, 15:45

J'ai pas tous regardé, ni la possibilité de tester mais si tu commence par modifier les <? en <?php car les shortag ne sont pas souvent géré par les serveurs par défaut et déconseillé.

L'autre gros problème qu'il y a, c'est le support des fonction mysql_... qui est déprécié voir supprimé en php 7.x . Selon la version de php sur laquelle tu tourne tu auras un message d'erreur ou une notification.

Je te conseillerai la lecture de 2 pages :
faq-tutoriels/passer-mysql-mysqli-pdo-t276282.html
faq-tutoriels/page-blanche-script-php-c ... 73178.html

php trop vieux ou erreur

par mikinfo » 19 janv. 2017, 15:20

Bonjour a vous, je recherche un peut d'aide car j'ai peut être fait une erreur soit mon code est trop vieux ^^

alors voila en 2004 j'avais récupéré un code une sorte de loterie qui datais déjà, j'avais modifier et mi mon code de coté au cas ou

aujourd’hui j'ai décidé de l’utilisé, mais voila il ne fonctionne plus et vu toutes les mises a jours php qu'il y a eu entre temps...

le code est plutôt simple, un index.php et une mini page admin, en faite quand j'affiche mes pages j'ai pas toutes les informations limite une page blanche


alors mon coté admin très simple

Code : Tout sélectionner

<div align="center"> <form name="form1" method="get" action="lotadmin.php"> <p>Pseudo : <input type="text" name="pseudo"> <br> Pass : <input type="password" name="pass"> </p> <p> <input type="submit" name="admin" value="ok"> </p> </form> </div> <? include('conflot.php'); if ($pseudo == "$adpd" && $pass == "$adps") { echo ' <div align="center"> <p>Administration de la loterie</p> <p><a href="lotadmin.php?action=41255" target="_parent">Mettre a vide la loterie</a><br> <a href="lotadmin.php?action=21568" target="_parent">Selectionner un gagnant</a></p> </div>'; } else { echo "Erreur Admin"; } ?> <? if ($action == "41255") { $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); mysql_query("DELETE FROM passlot") or die("Fatal error 2"); echo 'Remise a zéro de la loterie réussi'; } ?> <? if ($action == "21568") { ?> <p>Le numero gagnant est le <? mt_srand((float) microtime()*1000000); $randval = mt_rand(); $gagnant = mt_rand(0,50); $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); $query = "select * from loterie where nombre=$gagnant"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $pseudog = $r["pseudo"]; $emailg = $r["email"]; } echo $gagnant; ?> <bR> La personne est : <a href="mailto:<? echo $emailg?>"><? echo $pseudog ?></a><br> Un email va lui etre envoy&eacute;.</p> <? mail($emailg, "Bravo $pseudog tu a gagner la loterie", $message, "From: webmaster@$SERVER_NAME\r\n" ."Reply-To: webmaster@$SERVER_NAME\r\n" ."X-Mailer: PHP/" . phpversion()); $filename = 'gagnants.txt'; $dateg = date("d/m/y"); $somecontent = "Le gagnant de la loterie du $dateg est <b>$pseudog</b><br>"; if (is_writable($filename)) { if (!$handle = fopen($filename, 'a')) { print "Impossible d'ouvrir le fichier ($filename)"; exit; } if (!fwrite($handle, $somecontent)) { print "Impossible d'&eacute;crire dans le fichier ($filename)"; exit; } print "L'&eacute;criture de ($somecontent) dans le fichier ($filename) a r&eacute;ussi"; fclose($handle); } else { print "Le fichier $filename n'est pas accessible en &eacute;criture."; } } ?>


et ma partie loterie

Code : Tout sélectionner

<? if ($HTTP_COOKIE_VARS["loterie"] == "3") { ?> <link href="style.css" rel="stylesheet" type="text/css"><? include ('conflot.php') ?> <? if ($vres == "") { echo "Erreur"; exit; } if ($spec == "") { echo "Erreur"; exit; } ?><div align=center><table width="80%" border="0"> <tr> <? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 1;;$i++) { if ($i > 5) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? for ($i = 6;;$i++) { if ($i > 10) { break; } $query = "select * from loterie where nombre=$i"; $result = @mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? for ($i = 11;;$i++) { if ($i > 15) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 16;;$i++) { if ($i > 20) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 21;;$i++) { if ($i > 25) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 26;;$i++) { if ($i > 30) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 31;;$i++) { if ($i > 35) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 36;;$i++) { if ($i > 40) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 41;;$i++) { if ($i > 45) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 46;;$i++) { if ($i > 50) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr> </table></div> <div align="center"> <p>Liste des dernieres loteries : <br> <? readfile("gagnants.txt") ?> </p>

la loterie et l'admin n'affiche pas tout, j'ai tenter quelques modifs mais rien ne marche je tourne en rond...


merci a vous ;)